Python 培训和测试后,我如何处理新数据?

Python 培训和测试后,我如何处理新数据?,python,machine-learning,one-hot-encoding,train-test-split,Python,Machine Learning,One Hot Encoding,Train Test Split,我有两个问题。我有一个混合了分类特征和数字的数据集。我的目标是预测个人的贷款等级 我为数据集1采取的步骤如下: 1) 已从数据帧中删除分类功能 2) onehotcoded分类特征 3) pd.concat将分类特征与主数据帧一起返回,并删除目标变量 4) train\u test\u将分为70%用于培训,30%用于测试 5) 应用PCA,fit_transform训练集和transform测试集 6) 发现random forest有效,所以我使用了random ForestClassifie

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

我为数据集1采取的步骤如下:

1) 已从数据帧中删除分类功能
2)
onehotcoded
分类特征
3)
pd.concat
将分类特征与主数据帧一起返回,并删除目标变量
4)
train\u test\u将
分为70%用于培训,30%用于测试
5) 应用PCA,
fit_transform
训练集和
transform
测试集
6) 发现random forest有效,所以我使用了
random ForestClassifier
作为主要算法
7) 对模型进行测试,准确度得分为80%
8) 调整模型并将其提高到81%

现在我得到了一组新的数据,我们称之为dataset2。我只对新数据集重复了从1到3的步骤。接下来,我删除了目标变量,并使用了
RF.predict()
我知道这是错误的,我认为我应该适应算法,但形状不同。只需数据集2来适应算法对我来说没有意义,那么数据集1的目的是什么?很抱歉我是一个noob,但是我对如何使用新数据集处理和预测变量感到非常困惑

我应该重新训练我的模特吗?如果是这样的话,我应该怎么做呢?2) 我是否将新的数据集2放在数据集1下,然后再次拆分?这就是我为数据集1所做的

RF = RandomForestClassifier() 
model = RF.fit(x_train1, y_train)
y_pred = model.predict(x_test1)  
这就是我为dataset2所做的

new_pred= model.predict(x_test2)
如果我的任何步骤出错,请随时告诉我。并请提供任何解决方案。我确实尝试过实现一个管道,但我无法像以前那样重现准确性


欢迎任何其他解决方案

这对形状来说更有意义

我可以建议的是,因为有时我也会这样做,检查一下你的数据分布:每个数据集中的数据是关于什么的?我自己解释说:有一次,当我根据人们的爱好对他们进行分类时,我也遇到了同样的问题。我的火车,dev,测试集来自我从城市居民身上获得的数据。但是,几周后,当我在农村的人们身上试用我的分类器时,效果很差。事实上,这两个数据集并不来自同一个分布


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

您没有对新数据集(即PCA)应用第5步。我认为,如果您的模型适合并可以使用,您不必重新训练模型,您可以尝试通过添加dataset2和re-trian来添加,但旧模型和新模型之间应该没有太大差异。当您的模型变旧时,您应该重新trian不能再响应新数据,而不仅仅是更新新数据traning@qaiser,抱歉,我忘了加上,我也用过,但是形状是不同的。@ThotsaphonSirikutta,这很奇怪,因为当我重新使用模型时,我的准确率只有16%。有些事情对我来说没有意义:如果数据集2的形状与数据集1的形状不同,你就不能训练它并以同样的方式使用它。对于您的预测,您必须使用与您注意到的可训练示例一致的数据!如果您的数据分发已关闭,您将如何处理这种情况?您是否完全删除新数据?还是将其与旧数据集合并并重新训练?抱歉,如果这听起来像一个愚蠢的qn.1-你合并所有的数据集,洗牌他们和培训一个新的分类器。2-你训练两个分类器