参考:sklearn_user_guide
下载链接:https://download.csdn.net/download/jimi0123/10898941
下面是一组用于回归的方法,其中目标值是输入变量的线性组合
我们的目标就是找到w0…wp,使得预测值y(hat)与真实值y尽可能接近。
话不多说,直接看例子
import matplotlib.pyplot as plt
import numpy as np
from sklearn import linear_model,datasets
from sklearn.metrics import mean_squared_error,r2_score
diabetes = datasets.load_diabetes() #导入数据
#使用一个特征
diabetes_X = diabetes.data[:,np.newaxis, 2] #newaxis 增加一个维度,选取第3列的特征
#diabetes_X = diabetes.data[:] #使用全部特征使用本条语句,屏蔽上一条
diabetes_X.shape
#(442, 1)
#划分数据,可用split
diabetes_X_train = diabetes_X[:-20]
diabetes_X_test = diabetes_X[-20:]
diabetes_y_train = diabetes.target[:-20]
diabetes_y_test = diabetes.target[-20:]
#创建线性模型
regr = linear_model.LinearRegression()
#训练模型
regr.fit(diabetes_X_train, diabetes_y_train)
#测试
diabetes_y_pred = regr.predict(diabetes_X_test)
# The mean squared error
print("Mean squared error: %.2f"% mean_squared_error(diabetes_y_test, diabetes_y_pred))
# Explained variance score: 1 is perfect prediction
print('Variance score: %.2f' % r2_score(diabetes_y_test, diabetes_y_pred))
Mean squared error: 2548.07
Variance score: 0.47
#效果相当的不好啊,数据太少,422个训练数据
plt.scatter(diabetes_X_test, diabetes_y_test, color='black')
plt.plot(diabetes_X_test, diabetes_y_pred, color='blue', linewidth=3)
plt.show()