在机器学习中,首先要学习的就是线性回归:
线性回归方程公式:b=(x1y1+x2y2+...xnyn-nXY)/(x1+x2+...xn-nX)。线性回归方程是利用数理统计中的回归分析,来确定两种或两种以上变数间相互依赖的定量关系的一种统计分析方法之一,应用十分广泛。
最简单的回归函数是: y = kx+b ,求k,b的值,来满足回归预测,要保重预测的最新值,需要使预测结果与实际结果的差最小,要使差最小,采用 (y-Y)**2 的二元一次函数的最小值公式,确定kb.
实现过程:自行安装实现环境。
操作系统: macOS
工具: python 3.7 、Jupyter notebook
库包: numpy matplotlib sklearn
实现代码:
print(__doc__)
import matplotlib.pyplot as plt
import numpy as np
from sklearn import datasets ,linear_model
from sklearn.metrics import mean_squared_error ,r2_score
# 获取系统自带的数据集
diabetes_X ,diabetes_y = datasets.load_diabetes(return_X_y = True )
diabetes_X.shape
# (442, 10) 442条10个维度的记录:
# diabetes_X 为 numpy.ndarray
diabetes_X =diabetes_X[:,np.newaxis,2]
#为了使方法简单,获取单列数据。
diabetes_X_train =diabetes_X[:-20]
diabetes_X_test =diabetes_X[-20:]
#按照28原则,获取训练数据和验证数据。
diabetes_y_train =diabetes_y[:-20]
diabetes_y_test =diabetes_y[-20:]
#使用线性回归模型
regr = linear_model.LinearRegression()
#训练模型
regr.fit (diabetes_X_train,diabetes_y_train)
#测试验证数据
diabetes_y_pred = regr.predict(diabetes_X_test)
regr.intercept_ #截距
#验证模型的好坏
regr.score(diabetes_X_test,diabetes_y_test)
#展示模型
plt.scatter(diabetes_X_test,diabetes_y_test,color ='black')
plt.plot(diabetes_X_test,diabetes_y_pred ,color='blue',linewidth=3)
plt.xticks(())
plt.yticks(())
plt.show