Python 散点图线性拟合_Python机器学习之线性回归和逻辑回归

e24570620375f33eee81eca0c6d91486.png
  • 机器学习基本知识
  • 机器学习的步骤
  • 相关性分析
  • 使用python进行线性回归分析
  • 逻辑回归与三种数据类型
  • 使用python实现逻辑回归
  • 线性回归和逻辑回归的区别
  • 机器学习算法和机器学习模型的区别
  • 总结

b6bb07573b4bb9319ef067e2bbba4f86.png

2b5e996946654d4d19cf010f116be76f.png
相关性分析

751948f708c3aa776101740355b75468.png
线性回归

8810c8de2e47e4779e3fb78a9275e433.png
逻辑回归

17db9718db2e1e1bf0329971a57bf47b.png
python逻辑回归

a8f5922b4bb8337ce3e95d51e19c58b0.png
数据类型

8bae8ab98b351e8e718e378907a846df.png
线性回归和逻辑回归区别

一、机器学习基本知识

1、什么是机器学习?

机器学习是通过数据训练,使用算法挖掘事物背后隐藏的规律和本质,得到模型。

“Machine Learning studies computer algorithms for learning to do stuff ”

2、人工智能,机器学习,深度学习之间的关系

通过下图可以了解:人工智能,机器学习,深度学习之间的关系。人工智能应用范围很广,机器学习是实现人工智能的一种技术,深度学习是机器学习中的一种算法。

218c39f57f25b30f23dad52a926f0c24.png

3、什么是特征,什么是标签?

(1)特征:数据的物理属性(输入),数据的这些特征可以代表数据的特点,比如橘子的颜色,尺寸等,比如音乐的强度,歌曲时长,节奏等

(2)标签:对数据的预测结果,输出的(结果或目的),比如橘子甜还是不甜。或者类别,喜欢或者不喜欢,代表数据的预测结果

4、机器学习的模型

机器学习算法(输入训练数据)——结果(输出)

5、Python的机器学习包:sklearn,使用conda 安装scikit-learn

正确学习路线:当我们碰到某个机器学习算法,比如线性回归算法,通过了解案例文档包,带着目的学习并使用这个包。

二、机器学习的步骤

1、提出问题

一切机器学习的目标都是为了解决我们生活和工作中遇到的问题。比如我们我们想知道喜欢听a类音乐的的用户,还喜欢什么什么类的音乐,明确的问题,为机器学习提供了目标。

2、理解数据

1)采集数据,根据研究问题采集相关数据

2)导入数据,分析的数据中可能在网络中,数据库中,excel中,比如导入python中。

3)查看数据集的信息:包括描述统计信息,从整体上理解信息。

3、数据清洗

数据清洗也叫数据预处理,对数据进行整容。从数据集中提出我们想要特征的数据的信息

4、构建模型

用训练模型构建模型,将提取的特质放入机器学习算法中来构建模型,机器学习最核心的是机器学习算法。

5、评估模型

对模型进行评估:通过测试数据评估模型的准确性,看看模型的预测效果如何,得出预测准确率。

总结:机器学习算法是从普通算法演化过来的,通过自动从提供的数据中学习,让程序变得更聪明。从数据中随机抽取一些样本,样本在机器学子中即训练数据,模型学习越多训练数据就会越准确,并且在作出错误的预测的时候可以自行修正。我们可以使用同样的机器学习算法去训练不同的模型,这就是机器学习。

三、相关性分析

1、用散点图展现2个数据间的关系(散点图可以看出是否相关)

学习时间是特征,分数是标签。

3c7f9f8b4b27e0eaa811a0ef8531982f.png

2、三种线性相关性

正线性相关:直线朝上

负线性相关:直线朝下

不是线性相关:随机,没有线性相关,有可能有其他相关关系。

1bac4ac38a123b13fc9416fe7d6c1b4e.png

3、如何衡量相关性程度——协方差、相关系数

1)协方差的功能
协方差的正负可以反应数据相关性方向

协方差表示两个变量相关性程度

2)协方差的缺点:

被变量的变化幅度影响

4、相关系数:

1)消除变量变化幅度对协方差的影响,标准后的协方差,反应两个标量每单位变化的相似程度。r也称之为皮尔逊积矩相关系数。标准差是衡量数据集波动大小的统计量。

计算公式:相关系数 r=X和Y的协方差/(X的标准差*Y的标准差)

2)相关系数的功能

1)范围是-1到1变化,三个极值-1,1,0,反映两个变量的相关性方向

2)值的大小表示两个变量每单位的相关性程度

5、相关系数分类:

