首页 > 解决方案 > 训练和测试后,我如何处理新数据?

问题描述

我有 2 个问题。我有一个混合了分类特征和数字的数据集。我的目标是预测个人的贷款等级。

我为dataset1采取的步骤如下:

1) 从数据帧中删除分类特征
2)Onehotencoded分类特征
3)pd.concat将分类特征与主数据帧一起返回并删除目标变量
4) train_test_split70% 用于训练和 30% 用于测试
5) 应用 PCA、fit_transform训练集和transform测试集
6) 发现随机森林有效,因此我用作RandomForestClassifier主要算法
7) 测试模型并获得 80% 的准确度得分
8) 调整模型并将其提高到 81%

现在我收到了一堆新数据,我们称之为dataset2我只使用新数据集重复了从 1 到 3 的步骤。接下来,我只是删除了目标变量,并使用了RF.predict(). 我知道它是错误的,我认为我应该适合算法,但形状不同。 Train_test_split只是dataset2单独适合算法对我来说没有意义,那么dataset1的目的是什么?我为自己是一个菜鸟而道歉,但我对如何使用新数据集处理和预测变量感到非常困惑。

我应该 1) 重新训练我的模型吗?如果是这样,我应该怎么做?2)我是否在dataset1下连接新的dataset2,然后再次拆分?这就是我为dataset1 所做的

RF = RandomForestClassifier() 
model = RF.fit(x_train1, y_train)
y_pred = model.predict(x_test1)  

这就是我为 dataset2 所做的

new_pred= model.predict(x_test2)

如果我的任何步骤有误,请随时告诉我。并请提供任何解决方案。我确实尝试过实现管道,但我无法像以前那样重新创建准确性。

欢迎任何其他解决方案。

标签: pythonmachine-learningone-hot-encodingtrain-test-split

解决方案


好吧,它对形状更有意义。

我可以建议,因为它有时会发生在我身上,是检查你的数据分布:每个数据集中的数据是关于什么的?我解释了我自己:当我根据人们的爱好对人们进行分类时,我也遇到过同样的问题。我的训练、开发、测试集来自我获得的关于城市居民的数据。但是,几周后,当我在农村居民身上尝试我的分类器时,效果很差。事实上,这两个数据集并非来自同一个分布。

我想也许你可能会面临同样的问题。检查你的两个数据集。


推荐阅读