sklearn应用线性回归算法

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

目录

实现线性回归算法

1) 准备数据

2) 实现算法

线性回归步骤

sklearn实现朴素贝叶斯

1) 算法使用流程

2) 朴素贝叶斯算法应用


Scikit-learn 简称 sklearn 是基于 Python 语言实现的机器学习算法库,它包含了常用的机器学习算法,比如回归、分类、聚类、支持向量机、随机森林等等。同时,它使用 NumPy 库进行高效的科学计算,比如线性代数、矩阵等等。

Scikit-learn 是 GitHub 上最受欢迎的机器学习库之一,其最新版本是 2020 年12 月发布的 scikit-learn 0.24.1。

提示:Scikit-learn 官方网站:scikit-learn: machine learning in Python — scikit-learn 1.3.0 documentation

Scikit-learn 涵盖了常用的机器学习算法,而且还在不断的添加完善,对于本教程所涉及的机器学习算法它都做了良好的 API 封装,以供直接调用。你可以根据不同的模型进行针对性的选择。下面介绍 sklearn 中常用的算法库:

  • ·linear_model:线性模型算法族库,包含了线性回归算法,以及 Logistic 回归算法,它们都是基于线性模型。
  • .naiv_bayes:朴素贝叶斯模型算法库。
  • .tree:决策树模型算法库。
  • .svm:支持向量机模型算法库。
  • .neural_network:神经网络模型算法库。
  • .neightbors:最近邻算法模型库。

实现线性回归算法

下面我们是基于 sklearn 实现线性回归算法,大概可以分为三步,首先从 sklearn 库中导入线性模型中的线性回归算法,如下所示:

from sklearn import linear_model

其次训练线性回归模型。使用  fit() 喂入训练数据,如下所示:

model = linear_model.LinearRegression()  线性回归
model.fit(x, y)

最后一步就是对训练好的模型进行预测。调用 predict() 预测输出结果, “x_”为输入测试数据,如下所示:

model.predict(x_)

你可能会感觉 so easy,其实没错,使用 sklearn 算法库实现线性回归就是这么简单,不过上述代码只是一个基本的框架,要想真正的把这台“机器”跑起来,我们就得给它喂入数据,因此准备数据集是必不可少的环节。数据集的整理也是一门专业的知识,会涉及到数据的收集、清洗,也就是预处理的过程,比如均值移除、归一化等操作,如果熟悉 Pandas 的话应该了解, 因此这里不做重点讲解。

1) 准备数据

下面我们手动生成一个数据集,如下所示:

  1. # 使用numpy准备数据集
  2. import numpy as np
  3. # 准备自变量x,-3到3的区间均分间隔30份数
  4. x = np.linspace(3,6.40)
  5. #准备因变量y,这一个关于x的假设函数
  6. y = 3 * x + 2
2) 实现算法
  1. #使用matplotlib绘制图像,使用numpy准备数据集
  2. import matplotlib.pyplot as plt
  3. import numpy as np
  4. from sklearn import linear_model
  5. #准备自变量x,生成数据集,3到6的区间均分间隔30份数
  6. x = np.linspace(3,6.40)
  7. #准备因变量y,这一个关于x的假设函数
  8. y = 3 * x + 2
  9. #由于fit 需要传入二维矩阵数据,因此需要处理x,y的数据格式,将每个样本信息单独作为矩阵的一行
  10. x=[[i] for i in x]
  11. y=[[i] for i in y]
  12. # 构建线性回归模型
  13. model=linear_model.LinearRegression()
  14. # 训练模型,"喂入"数据
  15. model.fit(x,y)
  16. # 准备测试数据 x_,这里准备了三组,如下:
  17. x_=[[4],[5],[6]]
  18. # 打印预测结果
  19. y_=model.predict(x_)
  20. print(y_)
  21. #查看w和b的
  22. print("w值为:",model.coef_)
  23. print("b截距值为:",model.intercept_)
  24. #数据集绘制,散点图,图像满足函假设函数图像
  25. plt.scatter(x,y)
  26. plt.show()

通过线性回归得到的线性函数图像,如下所示:
 

sklearn应用线性回归算法,2021 AI python,算法,sklearn,线性回归


图1:线性回归函数图像


打印输出结果如下所示:

测试集输出结果:
[[14.]
[17.]
[20.]]

w值为: [[3.]]
b截距值为: [2.]

通过上述代码我们就实现“线性回归”的过程,但是在实际情况中,我们要面临的数据集要复杂的多,绝大多数情况不会这样理想,都会存在一些波动。在生成数据集的代码段内添加以下代码,如下所示:

#准备自变量x,生成数据集,3到6的区间均分间隔30份数
x = np.linspace(3,6.40)

#准备因变量y,这一个关于x的假设函数
y = 3 * x + 2

# 添加代码,扰乱点的分布
x = x + np.random.rand(40)

利用 NumPy 的 random. rand() 随机生成 0 - 1 之前的波动数值,从而改变数据点的分布情况,如下所示:
 

