分类(Classification)与回归(Regression)都属于监督学习,他们的区别在于:
分类:用于预测有限的离散值,如是否得了癌症(0,1),或手写数字的判断,是0,1,2,3,4,5,6,7,8还是9等。分类中,预测的可能的结果是有限的,且提前给定的。
回归:用于预测实数值,如给定了房子的面积,地段,和房间数,预测房子的价格。
LinearRegression 拟合一个带有系数 w = (w1, …, wp) 的线性模型,使得数据集实际观测数据和预测数据(估计值)之间的残差平方和最小。
其数学表达式为:
-
进行预测前查看一下数据集
https://scikit-learn.org/stable/datasets/index.html#diabetes-dataset
diabetes数据集,这是一个糖尿病的数据集,主要包括442行数据,10个属性值,分别是:Age(年龄)、性别(Sex)、Body mass index(体质指数)、Average Blood Pressure(平均血压)、S1~S6一年后疾病级数指标。Target为一年后患疾病的定量指标。 -
进行预测
fit(x, y): 训练。分析模型参数,填充数据集。其中x为特征,y位标记或类属性。predict(): 预测。它通过fit()算出的模型参数构成的模型,对解释变量进行预测其类属性。预测方法将返回预测值y_pred。
import numpy as np import matplotlib.pyplot as plt from sklearn import datasets, linear_model # 从sklearn中导入数据 diabetes = datasets.load_diabetes() # 选择其中一种属性,按照二维数组输出 diabetes_x = diabetes.data[:, np.newaxis, 2] # 将数据分成训练集和测试集 # 测试集为后20行,其他的为训练集 diabetes_x_train = diabetes_x[:-20] diabetes_x_test = diabetes_x[-20:] # 将定量指标分为训练集和测试集 diabetes_y_train = diabetes.target[:-20] diabetes_y_test = diabetes.target[-20:] # 通过fit(x,y)方法训练模型 regr