线性模型的fit其实一个进行学习的过程,根据数据和标签进行学习;predict则是基于fit之后形成的模型,来决定指定的数据对应于标签(y_train_5)的值。
下面的是手写字母判断是否为“5”
sgd_clf = SGDClassifier(random_state=42)
sgd_clf.fit(X_train, y_train_5)
sgd_clf.predict([some_digit])
>>> array([ True])
X_train就是数据,y_train_5就是标签,后者是标注指定的数据是否是数据“5”
下面是判断房屋中值:
lin_reg = LinearRegression()
lin_reg.fit(housing_prepared, housing_labels)
some_data = housing.iloc[:5]
some_labels = housing_labels.iloc[:5]
some_data_prepared = full_pipeline.transform(some_data)
>>> print("Predictions: ", lin_reg.predict(some_data_prepared))
Predictions: [ 303104. 44800. 308928. 294208. 368704.]
>>> print("Labels: ", list(some_labels))
Labels: [359400.0, 69700.0, 302100.0, 301300.0, 351900.0]
回归的本质就是根据真实数据倒推公式中各个系数值;
第一个例子中,是分类的学习,所以学习的结果只能是限定的分类中;第二个例子是回归学习,回归学习就是形成一个线性公式,所以predict返回值其实是公式返回来的值。fit就是开始学习(此时通过notebook可以发现需要执行很长时间),predict则是根据fit形成的体系来判断指定值对应的计算结果。