Python-线性回归的sklearn实现

这篇具有很好参考价值的文章主要介绍了Python-线性回归的sklearn实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

hello大家好这里是小L😊, 这学期开启机器学习之旅。在这里想和大家一起学习一起进步。💪
这次笔记内容:学习线性回归的sklearn实现

一、绘制一条直线(普通方法)

线性回归最后要找的是一条直线

1.通过一段区间绘制一条直线

import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
#生成位于区间(-6,6)的等间隔100个点
x=np.linspace(-6,6,100)
#生成对应函数
y=0.5*x+2
#绘制直线图形
plt.plot(x,y,color='red')

python sklearn线性回归,机器学习,python,sklearn,线性回归,大数据

2.通过两点绘制一条直线

(1)代码

#已知两点(2,3),(6,5)绘制一条直线
x=np.array([2,6])
y=np.array([3,5])
plt.plot(x,y,marker='d')

python sklearn线性回归,机器学习,python,sklearn,线性回归,大数据

(2)求斜率(数学公式)

k=(y[0]-y[1])/(x[0]-x[1])
k

python sklearn线性回归,机器学习,python,sklearn,线性回归,大数据

二、线性回归sklearn实现

1.利用sklearn线性回归求直线斜率

sklearn.linear_model.LinearRegression(
python sklearn线性回归,机器学习,python,sklearn,线性回归,大数据
)
超参数

  • fit_ intercept:截距,是否计算该模型截距。(除非数据标准化之后可false. )
  • normalize:标准化false,标准化一般在建模之前做(sklearn.preprocessing.StandardScale)。
  • copy_X:原始的x还在,中间的用另一个存在。如false不要原来的x,新数据覆盖旧数据。
  • n_jobs:计算时设置任务点数,若-1最快的速度。

属性

  • intercept_ :截距
  • coef_ :系数Theta0到Theta(n-1),第几个自变量前面的系数,没有截距

方法

  • fit 训练
  • predict预测
  • score模型评估
  • get_params返回超参数的值
  • set_params修改超参数的值重新训练
x=np.array([2,6])
y=np.array([3,5])
#导入sklearn中的线性回归模块
from sklearn.linear_model import LinearRegression
#线性回归模型实例化
lr=LinearRegression()
#模型训练
x=x.reshape(-1,1)#或者:x=np.array([[2],[6]])二维矩阵两层[],每个自变量x 特征的数目需要一样,并且与y行数相对应
lr.fit(x,y)

python sklearn线性回归,机器学习,python,sklearn,线性回归,大数据

print("过两点(2,3)与(6,5)的直线斜率为:{},截距项为:{:.2f}".format(lr.coef_,lr.intercept_))

python sklearn线性回归,机器学习,python,sklearn,线性回归,大数据

#模型预测
x_test=np.array([3,4,5]).reshape(-1,1)
y_predict=lr.predict(x_test)
#模型评估——计算R方值(在因变量中占多少比例可由模型解释)
lr.score(x,y)

python sklearn线性回归,机器学习,python,sklearn,线性回归,大数据
最终结果为1,完全符合匹配

#计算模型lr均方误差(预测数据与原始数据对应点误差平方和均值)
from sklearn.metrics import mean_squared_error
y=0.5*x_test+2
mean_squared_error(y,y_predict)

python sklearn线性回归,机器学习,python,sklearn,线性回归,大数据
最终结果几乎为0,说明模型效果很好。

ps.增加一个点,第三个点(3,6)确定模型

#假设有第3点,坐标为(3,6)
x2=np.array([[2],[6],[3]])
y2=np.array([3,5,6])
#绘制三个点的散点图
plt.scatter(x2,y2,s=180,c='r')

python sklearn线性回归,机器学习,python,sklearn,线性回归,大数据

#利用线性回归模型拟合一条均方误差最小的直线
lr2=LinearRegression()
lr2.fit(x2,y2)
y2_predict=lr2.predict(x_test)
y2_predict

