如何在新数据集上实现模型

我是使用Python进行机器学习的新手。我正在尝试预测一个因素,比如房子的价格,但我使用了高阶多项式特征来创建模型。所以我有两个数据集。我已经使用其中一个数据集准备了我的模型。如何将这个模型应用到一个全新的数据集上?我在下面附上了我的代码:

data1 = pd.read_csv(r"C:\Users\DELL\Desktop\experimental data/xyz1.csv", engine = 'c', dtype=float, delimiter = ",")data2 = pd.read_csv(r"C:\Users\DELL\Desktop\experimental data/xyz2.csv", engine = 'c', dtype=float, delimiter = ",")#我必须执行这一步,否则每次都会出现NaN或无穷大的错误data1.fillna(0.000, inplace=True)data2.fillna(0.000, inplace=True)X_train = data1.drop('result', axis = 1)y_train = data1.resultX_test = data2.drop('result', axis = 1)y_test = data2.resultx2_ = PolynomialFeatures(degree=2, include_bias=False).fit_transform(X_train)x3_ = PolynomialFeatures(degree=3, include_bias=False).fit_transform(X_train)model2 = LinearRegression().fit(x2_, y_train)model3 = LinearRegression().fit(x3_, y_train)r_sq2 = model2.score(x2_, y_train)r_sq3 = model3.score(x3_, y_train)y_pred2 = model2.predict(x2_)y_pred3 = model3.predict(x3_)

所以基本上我在这之后就卡住了。我如何在测试数据上实现这个模型来预测y_test值并计算得分?


回答:

要重现PolynomialFeatures的效果,你需要存储对象本身(对于degree=2存储一次,对于degree=3再存储一次)。否则,你将无法将拟合的转换应用到测试数据集上。

X_train = data1.drop('result', axis = 1)y_train = data1.resultX_test = data2.drop('result', axis = 1)y_test = data2.result# 存储这些数据转换对象pf2 = PolynomialFeatures(degree=2, include_bias=False)pf3 = PolynomialFeatures(degree=3, include_bias=False)# 然后对训练集应用转换x2_ = pf2.fit_transform(X_train)x3_ = pf3.fit_transform(X_train)model2 = LinearRegression().fit(x2_, y_train)model3 = LinearRegression().fit(x3_, y_train)r_sq2 = model2.score(x2_, y_train)r_sq3 = model3.score(x3_, y_train)y_pred2 = model2.predict(x2_)y_pred3 = model3.predict(x3_)# 现在对测试集应用拟合的转换x2_test = pf2.transform(X_test)x3_test = pf3.transform(X_test)# 将训练好的模型应用到转换后的测试数据上y2_test_pred = model2.predict(x2_test)y3_test_pred = model3.predict(x3_test)# 计算测试数据的模型准确率r_sq2_test = model2.score(x2_test, y_test)r_sq3_test = model3.score(x3_test, y_test)

Related Posts

在使用k近邻算法时,有没有办法获取被使用的“邻居”?

我想找到一种方法来确定在我的knn算法中实际使用了哪些…

Theano在Google Colab上无法启用GPU支持

我在尝试使用Theano库训练一个模型。由于我的电脑内…

准确性评分似乎有误

这里是代码: from sklearn.metrics…

Keras Functional API: “错误检查输入时:期望input_1具有4个维度,但得到形状为(X, Y)的数组”

我在尝试使用Keras的fit_generator来训…

如何使用sklearn.datasets.make_classification在指定范围内生成合成数据?

我想为分类问题创建合成数据。我使用了sklearn.d…

如何处理预测时不在训练集中的标签

已关闭。 此问题与编程或软件开发无关。目前不接受回答。…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注