python 线性回归 约束_Python:简述线性回归(机器学习)

本文介绍了机器学习的基本概念和步骤,并通过Python的Scikit-learn库详细讲解了线性回归的实现过程。首先,讨论了数据特征和标签的理解,接着展示了如何创建线性相关数据集并绘制散点图。然后,解释了协方差和相关系数的概念,用于衡量变量间的线性关系。最后,通过最小二乘法求得最佳拟合线,并用训练数据训练模型,评估模型精度,展示了线性回归在实际问题中的应用。
摘要由CSDN通过智能技术生成

本文包含以下内容:机器学习

简述线性回归

一、机器学习

1.定义:将普通计算机的算法,通过数据模型后输出结果,可以随着学习时长模型优化越来越好。

2.机器学习的步骤:提出问题——理解数据——数据清洗——构建模型——评估预测,其中最重要的就是机器学习算法(即模型),最后需要对模型进行评估预测。

3.理解数据特征及其标签:特征是数据的一些属性,标签是通过机器学习对数据的预测结果

二、简述线性回归

1.准备工作:安装sklearn(全名Scikit-learn)

Scikit-learn 是开源的 Python 库,通过统一的界面实现机器学习、预处理、交叉验证及可视化算法。

2.相关性分析

创建一个具有线性相关的数据集

from collections import OrderedDict

import pandas as pd

#数据集

examDict={

'学习时间':[0.50,0.75,1.00,1.25,1.50,1.75,1.75,2.00,2.25,

2.50,2.75,3.00,3.25,3.50,4.00,4.25,4.50,4.75,5.00,5.50],

'分数': [10, 22, 13, 43, 20, 22, 33, 50, 62,

48, 55, 75, 62, 73, 81, 76, 64, 82, 90, 93]

}

examOrderDict=OrderedDict(examDict)

examDf=pd.DataFrame(examOrderDict)

#查看数据集前5行

examDf.head()

以学习时间为X轴,分数为Y轴画出数据散点图

#提取特征和标签

#特征features

exam_X=examDf.loc[:,'学习时间']

#标签labes

exam_y=examDf.loc[:,'分数']

#绘制散点图

import matplotlib.pyplot as plt

#散点图

plt.scatter(exam_X, exam_y, color="b", label="exam data")

#添加图标标签

plt.xlabel("Hours")

plt.ylabel("Score")

#显示图像

plt.show()

可以看出分数会随着学习时间增加而变大,两者之间有线性相关关系三种线性相关性如何相关性程度:我们需要设计一个统计量,这个统计量应该具有以下两个功能

(1)协方差:cov(X,Y)=E[(X-E[X])(Y-E[Y])]其中E[]W为期望

缺点:数据的变化幅度会很大的影响协方差

(2)相关系数:是标准化后的协方差,消除了数据变化幅度影响,反映的是数据每单位变化的相似程度

具有以下两个功能:

相关系数的意义:

1)两个变量的相关性方向。r<0 为负线性相关,r>0 为正线性相关。相关系数r的三个极值:r=1,r=-1,r=0。

2)相关性大小:表示两个单位的相关性程度。r=0.6~1:强相关;r=0.3~0.6:中等程度相关;r=0~0.3:弱相关

相关系数的Python实现:pandas下的corr()函数

3.最佳拟合线:是指找到一条最佳的回归直线对观测值的拟合程度最好。

y = bx + a 其中b是回归系数,a是截距让散点尽可能的落到直线上

如何求得a和b?

最小二乘法就是使得误差平方和的值最小即:误差=实际值-预测值

4.线性回归的实现

(1)提取特征和标签

(2)建立训练数据和测试数据

绘制数据散点图

(3)用训练数据训练模型

通过搜索引擎发现,报错原因是训练数据只输入了一个特征,需要用array.reshape(-1, 1)来改变数组的形状。

补充知识:reshape行的参数是-1表示什么呢?例如reshape(-1,列数)如果行的参数是-1,就会根据所给的列数,自动按照原始数组的大小形成一个新的数组。例如reshape(-1,1)就是改变成1列的数组,这个数组的长度是根据原始数组的大小来自动形成的。原始数据是2行*3列,改变后为6行*1列

修改bug后:

step1:将训练数据导入sklearn的线性模型训练模型

step2:求出线性回归方程,其中intercept为截距、coef为回归系数

step3:绘图查看最佳拟合线和散点

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

评估模型精准度:决定系数R平方

代码实现

(5)把训练数据集(图中蓝色的点),和测试数据集(图中红色的点)放到一张图上来比较看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值