Python sklearn.fit()和.score()之间的关系
在使用线性回归模型时,我将数据分为训练集和测试集。然后,我使用以下公式计算R^2、RMSE和MAE:Python sklearn.fit()和.score()之间的关系,python,scikit-learn,linear-regression,Python,Scikit Learn,Linear Regression,在使用线性回归模型时,我将数据分为训练集和测试集。然后,我使用以下公式计算R^2、RMSE和MAE: lm.fit(X_train, y_train) R2 = lm.score(X,y) y_pred = lm.predict(X_test) RMSE = np.sqrt(metrics.mean_squared_error(y_test, y_pred)) MAE = metrics.mean_absolute_error(y_test, y_pred) 我以为我是在计算整个数据集的R^2
lm.fit(X_train, y_train)
R2 = lm.score(X,y)
y_pred = lm.predict(X_test)
RMSE = np.sqrt(metrics.mean_squared_error(y_test, y_pred))
MAE = metrics.mean_absolute_error(y_test, y_pred)
我以为我是在计算整个数据集的R^2(而不是比较训练数据和原始数据)。但是,我了解到,在评分之前,您必须先对模型进行拟合,因此我不确定是对原始数据(如R2中输入的)还是我用于拟合模型的数据(X_序列和y_序列)进行评分。当我跑步时:
lm.fit(X_train, y_train)
lm.score(X_train, y_train)
我得到的结果与我在得分X和y时得到的结果不同。所以我的问题是,与拟合的模型相比,.score参数的输入是(从而使lm.fit(X,y);lm.score(X,y)成为原始数据的R^2值,而lm.fit(X,y)是基于.fit中创建的模型的原始数据的R^2值)还是完全发生了其他事情?fit()只适合与训练同义的数据,即适合数据意味着训练数据。
分数有点像测试或预测
因此,应该使用不同的数据集来训练分类器并测试其准确性
一个人可以这样做。
X_序列,X_测试,y_序列,y_测试=交叉验证。序列测试分割(X,y,测试大小=0.2)
clf=neighborsClassifier()的邻居
clf.fit(X_系列、y_系列)
准确度=clf。分数(X_检验,y_检验)fit()只拟合与训练同义的数据,即拟合数据意味着训练数据。
分数有点像测试或预测
因此,应该使用不同的数据集来训练分类器并测试其准确性
一个人可以这样做。
X_序列,X_测试,y_序列,y_测试=交叉验证。序列测试分割(X,y,测试大小=0.2)
clf=neighborsClassifier()的邻居
clf.fit(X_系列、y_系列)
准确度=clf。分数(X_检验,y_检验)IIRC
。分数
是运行的快捷方式。预测然后计算准确度。因此,当我运行lm时,您只需将它交给X\u test
和y\u test
@l3via即可。score(X\u test,y\u pred)
结果为1.0,这证实了您的解释IIRC。score
是运行的快捷方式。预测
,然后计算准确度。因此,当我运行lm.score(X\u test,y\u pred)
时,您只需将其交给X\u test
和y\u test
@l3via即可。结果为1.0,这证实了您的解释