我有两个CSV文件,一个是训练数据集,另一个是测试数据集。训练数据集包含36列,其中一列是结果列,其值为A到F。测试数据集有35列,不包含结果列。我想在测试数据集中也添加一个结果列。我搜索了几篇教程,但没有找到我应该遵循的方法。有人能告诉我应该遵循的过程吗?
回答:
您没有提供任何样本数据和您想要使用的技术,我的下方代码将帮助您了解如何进行一般预测:
import pandas as pdimport numpy as npfrom sklearn.ensemble import RandomForestClassifierfrom sklearn.preprocessing import LabelEncoder
假设您已经读取了两个CSV文件,train
和 test
X_train = train.loc[:, train.columns != 'Outcome'] # <---- 在这里您从训练数据中排除结果列y_train = train['Outcome'] # <---- 这是您的结果列le = LabelEncoder()y_train = le.fit_transform(y_train) # <---- 在这里您将A-F的值转换为数值(0-5)
我假设其余的x
变量是数值型的。
rf = RandomForestClassifier() # <---- 在这里您调用分类器rf.fit(X_train, y_train) # <---- 在训练数据上拟合分类器rf.score(X_train, y_train) # <---- 检查模型准确性y_pred = pd.DataFrame(rf.predict(test), columns = ['Outcome']) # <---- 在测试数据上进行预测test_pred = pd.concat([test, y_pred['Outcome']], axis = 1) # <---- 在这里您将预测列添加到您的测试数据集中test_pred.to_excel(r'path\Test.xlsx')