(四)线性回归法

python机器学习-线性回归(LinearRegression)算法 用python进行线性回归分析非常方便,如果看代码长度你会发现真的太简单。但是要灵活运用就需要很清楚的知道线性回归原理及应用场景。现在我来总结一下用python来做线性回归的思路及原理。 线性回归应用场景 线性回归介绍 机器学习中的线性回归 简单的线性回顾实例 线性回归应用场景 线性回归介绍 ——线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系... 阅读详情

笔记资源:(1条消息) 机器学习入门专栏笔记对应jupyternotebook以及封装的各种算法个人笔记,如有错误,感谢指出!-机器学习文档类资源-优快云文库

特点:

  • 解决回归问题

  • 思想简单,容易实现

  • 许多强大的非线性模型的基础

  • 结果具有很好的可解释性

  • 蕴含机器学习中的很多重要思想

概括:

寻找一条直线,最大程度的拟合样本特征和样本输出标记之间的关系

分类问题与回归问题:

上图的分类问题横纵坐标分别表示一个特征,回归问题只有横坐标表示一个特征,如果表示俩个特征就变成了三维模型。

样本特征只有一个的回归称为简单线性回归。多个叫多元线性回归。

在这个模型当中,我们并没有运用神经网络的方式训练参数a和b,而是将这俩个参数以数学的形式表示出来,再输入程序中,直接对数据进行处理,进而得出我们的线性回归模型。因此要区别于深度学习的过程。此模型的建立过程并没有使用迭代!

一,简单线性回归

其中排除第一个是因为有正负号会抵消

排除第二个是因为绝对值并不是一个处处可导的函数,造成后续操作困难

因此选用平方的方式。

监督学习,x(i), y(i)是已知数

类似上边这个函数称为损失函数(loss function)或效用函数(utilityfunction)。

机器学习首先通过分析问题来确定问题的损失函数或效用安徽念书,通过最优化损失函数或者效用函数,来获得机器学习的模型

损失函数尽可能小,效用函数尽可能大

几乎所有的参数学习算法都是这样的套路,比如线性回归,SVM,多项式回归,神经网络,逻辑回归等,区别是模型不同,建立的目标函数不同,优化的方式也不同,因此产生了一门学科:最优化原理,包含凸优化

简单线性回归典型的最小二乘法问题:最小化误差的平方

参数a和b可以表示为:

二,简单线性回归的实现 Simple Linear Regression

简单实现与测试:

简单归一化算法的封装:

三,衡量线性回归算法的指标:MSE,RMSE和MAE

其中,MSE的量纲与y不同,所以可以使用RMSE来统一量纲,这样可以很好的解释这个误差代表什么,即代表与样本中的y数据偏离的具体数值。

RMSE会放大预测结果与真实结果之间的差距,尤其是差距较大时候。而MAE并没有方法这种差异。因为没有平方的差距。

但是当我们需要训练参数的时候,我们可以利用减少RMSE来训练模型。

波士顿房产数据

import numpy as np

importmatplotlib.pyplot as plt

from sklearn importdatasets

boston =datasets.load_boston()

boston.keys() #查看数据库的关键字

print(boston.DESCR) #查看数据库的属性,包括样本数量和特征

boston.feature_names #查看特征名称,按顺序列出

x = boston.data[:,5] #只使用房间数量这个特征,特征对应列

y = boston.target

plt.scatter(x, y)

plt.show()

有些数据超过了问卷限度所以最大值是50没有意义的数据,要过滤

x = x[y < 50.0]

y = y[y < 50.0]

plt.scatter(x_train,y_train) #训练样本点

plt.scatter(x_test,y_test, color="c") #测试样本点

plt.plot(x_train,reg.predict(x_train), color='r') #训练后的预测数据线

plt.show()

sklearn中的MSE和MAE

from sklearn.metricsimport mean_squared_error

from sklearn.metricsimport mean_absolute_error

mean_squared_error(y_test,y_predict)

mean_absolute_error(y_test,y_predict)

四,衡量线性回归最好的指标:R Squared

