分享

【机器学习】线性回归分析

 时予可 2023-04-25 发布于山西

线性回归是数据挖掘中基础的算法之一,其核心思想是求解一组因变量和自变量之间的方程,得到回归函数,同时误差项通常使用最小二乘法进行计算。

在本书常用的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()

输出结果如图所示,每个点表示真实的值,而直线表示预测的结果。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多