sklearn应用线性回归算法,2021 AI python,算法,sklearn,线性回归


图2:修改后的散点分布


虽然做标签散乱分布,但是使用线性回归算法学习依然可以得到线性函数,此时 w 与 b 的输出结果如下所示:

w值为: [[2.68673744]]
b截距值为: [0.80154335]

绘制最佳拟合直线,程序代码如下:

 
  1. #使用matplotlib绘制图像,使用numpy准备数据集
  2. import matplotlib.pyplot as plt
  3. import numpy as np
  4. from sklearn import linear_model
  5. #准备自变量x,生成数据集,-3到3的区间均分间隔30份数
  6. x = np.linspace(3,6,40)
  7. #准备因变量y,这一个关于x的假设函数
  8. y=3 * x + 2
  9. x = x + np.random.rand(40)
  10. #准备因变量y,这一个关于x的假设函数
  11. #由于fit 需要传入二维矩阵数据,因此需要处理x,y数据格式,将每个样本信息单独作为矩阵的一行
  12. x=[[i] for i in x]
  13. y=[[i] for i in y]
  14. model=linear_model.LinearRegression()
  15. model.fit(x,y)
  16. #准备测试数据 x_,这里准备了三组,如下:
  17. x_=[[4],[5],[6]]
  18. # 打印预测结果
  19. y_=model.predict(x_)
  20. print(y_)
  21. #查看w和b的
  22. print("w值为:",model.coef_)
  23. print("b截距值为:",model.intercept_)
  24. #数据集绘制,散点图,图像满足函假设函数图像
  25. plt.scatter(x,y)
  26. #绘制最佳拟合直线
  27. plt.plot(x_,y_,color="red",linewidth=3.0,linestyle="-")
  28. plt.legend(["func","Data"],loc=0)
  29. plt.show()

函数图像如下所示:
 

sklearn应用线性回归算法,2021 AI python,算法,sklearn,线性回归


图3:拟合直线绘制

线性回归步骤

通过上述代码了解了如何使用 Python  sklearn 实现线性回归,下面从总整体出发再次审视该算法:掌握线性回归算法的具体步骤。

线性回归适用于有监督学习的回归问题,首先在构建线性模型前,需要准备好待输入的数据集,数据集按照需要可划分为训练集和测试集,使用训练集中的向量 X 与向量 Y 进行模型的训练,其中向量 Y 表示对应 X 的结果数值(也就是“参考答案”);而输出时需要使用测试集,输入测试 X 向量输出预测结果向量 Y。

其实线性回归主要解决了以下三个问题:

  • 第一,为假设函数设定了参数 w,通过假设函数画出线性“拟合”直线。
  • 第二,将预测值带入损失函数,计算出一个损失值。
  • 第三,通过得到的损失值,利用梯度下降等优化方法,不断调整 w 参数,使得损失值取得最小值。我们把这个优化参数值的过程叫做“线性回归”的学习过程。


线性回归算法简单,且容易理解,但这并不影响它的广泛应用,比如经济金融领域实现股票的预测,以及著名的波士顿房价预测,这些都是线性回归的典型应有,因此我们要走出一个误区,不要感觉算法简单就不重要,机器学习虽然算法众多,但每一种算法都有其存在的理由,而掌握了线性回归就相当于拿到了算法世界的入场券。

sklearn实现朴素贝叶斯

在 sklearn 库中,基于贝叶斯定理的算法集中在 sklearn.naive_bayes 包中,根据对“似然度 P(xi|y)”计算方法的不同,我们将朴素贝叶斯大致分为三种:

多项式朴素贝叶斯(MultinomialNB)

伯努利分布朴素贝叶斯(BernoulliNB)

高斯分布朴素贝叶斯(GaussianNB)

另外一点要牢记,朴素贝叶斯算法的实现是基于假设而来,在朴素贝叶斯看来,特征之间是相互独立的,互不影响的。

高斯朴素贝叶斯适用于特征呈正态分布的,多项式贝叶斯适用于特征是多项式分布的,伯努利贝叶斯适用于二项分布。

1) 算法使用流程

使用朴素贝叶斯算法,具体分为三步:

  • 统计样本数,即统计先验概率 P(y) 和 似然度 P(x|y)
  • 根据待测样本所包含的特征,对不同类分别进行后验概率计算。
  • 比较 y1,y2,...yn 的后验概率,哪个的概率值最大就将其作为预测输出。
2) 朴素贝叶斯算法应用

下面通过鸢尾花数据集对朴素贝叶斯分类算法进行简单讲解。如下所示:

  1. #鸢尾花数据集
  2. from sklearn.datasets import load_iris
  3. #导入朴素贝叶斯模型,这里选用高斯分类器
  4. from sklearn.naive_bayes import GaussianNB
  5. #载入数据集
  6. X,y=load_iris(return_X_y=True)
  7. bayes_modle=GaussianNB()
  8. #训练数据
  9. bayes_modle.fit(X,y)
  10. #使用模型进行分类预测
  11. result=bayes_modle.predict(X)
  12. print(result)
  13. #对模型评分
  14. model_score=bayes_modle.score(X,y)
  15. print(model_score)