分类问题的准确度:1最好,0最差

对于预测问题需要有更好的标准

比如我们用这个线性回归模型分别预测波士顿房价和学生成绩,那么这是俩个不同量级的数据,对应MSE这些指标也都是量级上的差异,我们就没办法判断模型更适合预测哪种类型的数据。R Squared可以解决这一问题

分子是使用模型预测产生的错误,分母表示使用y等于y(mean)预测产生的错误

scikit-learn中的 r2_score

from sklearn.metricsimport r2_score

r2_score(y_test,y_predict)

五,多元线性回归

多元线性回归的正规方程解(normal equation)

问题:时间复杂度高:O(n^3)->O(n^2.4)(简单优化后的时间复杂度还是很高)

优点:不需要对数据做归一化处理(对比KNN需要做预处理统一量纲)

多元线性回归程序封装:

scikit-learn解决回归问题

fromsklearn.linear_model import LinearRegression

lin_reg =LinearRegression()

lin_reg.fit(X_train,y_train)

lin_reg.coef_ #查看系数,系数正负表示±相关,具有一定的可解释性

lin_reg.intercept_ #查看截距

lin_reg.score(X_test,y_test)

KNN Regressor 利用KNN解决回归问题

调用的包不同

from sklearn.neighborsimport KNeighborsRegressor

knn_reg =KNeighborsRegressor()

knn_reg.fit(X_train_standard,y_train)

knn_reg.score(X_test_standard,y_test)

网络搜索:

fromsklearn.model_selection import GridSearchCV

param_grid = [

{

"weights":["uniform"],

"n_neighbors": [i for i inrange(1, 11)]

},

{

"weights":["distance"],

"n_neighbors": [i for i inrange(1, 11)],

"p": [i for i in range(1,6)]

}

]

knn_reg =KNeighborsRegressor()

grid_search =GridSearchCV(knn_reg, param_grid, n_jobs=-1, verbose=1)

grid_search.fit(X_train_standard,y_train)

grid_search.best_params_

grid_search.best_score_

比之前线性回归的结果差,原因是采取不同的评分方式,网络搜索CV采取交叉验证

grid_search.best_estimator_.score(X_test_standard,y_test)

当然也不一定比线性回归好,所以还不能仅仅通过score判断俩种算法好坏

六,更多线性回归的讨论

线性回归算法:

  • 典型的参数学习

对比KNN:非参数学习

  • 只能解决回归问题

  • 优点:具有一定的可解释性

虽然很多分类方法中,线性回归是基础,比如逻辑回归

对比KNN:既可以解决分类问题,又可以解决预测问题

  • 对数据有假设:假设数据是线性相关,但不一定只能解决线性问题

对比KNN没有假设

用人话讲明白线性回归LinearRegression 目录 什么是回归 一元线性回归 损失函数 最小二乘估计 小结 1. 什么是回归 当我们学习一门新课程、接触一个新专业时,总会对该领域的专有名词感到困惑,甚至看完解释仍难以理解其含义。在我们一起学习machine learning的过程中,我会尽量对相关名词用“人话”做一遍解释,以减少学习的“痛苦感”。 譬如今天要学的线性“回归”,这个回归(regression)和我们平时说的“回归祖国”的回... 阅读详情

相关推荐

python-使用LinearRegression进行简单线性拟合(线性回归)

