本文主要是通过程序来学习python 中sklearn的LinearRegression线性回归这一函数的基本操作和使用,注意不是用python纯粹从头到尾自己构建线性回归,既然sklearn提供了现成的我们直接拿来用就可以了,至于线性回归的原理非常简单,这里不做进一步解释(可以参考https://blog.csdn.net/sxf1061926959/article/details/66976356?fps=1&locationNum=9)
LinearRegression的使用非常简单,主要分为两步:
一:使用 fit(x_train,y_train)对训练集x, y进行训练。
二:使用predict(x_test) 训练得到的估计器对输入为x_test的集合进行预测(x_test可以是测试集,也可以是需要预测的数 据)。
本次用的源数据是 datasets.load_diabetes数据,这是一个糖尿病的数据集,data部分主要包括442行数据,10个属性值,分别是:Age(年龄)、性别(Sex)、Body mass index(体质指数)、Average Blood Pressure(平均血压)、S1~S6一年后疾病级数指标;Target为一年后患疾病的定量指标。为了后面绘图方便本程序中只用了data中的一个参数作为自变量(实际自变量中并不限于一个属性或特征值)
代码如下:
#LinearRegression线性回归
from sklearn import datasets,linear_model
import matplotlib.pyplot as plt
import numpy as np
import matplotlib as mpl
diabetes=datasets.load_diabetes()
diabetes_x=diabetes.data[:,np.newaxis ,2] #取第三列数据
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) #用训练集进行训练模型
print('Input Values')
print(diabetes_x_test)
#核心代码
diabetes_y_pred=regr.predict(diabetes_x_test)
print('Predicted Output Values')
print(diabetes_y_pred)
#绘图
mpl.rcParams['font.sans-serif'] = [u'SimHei'] #用来正常显示中文标签
mpl.rcParams['axes.unicode_minus'] = False #用来正常显示负号
plt.scatter(diabetes_x_test,diabetes_y_test,color='black')
plt.plot(diabetes_x_test,diabetes_y_pred,color='red',linewidth=1)
plt.xlabel('体质指数', fontsize=12)
plt.ylabel('一年后患疾病的定量指标', fontsize=12)
plt.title(u'LinearRegression线性回归', fontsize=12)
plt.show()
运行结果:
更多算法可以参看博主其他文章,或者github:https://github.com/Mryangkaitong/python-Machine-learning