python sklearn线性回归,机器学习,python,sklearn,线性回归,大数据

print(lr2.coef_,lr2.intercept_)

python sklearn线性回归,机器学习,python,sklearn,线性回归,大数据

#拟合出直线
z=np.linspace(0,6,100)
z_predict=lr2.predict(z.reshape(-1,1))
plt.plot(z,z_predict,lw=5,c='g')
plt.scatter(x2,y2,s=180,c='r')

python sklearn线性回归,机器学习,python,sklearn,线性回归,大数据

#计算模型lr_2的R方系数
lr_2.score(x2,y2)

python sklearn线性回归,机器学习,python,sklearn,线性回归,大数据

#计算模型lr_2的均方误差
from sklearn.metrics import mean_squared_error
mean_squared_error(y2,y2_predict)

python sklearn线性回归,机器学习,python,sklearn,线性回归,大数据

二、生成回归模型数据集

1.回归生成器

回归生成器:产生的回归目标作为一个可选择的稀疏线性组合的具有噪声的随机的特征。它的信息特征可能是不相关的或低秩(少数特征占大多数的方差)。
sklearn.datasets.make_regression(
n_samples=100:样本数
n_features=100:特征数(自变量个数)
n_informative=10:参与建模特征数
n_targets=1:因变量个数
noise=0.0:噪音
bias=0.0:偏差(截距)
coef=False:是否输出coef标识
random_state=None:随机状态若为固定值则每次产生的数据都一样
)

#利用sklearn生成100条具有1个特征的回归分析数据集
from sklearn.datasets import make_regression
X_3,y_3=make_regression(n_samples=100,n_features=1)
plt.scatter(X_3,y_3)

python sklearn线性回归,机器学习,python,sklearn,线性回归,大数据

X_3,y_3=make_regression(n_samples=100,n_features=1,noise=50,random_state=8)
plt.scatter(X_3,y_3)

python sklearn线性回归,机器学习,python,sklearn,线性回归,大数据

2.利用线性回归模型对生成线性回归数据集进行拟合

#利用线性回归模型对数据X_3,y_3进行拟合
reg=LinearRegression()#模型实例化
reg.fit(X_3,y_3)#模型训练
#绘制回归模型
z=linspace(-3,3,200).reshape(-1,1)
plt.scatter(X_3,y_3,c='orangre',s=30)
plt.plot(z,reg.predict(z),c='g')
plt.title('LinearRegression')

python sklearn线性回归,机器学习,python,sklearn,线性回归,大数据

print('回归直线的斜率是:{:.2f}'.format(reg.coef_[0]))
print('回归直线的截距是:{:.2f}'.format(reg.intercept_))

python sklearn线性回归,机器学习,python,sklearn,线性回归,大数据
由于coef_属性最后输出的为矩阵,因此reg.coef_[0]

三、糖尿病数据集的线性回归分析

1.糖尿病数据集介绍

diabetes是一个关于糖尿病的数据集,该数据集包括442个病人的生理数据及一年后的病情发展状况
python sklearn线性回归,机器学习,python,sklearn,线性回归,大数据

2.代码实战

#导入糖尿病数据集
from sklearn.datasets import load_diabetes
diabetes=load_diabetes()
print(diabetes['DESCR'])

python sklearn线性回归,机器学习,python,sklearn,线性回归,大数据

X.shape,y.shape

python sklearn线性回归,机器学习,python,sklearn,线性回归,大数据

#划分训练集和测试集
from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test=train_test_split(X,y,random_state=8)
#模型实例化+标准化
lr=LinearRegression().fit(X_train,y_train)
print("训练数据集得分:{:.2f}".format(lr.score(X_train,y_train)))
print("训练数据集得分:{:.2f}".format(lr.score(X_test,y_test)))

python sklearn线性回归,机器学习,python,sklearn,线性回归,大数据文章来源地址https://www.toymoban.com/news/detail-734102.html