0.6~~0.1强相关

0.3~~0.6中等程度相关

0~~0.3 弱相关

6、如何用python如何计算相关系数

相关系数矩阵

e623a3556843eda320ee0d10f16d2893.png

相关系数接近1 ,学习时间和分数之间有很强的正线性相关即高度相关。

四、用python进行 简单回归分析

1、什么是最佳拟合线

在散点图上画一条穿过这些点的直线,使直线尽量接近这些数据点,这条直线就是最佳拟合线。(作为零散分布的原始数据的代表,距离各点(数据)之和最小的直线)

2、回归方程 y=a+bx 一元直线方程

b是回归系数(斜率),a是截距,x是学习时间,y是考试分数。

最小二乘法可以使误差平方和最小。

3、如何用python求简单线性回归

建立训练数据和测试数据

824912219ab9aaa2acfc99a5b9e31632.png

画出训练数据和测试数据散点图

471d171df63d21c4fa15712b2896fb1f.png

4、使用机械学习包用python训练模型

输入:训练数据的标签(学习时间),特征(分数)

模型:线性回顾

输出:回归结果

1fd115f5346bf6ed2faaa5fa20e34d39.png

5、使用python画出最佳拟合线

c293519ee41dfc434fbf887f687d4c11.png

6、如何评估模型精确度?

a7828d03a718e5bf7d913d93851ae35e.png

1)在比较多个数据集的拟合情况时,误差平方和会因为数据集点的多少而影响 评价的结果。

2)决定系数R平方与训练点点的数量无关,不受数据点数量多少的影响。

功能:评估线性回顾模型的精确度,值的大小反应模型精准度。

7bffd9c6a784b8e4bafc4277fe819560.png

bf73ca6a5d223aaa4642ce94058b141c.png

7、如何用python求决定系数R平方(评估模型精准度)

通过score()函数对模型进行评估,得到决定系数

最后绘制散点图查看训练数据、测试数据与最佳拟合线之间的关系.

309582a1c5dfadbd7675551d95952927.png

五、逻辑回归和逻辑函数

1、机器学习

输入 训练数据(特征、标签)

机器学习算法

输出:分类结果(喜欢或不喜欢)

2、机器学习模型是如何起作用?

对分类问题,定义一个决策面,一侧预测的是喜欢,一侧是不喜欢的。

机器模型的准确率:正确率 模型预测的结果正确分类的数据数占所有数据的比例

3、什么是逻辑回归

逻辑回归是一个分类算法,用于二分分类的算法,指的是分类结果只有2个标签,在这种二分分类问题就可以使用逻辑回归算法。

为什么不使用线性回归?因为线性回归无法解决分类问题,线性回归预测的值是一个连续数据,分类中预测值是一个离散数据,比如0或者1。

4、逻辑函数

0a1b597dd55788ce3501e90b654e7b1d.png

逻辑函数是一个S型曲线,y的值是0-1之间变化,和垂直轴相交在0.5处。逻辑回归的逻辑函数参数z是一个线性回归函数。

逻辑函数的值:

逻辑函数是一个S型曲线,y的值是0-1之间变化,和垂直轴相交在0.5处。逻辑回归的逻辑函数参数z是一个线性回归函数。

将训练数据的特征和标签转化为一个决策面

决策面:如果逻辑函数得到的概率值y>=0.5 特征=1,如果y<0.5 特征=0

5、三种数据类型

1)、数值数据(定量数据)温度,金钱,又分为2种离散数据和连续数据。

离散数据只能包含特定的值,数据的取值是不连续的,比如抛硬币的数据就是离散数据,结果正面或者反面。连续数据是某个范围内 可以取任何数值,比如时间就是一个连续数据,可以进行无限分割,平滑的曲线。

2)、分类数据(定性数据)

对数据进行描述的信息,无法用数字进行量化,比如性别分为男性,女性。有时候也有数据表示,但是数据不具备数学意义,不可以进行运算。机器学习中通常用数值表示分类,因为算法中传入的值同样要求是数值型,用数值来对应分类,比如0、1,比如有序分类,比如1-5星。

3)、时间序列数据

长时间重复测量而获得的观测数据的集合,时间序列是在一段时间内定期收集的数据序列,例如股票每天的股价,可以说明时间的顺序。

六、使用python实现逻辑回归

1、建立数据集

daed24211be0b409779800bab2175e7d.png

2、提取数据集的特征和标签并绘制散点图

44af1bbd4165cc1f0bda9dd0a9e3e693.png

3、使用机器学习建立训练数据和测试数据 随机分配