输出结果:

预测分类:
[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1
1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 2 2 2 2
2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2
2 2]
模型评分:
0.96

鸢尾花数据集即iris
iris数据集文件: https://pan.baidu.com/s/1saL_4Q9PbFJluU4htAgFdQ .提取码:1234

数据集简介
数据集包含150个样本(数据集的行)
数据集包含4个属性(数据集的列):Sepal Length,Sepal Width,Petal Length,Petal Width:‘feature_names’
利用numpy.ndarray存储这150x4的数据:‘data’
分类标签取自array[‘Setosa’,‘Versicolour’,‘Virginica’]:‘target_names’
Setosa,Versicolour,Virginica是数据集所包含的3中品种的鸢尾花
这3个分类标签(即150x1数据)用np.ndarray存储:‘target’
总之,这个数据存储了150x4的特征数据和150x1的分类标签,其中特征数据又放在‘data’里,分类标签放在‘target’里文章来源地址https://www.toymoban.com/news/detail-659342.html

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

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

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

相关文章

  • (3)【Python数据分析进阶】Machine-Learning模型与算法应用-线性回归与逻辑回归

    目录 一、Linear Regression线性回归应用 一元一次线性回归公式及解析 应用案例(一)——自定义数据(Custom data) 1、下载安装sklearn库 2、导入库函数 3、加载数据集 4、创建线性回归对象 5、模型训练 6、预测结果 7、绘制模型图像 8、应用模型进行预测 9、评估指标 应用案例(

    2024年01月24日
    浏览(42)
  • 多元线性回归的python代码实现(基于sklearn的波士顿房价boston数据集为例)

    基于sklearn自带数据集波士顿房价数据集进行多元线性回归算法代码实现,其数据集包括13个特征向量,共计506个样本集。 本文代码实现步骤如下: 1. 获取数据集 2. 数据集切分,老规矩,80%训练,20%测试 3. 数据预处理(本用例尝试过归一化处理,但发现效果不好,不是每一个

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

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

    2024年02月09日
    浏览(32)
  • 【机器学习sklearn】第二节:线性回归和线性分类

    作者 🕵️‍♂️:让机器理解语言か   专栏 🎇:机器学习sklearn 描述 🎨:本专栏主要分享博主学习机器学习的笔记和一些心得体会。 寄语 💓:🐾没有白走的路,每一步都算数!🐾          监督学习(英语:Supervised learning)是机器学习中最为常见、应用最为广泛的

    2023年04月26日
    浏览(52)
  • 简单线性回归原理&sklearn简单实现

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

    2024年03月10日
    浏览(37)
  • [Python中常用的回归模型算法大全:从线性回归到XGBoost]

    在数据科学和机器学习领域,回归分析是一项关键任务,用于预测连续型变量的数值。除了传统的线性回归模型外,Python提供了丰富多样的回归模型算法,适用于各种复杂的数据关系。本文将深入探讨这些回归模型,并介绍一系列常用的非线性回归方法。我们将涵盖多种模型

    2024年02月07日
    浏览(29)
  • CUMCM 2021-B:乙醇偶合制备C4烯烃(多元线性回归分析)

    目录 一、竞赛赛题 二、问题(1)分析 三、问题(2)分析 四、多元线性回归分析(Stata) 1.多元自变量的选定 (1)乙醇转化率 (2)C4烯烃选择性 2.定量变量的描述性统计(Stata) 3.异方差检验 (1)散点图检验  (2)BP检验(怀特检验的特例) (3)怀特检验(使用范围广

    2024年02月09日
    浏览(26)
  • Python实现稳健线性回归模型(rlm算法)项目实战

    说明:这是一个机器学习实战项目(附带 数据+代码+文档+视频讲解 ),如需 数据+代码+文档+视频讲解 可以直接到文章最后获取。 稳健回归可以用在任何使用最小二乘回归的情况下。在拟合最小二乘回归时,我们可能会发现一些异常值或高杠杆数据点。已经确定这些数据点

    2024年01月22日
    浏览(40)
  • Python实现M-Estimators稳健线性回归模型(RLM算法)项目实战

    说明:这是一个机器学习实战项目(附带 数据+代码+文档+视频讲解 ),如需 数据+代码+文档+视频讲解 可以直接到文章最后获取。 M-Estimators 是稳健统计估计中的一个重要概念,它们在处理含有异常值、离群点或者影响点的数据时特别有用。在稳健线性回归(Robust Linear Regr

    2024年01月21日
    浏览(30)
  • Python多项式回归sklearn

    多项式回归是一种回归分析的方法,它通过使用多项式函数来拟合数据。与简单线性回归不同,多项式回归可以更灵活地适应数据的曲线特征,因为它可以包含多个特征的高次项。 多项式回归的一般形式为: 在实际应用中,可以通过调整多项式的次数来适应不同的数据特征

    2024年01月25日
    浏览(32)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包