现实世界数据 ML 预测中的拟合歧义
Fitting Ambiguity in Real World Data ML Prediction
我在解决现实世界问题时在拟合数据方面从概念层面上遇到的问题。
问题陈述:文本内容分类
具有 2 列的数据集:文本内容和内容类别(如体育、新闻等)
已完成:使用随机森林分类器构建模型 - 遵循一些预处理技术 - 使用 TfidfVectorizer 转换。因此,关于训练和测试数据,一切都完全正常。
挑战:当真实世界的文本内容出现时,我需要使用 TfidfVectorizer 再次转换数据 --- 这将具有与我们使用的早期数据集完全不同的转换。这给出了与预期完全不同的结果。
问题:有没有什么办法可以保存训练时已经实现的拟合逻辑,以便我可以使用该信息仅将数据转换为实时数据?
让我们以薪资列中的 MinMaxScaler
为例,正如您在评论中提到的那样:
scaler = MinMaxScaler()
然后我们可以拟合和转换我们的训练集:
scaler.fit(train)
train = scaler.transform(train)
我们也可以用同样的方法改造test
集,像这样:
test = scaler.transform(test)
how I would use the same scaled fitted data to new data ?
我们可以将 MinMaxScaler
存储在 pickle 文件中以备将来使用:
import pickle
pickle.dump(scaler, open('file/path/scaler.pkl','wb'))
每当有新数据出现时,我们都可以加载 pickle 文件并使用它来转换新数据:
scaler = pickle.load(open('file/path/scaler.pkl','rb'))
new_data = scaler.transform(new_data)
我在解决现实世界问题时在拟合数据方面从概念层面上遇到的问题。
问题陈述:文本内容分类
具有 2 列的数据集:文本内容和内容类别(如体育、新闻等)
已完成:使用随机森林分类器构建模型 - 遵循一些预处理技术 - 使用 TfidfVectorizer 转换。因此,关于训练和测试数据,一切都完全正常。
挑战:当真实世界的文本内容出现时,我需要使用 TfidfVectorizer 再次转换数据 --- 这将具有与我们使用的早期数据集完全不同的转换。这给出了与预期完全不同的结果。
问题:有没有什么办法可以保存训练时已经实现的拟合逻辑,以便我可以使用该信息仅将数据转换为实时数据?
让我们以薪资列中的 MinMaxScaler
为例,正如您在评论中提到的那样:
scaler = MinMaxScaler()
然后我们可以拟合和转换我们的训练集:
scaler.fit(train)
train = scaler.transform(train)
我们也可以用同样的方法改造test
集,像这样:
test = scaler.transform(test)
how I would use the same scaled fitted data to new data ?
我们可以将 MinMaxScaler
存储在 pickle 文件中以备将来使用:
import pickle
pickle.dump(scaler, open('file/path/scaler.pkl','wb'))
每当有新数据出现时,我们都可以加载 pickle 文件并使用它来转换新数据:
scaler = pickle.load(open('file/path/scaler.pkl','rb'))
new_data = scaler.transform(new_data)