7a3f0556f2b4ed433c99bbc901d35588.png

4、绘制训练和测试数据散点图

2d0cbd1b76dddeedd44ea4d81ce20589.png

5、训练模型 使用训练数据

85154225e44fc079f9f5735d69939241.png

6、计算模型的准确率 使用测试数据

dab076a1aac982d22522364232126682.png

7、使用数据验证模型准确率与预测概率值 回归方程

01ed8ffcf5b4cb664cafd96aed0b558c.png

七、线性回归和逻辑回归的区别

1、输出数据类型不同,逻辑回顾输出的是是离散数据(分类标签),线性回归是连续数据类型。比如通过学习时间预测考试分数。

2、想得到什么:逻辑回归得到一个决策面,用于对数据进行对数据分类,回

归算法得到最优拟合线,可以更好接近数据中的各个点。逻辑回归本质上是一个分类算法。

3、评估指标:在逻辑回归中我们使用正确率作为评估指标,即正确比率

线性回归中使用决定系数R平方,表示有多少百分比的y波动被回归线所描述。

八、机器学习算法和机器学习模型的区别

机器学习算法是处理某一类型问题的通用算法框架

机器学习模型=机器学习算法+训练数据 ,一个专门用于处理某一类问题的模型。比如使用线性回归模型或逻辑回归模型。

九、总结

1、机器学习基本知识:特征和标签

2、训练数据和测试数据

3、线性回归问题和分类问题:决定系数R平方和决策面、正确率

4、逻辑回归:用于二分分类问题,逻辑函数

5、如何用python实现线性回归和逻辑回归

6、三种数据类型

7、逻辑分类和线性回归的区别

8、机器学习算法和机器学习模型的区别

线性回归代码部分:

1)理解数据 原始数据集 有序字典排序

from 

2)画出数据集散点图:

#提取数据的特征和标签 学习时间是特征 标签是分数

3)计算相关系数

#相关系数:corr返回结果是一个数据框,存放的是相关系数矩阵

4)建立训练数据和测试数据

#特征features _X表示标签

5)训练模型(使用训练数据)

X_train

7)计算最佳拟合线方程

#截距

8) 画出最佳拟合线 训练数据

#绘散点图 并画出最佳拟合线

9)模型评估(使用测试数据)

#线性回归的scroe方法得到的是决定系数R平方

10)画出最后的最佳拟合线(训练数据和测试数据)

#导入绘图包

逻辑回归代码部分

1)导入数据集

#导入pandas和有序字典

2)提取特征和标签

#提取数据集对特征和标签

3)建立训练数据和测试数据

使用机器学习包 

4)绘制训练和测试数据散点图

#绘制训练数据和测试数据的散点图

5)训练模型

#使用训练数据 训练模型 需要先将数据转化为数组 多行一列的数组 

6)评估模型(使用训练数据评估模型准确率)

#评估模型:准确率 score方法计算出的是正确率 测试数据的特征和标签

7)决策面

#获取概率值第1个值是标签为0的概率值,第2个值是标签为1的概率值,两个值的和=1

8)预测数据

#预测数据:使用模型的predict方法可以进行预测。这里我们输入学生的特征学习时间4小时,模型返回结果标签是0,

9)计算预测概率值 回归方程

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Python中制作和进行线性回归,你可以使用matplotlib和sklearn库。以下是一种实现方法: 首先,导入所需的库: import numpy as np import matplotlib.pyplot as plt from sklearn.linear_model import LinearRegression 然后,准备数据并绘制: x = np.array([2, 5, 8, 8, 13, 15, 17, 19, 21, 24]) y = np.array([12, 31, 45, 52, 79, 85, 115, 119, 135, 145]) plt.scatter(x, y) plt.xlabel("battery") plt.ylabel("KM") plt.title("") plt.show() 接下来,建立线性回归模型并进行: regressor = LinearRegression() regressor.fit(np.reshape(x, (-1, 1)), np.reshape(y, (-1, 1))) 打印结果(参数): print("斜率:", regressor.coef_) print("截距:", regressor.intercept_) 最后,画出数据和直线的: plt.scatter(x, y) plt.plot(np.reshape(x, (-1, 1)), regressor.predict(np.reshape(x, (-1, 1)))) plt.xlabel("battery") plt.ylabel("KM") plt.title("结果") plt.show() 这样,你就可以在Python中绘制和进行线性回归了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [python 编程 线性回归结果](https://blog.csdn.net/qq_42262610/article/details/124290573)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [Python机器学习——线性回归案例(一)](https://blog.csdn.net/lucky_shi/article/details/105186572)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值