一元线性拟合 现有两组数据,求y=a*x+c的系数 X =[12.46, 0.25, 5.22, 11.3, 6.81, 4.59, 0.66, 14.53, 15.49, 14.43, 2.19, 1.35, 10.02, 12.93, 5.93, 2.92, 12.81, 4.88, 13.11, 5.8] Y =[29.01, 4.7, 22.33, 24.99, 18.85, 14.89, 10.58, 36.84, 42.36, 39.73, 11.92, 7.45, 22.

lanhezhong的博客 3万+

机器学习实验------线性回归方法

机器学习实验------线性回归方法

m0_74459049的博客 2265

【机器学习小论文】sklearn线性回归LinearRegression代码及调参

一、前言 最近在写小论文,就是硕士毕业论文的部分成果,需要用到线性回归,所以就把相关代码贴上,便于日后写论文时总结,也顺便给后来者提供思路。小论文的思路主要是,先用线性回归,再用随机森林,最后再用xgboost,来预测房价,最后得出结论。所以,这个会陆续的贴出相关代码。至于数据清洗那一块,暂时不贴上了,主要原因就是数据清洗不容易,并且每个人的清洗方法也不一样,所以主要还是看思路。 二、算法简介 2.1 什么是回归分析 回归分析是一种预测性的建模技术,它研究的是因变量(目标)和自变量(预测器)之间的关

xiaohutong1991的专栏 7107

正规方程实现线性回归

由 X * W = y 可得 W = ( X’ X)-1 X’ y 这便是正规方程 import numpy as np import pandas as pd import os def regularization(X,y): temp1 = np.dot( X.transpose() , X ) temp2 = np.linalg.pinv(temp1) temp3 = np.dot( temp2,X.transpose() ) W = ...

hnlg311709000526的博客 754

线性回归笔记spss和LinearRegression

H0,H1假设概念理解: ·常规理解: 在假设H0实际上为真时,我们可能犯拒绝H0的错误,称这类“弃真”的错误为第一类错误;当H0实际上不真时,我们也有可能接受H0,称这类错误为第二类错误。 一般来说,我们总是控制第一类错误,使犯第一类错误的概率尽可能小。称为“显著性检验” 这里的显著性是指只有当H0成立时,显著不合理的状态才能拒绝H0,否则只能“接受”H0,这里的接受是指不拒绝H0,原因是由于没有获得充分的理由拒绝H0而“勉强”接受。因此,使用显著性检验时,当检验结果为拒绝H0时,结论比较可靠,更具有说服

weixin_45181646的博客 2010

线性回归LinearRegression

对视频中线性回归算法的相关内容进行总结与记录 文章目录一、理论基础二、实例2.1 一元线性回归2.1.1 推导过程2.1.2 代码实现(基于numpy)2.1.3 代码实现(基于sklearn)2.2 多元线性回归2.2.1 代码实现(基于numpy)2.2.2 代码实现(基于sklearn) 一、理论基础 回归 通常是指利用某个函数,尽可能把数据样本点“串”在一起,用于描述输入变量和输出变量间的变化关系 线性回归 特点:用来把数据“串”起来的那个函数是线性的 (一元线性回归(一个自变量) &a.

邱邱邱的博客 1066

直线回归数据 离群值_离群值如何在线性回归中构成问题。

直线回归数据 离群值An in-depth look at How Outliers can cause a poor model fit and How to detect them 深入研究离群值如何导致较差的模型拟合以及如何检测到它们 Linear Regression is without a doubt one of the most widely used machine algor...

weixin_26752075的博客 2412

线性回归及其Python实现(最大似然法)

线性回归及其Python实现(最大似然法)标签: Python 机器学习本节内容总结于博主在牛客网机器学习特训营的笔记 参考资料:《机器学习实战》目录1.什么是线性回归 2.回归系数公式推导 3.线性回归Python实现 4.线性回归的应用 5.总结 6.附录1.什么是线性回归(Linear Regression) 维基百科:线性回归 在统计学中,线性回归是利用称为线性回归方程

moverzp的博客 1万+

机器学习中的数学(2)-线性回归,偏差、方差权衡

版权声明: 本文由LeftNotEasy所有,发布于http://leftnoteasy.cnblogs.com。如果转载,请注明出处,在未经作者同意下将本文用于商业用途,将追究其法律责任。如果有问题,请联系作者 wheeleast@gmail.com 前言: 距离上次发文章,也快有半个月的时间了,这半个月的时间里又在学习机器学习的道路上摸索着前进,积累了一点心得,以后会慢慢...

weixin_34007020的博客 425

水文分析与计算——年均流量趋势检验(Mann-Kendall法、线性回归法)

//年均流量趋势检验.h //年均流量Mann-Kendall法趋势分析 void MannKendall() { using namespace std; int S = 0;//检验的统计变量 double VarS,//统计变量S的方差 Z ;//标准正态统计变量方差 S = 0; for(int i = 0; i < Y; i++) for(int j = i + 1;

Do What U Like~ 1万+

schrodinger 薛定谔

链接: https://pan.baidu.com/s/1Duh4GsoytIklvZp7TdHpWg 密码: wmr1 Linux系统版 进入 Schrodinger_Suites_2021-2_Linux-x86_64 sudo ./INSTALL 中间按默认的来即可,也可以自己调整安装目录。安装目录一定要记住。 安装完,把patcher 拷贝到安装目录 sudo ./patcher 点击Patch即可。 启动程序,进入安装目录 ./maestro ...

周迪新的博客 1万+

Python3入门机器学习(五)-线性回归算法

1.线性回归算法简介 线性回归算法以一个坐标系里一个维度为结果,其他维度为特征(如二维平面坐标系中横轴为特征,纵轴为结果),无数的训练集放在坐标系中,发现他们是围绕着一条执行分布。线性回归算法的期望,就是寻找一条直线,最大程度的“拟合”样本特征和样本输出标记的关系 样本特征只有一个的线性回归问题,为简单线性回归,如房屋价格-房屋面积 将横坐标作为x轴,纵坐标作为y轴,每一个点为(X(i) ,y...

weixin_33924770的博客 631

【运筹学】什么是基变量?对于线性规划问题中“基”概念的理解(3月3日学习笔记)

在学习《线性规划与目标规划》的过程中,课程的主讲老师郭韧给出了对于基概念的定义如下图 图片来源:运筹学(中国大学mooc网) 由此我产生了几个疑惑:1.如何理解B是线性规划问题的一个基?2.为什么说最多有CnmC_n^mCnm​个基呢?     1.如何理解B是线性规划问题的一个基?1.如何理解B是线性规划问题的一个基?1.如何理解B是线性规划问题的一个基? 在回答第一个...

纸羊同学的博客 3万+

线性回归(四)—— 标准方程法

标准方程法 预备知识 下文均使用大写字母表示矩阵,小写字母带下标表示变量, 小写字母无下标表示向量 一个标量多元函数对一个向量的导数是这样定义的 我们假设这个函数是f(x)=w0x0+w1x1+…+wnxnf(x)=w_0x_0+w_1x_1+…+w_nx_nf(x)=w0​x0​+w1​x1​+…+wn​xn​ 那么 ∂f(x)∂x=[∂f(x)∂x0,∂f(x)∂x1,∂f(x)∂x2...

Paul_1i的博客 1823

嵌入式开发中SAR与ΔΣ ADC选型指南:从原理到实战应用

模数转换器是嵌入式系统连接模拟世界与数字世界的核心接口,其选型直接决定了数据采集的精度与可靠性。SAR ADC采用逐次逼近原理,如同天平称重,通过二进制搜索快速完成转换,具备高速、多通道轮询的优势,适合电机控制、通信等动态场景。ΔΣ ADC则基于过采样与噪声整形技术,以速度换取精度,通过数字滤波输出高分辨率结果,在传感器测量、音频采集等静态高精度领域表现卓越。理解这两种架构的工作原理差异,是进行嵌入式ADC选型的基础。在实际工程中,需结合信号带宽、多通道切换需求、功耗约束及PCB布局能力进行综合权衡。例如,

weixin_30140399的博客 243

RuoYi(分离版) 使用代码生成器添加子模块(idea版)

文章目录准备一、使用代码生成器1.数据库2.导入表并生成代码二、导入代码文件1.新建一个模块2.导入zip代码文件3.模块环境配置添加菜单和访问地址总结 准备 前提要把系统启动起来,部分教程可以参考这边文章若依框架RuoYi前后端分离项目导入IDEA及运行启动 但是完全参考这篇文章还是不能把项目启动起来,因为这篇文章没有说明数据库。 我是用的是本地数据库,采用xampp+Navicat的组合来部署和访问数据库。打开Navicat,连接并创建数据库ry-vue并导入数据脚本ry_20191008.sql,q

dream_coke的博客 1万+

《机器学习》学习笔记(四)——用Python代码实现单变量线性回归、多变量线性回归;数据评估之交叉验证法、留出法、自助法

机器学习(Machine Learning)是一门多学科交叉专业,涵盖概率论知识,统计学知识以及复杂算法知识,使用计算机作为工具并致力于真实实时的模拟人类学习方式, 并将现有内容进行知识结构划分来有效提高学习效率。本专栏将以学习笔记形式对《机器学习》的重点基础知识进行总结整理,欢迎大家一起学习交流!专栏链接:《机器学习》学习笔记 一、单变量线性回归 提出问题 假设某披萨店的披萨价格和披萨...

闭关修炼——暂退 5105

CloudCompare里那个CSF地面滤波插件,到底怎么用?手把手教你分离点云里的地面

本文详细介绍了如何在CloudCompare中使用CSF地面滤波插件分离点云中的地面数据。通过解析布料模拟滤波算法的核心参数,如布料刚度和网格分辨率,并提供不同地形(城市、丘陵、山地)的适配策略,帮助用户高效处理复杂点云数据。文章还包含实战案例和优化技巧,确保滤波结果的精度和可靠性。

weixin_42548708的博客 220

基于交通四阶段法的某地铁线路模拟规划与设计

本文为一个课程设计背景的交通规划设计项目。旨在利用一些机器学习算法+特定交通模型进行规划。

weixin_64279989的博客 3297

【数据集4】GSWP3数据集详解

简介GSWP3数据集

WW、forever的博客 1366

机器学习算法原理:详细介绍各种机器学习算法的原理、优缺点和适用场景

现在,我们将进入到机器学习的核心部分——算法原理。在本篇文章中,我们将详细探讨各种机器学习算法的原理、优缺点和适用场景。

a871923942的博客 2965

4.机器学习-十大算法之一线性回归算法(LinearRegression)案例讲解

线性回归是一种用于预测数值型数据的统计学分析方法,它通过建立一个或多个自变量与因变量之间的线性关系来进行预测。线性回归的基本思想是通过拟合最佳直线(也就是线性方程),来描述自变量和因变量之间的关系。这条直线被称为回归线,其目的是使得所有数据点到这条直线的垂直距离(即残差)的平方和最小。这个最小化过程通常称为最小二乘法。以山河作礼。🎖️🎖️:Python领域新星创作者,优快云实力新星认证,优快云内容合伙人,阿里云社区专家博主,新星计划导师,在职数据分析师。💕💕悲索之人烈焰加身,堕落者不可饶恕。

weixin_50804299的博客 1万+

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

线性回归:LinearRegression模型

LinearRegression` 是一种简单而有效的方法,适用于线性关系的建模。`scikit-learn` 提供了易于使用的 API,非常适合于快速构建和评估线性回归模型。无论是初学者还是专业人士,都可以依赖这个工具来处理回归问题。

Wei_sx的博客 1261

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

线性回归(LinearRegression)实现房价预测

线性回归主要运用于来连续型特征样本的预测,本次预测数据主要以波士顿房价数据为列训练并评估模型。本次使用基本的最小二乘法和sklearn模块分别用于预测房价。 1、首先使用线性回归算法最小二乘法实现预测 导入需要的python库 import numpy as np import pandas as pd import pylab 建立computer_error函数,构造误差函数 ∑_(...

飛鹰 1万+

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

python LinearRegression线性回归

两个变量之间存在一次方函数关系,就称它们之间存在线性关系。更通俗一点讲,如果把这两个变量分别作为点的横坐标与纵坐标,其图象是平面上的一条直线,则这两个变量之间的关系就是线性关系。

zj88189748的专栏 2155
上一篇: (三)最基础的分类算法-k邻近算法 KNN
下一篇: (五)梯度下降法
Allen’s hub
博客等级 码龄8年 5粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值