到了这里,关于Python-线性回归的sklearn实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python机器学习(五)逻辑回归、决策边界、代价函数、梯度下降法实现线性和非线性逻辑回归

    线性回归所解决的问题是把数据集的特征传入到模型中,预测一个值使得误差最小,预测值无限接近于真实值。比如把房子的其他特征传入到模型中,预测出房价, 房价是一系列连续的数值,线性回归解决的是有监督的学习。有很多场景预测出来的结果不一定是连续的,我们

    2024年02月15日
    浏览(84)
  • Python和PyTorch深入实现线性回归模型:一篇文章全面掌握基础机器学习技术

    线性回归是一种统计学中的预测分析,该方法用于建立两种或两种以上变量间的关系模型。线性回归使用最佳的拟合直线(也称为回归线)在独立(输入)变量和因变量(输出)之间建立一种直观的关系。简单线性回归是输入变量和输出变量之间的线性关系,而多元线性回归

    2024年02月15日
    浏览(47)
  • Python多元线性回归sklearn

    2024年01月24日
    浏览(45)
  • python一元线性回归sklearn

    2024年01月24日
    浏览(45)
  • 机器学习之利用线性回归预测波士顿房价和可视化分析影响房价因素实战(python实现 附源码 超详细)

    数据集和源码请点赞关注收藏后评论区留下QQ邮箱或者私信 线性回归是利用最小二乘函数对一个或多个因变量之间关系进行建模的一种回归分析,这种函数是一个或多个称为回归系数的模型参数的线性组合。只有一个变量的称为一元回归,大于一个变量的情况叫做多元回归。

    2024年01月21日
    浏览(45)
  • 机器学习实战:Python基于LR线性回归进行预测(十)

    注意这里的LR指的是 Linear Regression ,线性回归。而非逻辑回归 Logistic Regression ,虽然二者简称都是LR,但是后者我们还是俗称 Logistic 多点 1.1 LR的介绍 线性回归(Linear Regression)是一种用于建立自变量与连续因变量之间线性关系模型的统计学和机器学习方法。它是最简单、最常

    2024年02月03日
    浏览(37)
  • 【Python机器学习】sklearn.datasets分类任务数据集

    如何选择合适的数据集进行机器学习的分类任务? 选择合适的数据集是进行任何机器学习项目的第一步,特别是分类任务。数据集是机器学习任务成功的基础。没有数据,最先进的算法也无从谈起。 本文将专注于 sklearn.datasets 模块中用于分类任务的数据集。这些数据集覆盖

    2024年02月07日
    浏览(38)
  • 用sklearn实现线性回归和岭回归

    此文为ai创作,今天写文章的时候发现创作助手限时免费,想测试一下,于是就有了这篇文章,看的出来,效果还可以,一行没改。 线性回归 在sklearn中,可以使用线性回归模型做多变量回归。下面是一个示例: 假设我们有以下数据集,其中X是输入特征,y是输出: 我们可以

    2024年02月09日
    浏览(38)
  • 机器学习与深度学习——使用paddle实现随机梯度下降算法SGD对波士顿房价数据进行线性回归和预测

    随机梯度下降(SGD)也称为增量梯度下降,是一种迭代方法,用于优化可微分目标函数。该方法通过在小批量数据上计算损失函数的梯度而迭代地更新权重与偏置项。SGD在高度非凸的损失表面上远远超越了朴素梯度下降法,这种简单的爬山法技术已经主导了现代的非凸优化。

    2024年02月03日
    浏览(54)
  • 简单线性回归原理&sklearn简单实现

    回归算法是相对分类算法而言的,与我们想要预测的目标变量y的值类型有关。 有时分类问题也可以转化为回归问题,例如的肺癌预测,我们可以用回归模型先预测出患肺癌的概率,然后再给定一个阈值, 例如50%,概率值在50%以下的人划为没有肺癌,50%以上则认为患有肺癌。

    2024年03月10日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包