线性回归是数据挖掘中基础的算法之一,其核心思想是求解一组因变量和自变量之间的方程,得到回归函数,同时误差项通常使用最小二乘法进行计算。 在本书常用的Sklaern机器学习包中将调用Linear_model子类的LinearRegression类进行线性回归模型计算。 1.LinearRegression LinearRegression回归模型在Sklearn.linear_model子类下,主要是调用fit(x,y)函数来训练模型,其中x为数据的属性,y为所属类型。sklearn中引用回归模型的代码如下: 输出函数的构造方法如下: 其中参数说明如下: copy_X:布尔型,默认为True。是否对X复制,如果选择False,则直接对原始数据进行覆盖,即经过中心化、标准化后,把新数据覆盖到原数据上。 fit_intercept:布尔型,默认为True。是否对训练数据进行中心化,如果是True表示对输入的训练数据进行中心化处理,如果是False则输入数据已经中心化处理,后面的过程不再进行中心化处理。 n_jobs:整型,默认为1。计算时设置的任务个数,如果设置为-1表示使用所有的CPU。该参数对于目标个数大于1且规模足够大的问题有加速作用。 normalize:布尔型,默认为False。是否对数据进行标准化处理。 LinearRegression类主要包括如下方法: ![]() 2.示例 输出结果: ![]() ![]() 3.线性回归预测糖尿病 Sklearn机器学习包提供了糖尿病数据集(Diabetes Dataset),该数据集主要包括442行数据,10个特征值,分别是:年龄(Age)、性别(Sex)、体质指数(Body mass index)、平均血压(Average Blood Pressure)、S1~S6一年后疾病级数指标。预测指标为Target,它表示一年后患疾病的定量指标。 整个数据集共10个特征值,我们只获取第3个特征进行实验,而真实分析中通常经过降维处理再绘制图形。 from sklearn import datasets import matplotlib.pyplot as plt from sklearn import linear_model import numpy as np #数据集划分 diabetes = datasets.load_diabetes() #载入数据 diabetes_x_temp = diabetes.data[:, np.newaxis, 2] #获取其中一个特征 diabetes_x_train = diabetes_x_temp[:-20] #训练样本 diabetes_x_test = diabetes_x_temp[-20:] #测试样本 后20行 diabetes_y_train = diabetes.target[:-20] #训练标记 diabetes_y_test = diabetes.target[-20:] #预测对比标记 #回归训练及预测 clf = linear_model.LinearRegression() clf.fit(diabetes_x_train, diabetes_y_train) #训练数据集 pre = clf.predict(diabetes_x_test) #绘图 plt.title(u'LinearRegression Diabetes') #标题 plt.xlabel(u'Attributes') #x轴坐标 plt.ylabel(u'Measure of disease') #y轴坐标 plt.scatter(diabetes_x_test, diabetes_y_test, color = 'black') #散点图 plt.plot(diabetes_x_test, pre, color='blue', linewidth = 2) #预测直线 plt.show() 输出结果如图所示,每个点表示真实的值,而直线表示预测的结果。 ![]() |
|