文章插图
其中 , n表示特征数目 , 表示每个训练样本的第i个特种值 , 当只有一个因变量x时 , 称为一元线性回归 , 类似于;而当多个因变量时 , 成为多元线性回归 。我们的目的是使最小化 , 从而更好的将样本数据集进行拟合 , 更好地预测新的数据 。
多项式回归或逻辑回归相关知识将在后面介绍 。
二.线性回归分析线性回归是数据挖掘中基础的算法之一 , 其核心思想是求解一组因变量和自变量之间的方程 , 得到回归函数 , 同时误差项通常使用最小二乘法进行计算 。在本书常用的Sklaern机器学习包中将调用Linear_model子类的LinearRegression类进行线性回归模型计算 。
1.LinearRegressionLinearRegression回归模型在Sklearn.linear_model子类下 , 主要是调用fit(x,y)函数来训练模型 , 其中x为数据的属性 , y为所属类型 。sklearn中引用回归模型的代码如下:
from sklearn import linear_model #导入线性模型regr = linear_model.LinearRegression() #使用线性回归print(regr)
输出函数的构造 *** 如下:
LinearRegression(copy_X=True,fit_intercept=True,n_jobs=1,normalize=False)
其中参数说明如下:
copy_X:布尔型 , 默认为True 。是否对X复制 , 如果选择False , 则直接对原始数据进行覆盖 , 即经过中心化、标准化后 , 把新数据覆盖到原数据上 。fit_intercept:布尔型 , 默认为True 。是否对训练数据进行中心化 , 如果是True表示对输入的训练数据进行中心化处理 , 如果是False则输入数据已经中心化处理 , 后面的过程不再进行中心化处理 。n_jobs:整型 , 默认为1 。计算时设置的任务个数 , 如果设置为-1表示使用所有的CPU 。该参数对于目标个数大于1且规模足够大的问题有加速作用 。normalize:布尔型 , 默认为False 。是否对数据进行标准化处理 。LinearRegression类主要包括如下 *** :

文章插图
fit(X,y[,n_jobs])
对训练集X , y进行训练 , 分析模型参数 , 填充数据集 。其中X为特征 , y为标记或类属性 。
predict(X)
使用训练得到的估计器或模型对输入的X数据集进行预测 , 返回结果为预测值 。数据集X通常划分为训练集和测试集 。
decision_function(X)
使用训练得到的估计器或模型对数据集X进行预测 。它与predict(X)区别在于该 *** 包含了对输入数据的类型检查和当前对象是否存在coef_属性的检查 , 更安全 。
score(X, y[,]samples_weight)
返回对于以X为samples、y为target的预测效果评分 。
get_params([deep])
获取该估计器(Estimator)的参数 。
**set_params(params)
设置该估计器(Estimator)的参数 。
coef_
存放LinearRegression模型的回归系数 。
intercept_
存放LinearRegression模型的回归截距 。
现在对前面的企业成本和利润数据集进行线性回归实验 。完整代码如下:
# -*- coding: utf-8 -*-# By:Eastmount CSDN 2021-07-03from sklearn import linear_model #导入线性模型import matplotlib.pyplot as pltimport numpy as np#X表示企业成本 Y表示企业利润X = [[400], [450], [486], [500], [510], [525], [540], [549], [558], [590], [610], [640], [680], [750], [900]]Y = [[80], [89], [92], [102], [121], [160], [180], [189], [199], [203], [247], [250], [259], [289], [356]]print('数据集X: ', X)print('数据集Y: ', Y)#回归训练clf = linear_model.LinearRegression()clf.fit(X, Y)#预测结果X2 = [[400], [750], [950]]Y2 = clf.predict(X2)print(Y2)res = clf.predict(np.array([1200]).reshape(-1, 1))[0]print('预测成本1200元的利润:$%.1f' % res)#绘制线性回归图形plt.plot(X, Y, 'ks') #绘制训练数据集散点图plt.plot(X2, Y2, 'g-') #绘制预测数据集直线plt.show()
调用sklearn包中的LinearRegression()回归函数 , fit(X,Y)载入数据集进行训练 , 然后通过predict(X2)预测数据集X2的利润 , 并将预测结果绘制成直线 , (X,Y)数据集绘制成散点图 , 如图3所示 。

文章插图
同时调用代码预测2017年企业成本为1200元的利润为575.1元 。注意 , 线性模型的回归系数会保存在coef_变量中 , 截距保存在intercept_变量中 。clf.score(X, Y) 是一个评分函数 , 返回一个小于1的得分 。评分过程的代码如下:
推荐阅读
- 删档内测充了钱怎么办
- 拍拍贷借款在审核中是借到款了吗?
- 梦见家里养了一只白色的小狗 梦见家里养白色猫
- 2015我被广东医学院大学录取了,怎么查询自己在哪个校区
- 脸上痘痘抠破了怎么办 脸上痘痘怎么办啊
- 为什么我的电脑连接不了宽带,为什么座机好用电脑连不上网呢?
- 写教师节到了600字初中作文
- 开关贴纸 开关贴
- 单身者梦见别人把自己打了
- 解决电脑开不了机的思路方法 电脑开不了机了怎么办