我对机器学习是新手,对Python也没有太多经验。
在下面的代码中,调用fit()
函数后,训练数据存储在哪里?以及在调用predict()
方法后,它是如何知道数据是否已经训练过的?
我知道这可能是个愚蠢的问题,但如果能得到一些帮助,我将不胜感激。谢谢
#Fitting Simple linear regression to the training setfrom sklearn.linear_model import LinearRegressionregressor = LinearRegression()regressor.fit(X_train, y_train) #Predicting the Test search resultsy_pred = regressor.predict(X_test)
回答:
fit()
函数只是将线性模型拟合到你的数据上。训练数据已经分配给了你的变量X_train
(特征)和y_train
(标签),因此在调用fit()
后不会存储训练数据。不过,你可以保存已经训练/拟合的模型,该模型包含使用训练数据近似的参数。
现在回答你的第二个问题,在拟合模型之前是无法进行预测的。如果你尝试在调用fit()
之前调用predict()
,你会得到一个NotFittedError
:
如果在拟合前使用估计器时引发的异常类。
这个类同时继承自ValueError和AttributeError,以帮助处理异常和保持向后兼容性。
示例:
>>> from sklearn.svm import LinearSVC>>> from sklearn.exceptions import NotFittedError>>> try:... LinearSVC().predict([[1, 2], [2, 3], [3, 4]])... except NotFittedError as e:... print(repr(e))NotFittedError("This LinearSVC instance is not fitted yet. Call 'fit' withappropriate arguments before using this estimator."...)