机器学习(1)——线性回归

数理统计——线性回归与python实现 文章目录前言一、重要概念1.模型2.回归分析3.简单线性回归4.拟合5.多元线性回归6.损失函数7.参数求解二、一元线性回归模型代码实现1.简单线性回归程序三、回归模型评估1.MSE2.RMSE3.MAE4.R方四、多元线性回归模型代码实现五、作业 前言 本节知识点:学习线性回归模型,实现连续变量类型的预测。 1、掌握线性回归的原理; 2、能够实用线性回归进行预测; 3、能够对线性回归模型进行预测; 一、重要概念 1.模型 2.回归分析 3.简单线性回归 4.拟合 5.多元线性回归 6.损失函数 用来衡量误 阅读详情

一、线性回归模型公式

  1. 无正则的线性回归模型
    在这里插入图片描述
  2. L1正则的Lasso模型
    在这里插入图片描述
  3. L2正则的Ridge Regression(岭回归)模型
    在这里插入图片描述

二、 评价准则

  1. 开方均方误差(rooted mean squared error,RMSE)
    在这里插入图片描述
  2. 平均绝对误差(mean absolute error,MAE)
    在这里插入图片描述
  3. R2 score
    在这里插入图片描述

三、sklearn实现

1. 线性回归模型

  • 无正则的线性回归模型
from sklearn.linear_model import LinearRegression

# Linear Regression
# 1. 生成学习器实例
lr = LinearRegression()

#2. 在训练集上训练学习器
lr.fit(X_train, y_train)

#3.用训练好的学习器对训练集/测试集进行预测
y_train_pred = lr.predict(X_train)
y_test_pred = lr.predict(X_test)

# RMSE(开方均方误差)
rmse_train = np.sqrt(mean_squared_error(y_train,y_train_pred))
rmse_test = np.sqrt(mean_squared_error(y_test,y_test_pred))
print("RMSE on Training set :", rmse_train)
print("RMSE on Test set :", rmse_test)

# R2 score
r2_score_train = r2_score(y_train,y_train_pred)
r2_score_test = r2_score(y_test,y_test_pred)
print("r2_score on Training set :", r2_score_train)
print("r2_score on Test set :", r2_score_test)
  • L1正则的Lasso模型
from sklearn.linear_model import LassoCV
from sklearn.metrics import r2_score  #评价回归预测模型的性能

#设置超参数搜索范围
#alphas = [ 0.01, 0.1, 1, 10,100]

#生成一个LassoCV实例
#lasso = LassoCV(alphas=alphas)  
lasso = LassoCV()  

#训练(内含CV)
lasso.fit(X_train, y_train) 
 
#测试
y_test_pred_lasso = lasso.predict(X_test)
y_train_pred_lasso = lasso.predict(X_train)


#评估,使用r2_score评价模型在测试集和训练集上的性能
print ('The r2 score of LassoCV on test is', r2_score(y_test, y_test_pred_lasso))
print ('The r2 score of LassoCV on train is', r2_score(y_train, y_train_pred_lasso))
  • L2正则的Ridge Regression(岭回归)模型
from sklearn.linear_model import  RidgeCV
from sklearn.metrics import r2_score  #评价回归预测模型的性能

#设置超参数(正则参数)范围
alphas = [ 0.01, 0.1, 1, 10,100]
#n_alphas = 20
#alphas = np.logspace(-5,2,n_alphas)

#生成一个RidgeCV实例
ridge = RidgeCV(alphas=alphas, store_cv_values=True)  

#模型训练
ridge.fit(X_train, y_train)    

#预测
y_test_pred_ridge = ridge.predict(X_test)
y_train_pred_ridge = ridge.predict(X_train)

#评估,使用r2_score评价模型在测试集和训练集上的性能
print ('The r2 score of RidgeCV on test is', r2_score(y_test, y_test_pred_ridge))
print ('The r2 score of RidgeCV on train is', r2_score(y_train, y_train_pred_ridge))

2. 模型评估

  • RMSE(开方均方误差)
from sklearn.metrics import mean_squared_error

rmse_train = np.sqrt(mean_squared_error(y_train,y_train_pred))
rmse_test = np.sqrt(mean_squared_error(y_test,y_test_pred))
print("RMSE on Training set :", rmse_train)
print("RMSE on Test set :", rmse_test)
  • R2 score
r2_score_train = r2_score(y_train,y_train_pred)
r2_score_test = r2_score(y_test,y_test_pred)
print("r2_score on Training set :", r2_score_train)
print("r2_score on Test set :", r2_score_test)

3. 超参数调优

  • LassoCV
#设置超参数搜索范围
#alphas = [ 0.01, 0.1, 1, 10,100]

#生成一个LassoCV实例
#lasso = LassoCV(alphas=alphas)  
lasso = LassoCV()  

#2.模型训练
lasso.fit(X_train, y_train)
alpha = lasso.alpha_
print("Best alpha :" , alpha)
  • RidgeCV
RidgeCV缺省的score是mean squared errors 
#1. 设置超参数搜索范围,生成学习器实例
#RidgeCV(alphas=(0.1, 1.0, 10.0), fit_intercept=True, normalize=False, scoring=None, cv=None, gcv_mode=None, store_cv_values=False)
alphas = [0.01, 0.1, 1, 10, 100, 1000]
ridge = RidgeCV(alphas = alphas, store_cv_values=True)

#2. 用训练数据度模型进行训练
#RidgeCV采用的是广义交叉验证(Generalized Cross-Validation),留一交叉验证(N-折交叉验证)的一种有效实现方式
ridge.fit(X_train, y_train)

#通过交叉验证得到的最佳超参数alpha
alpha = ridge.alpha_
print("Best alpha :", alpha)
Spark-ML 线性回归 LinearRegression (1) Spark-ML 线性回归 LinearRegression参数详述: 阅读详情

相关推荐

机器学习(Machine Learning)心得体会(1)线性回归

本文是观看斯坦福大学吴恩达老师的机器学习视频后的一些心得体会和总结,以及作业题中的关键代码,大家可以共同讨论进步。 机器学习,我自己的理解就是让计算机去模拟人类的行为方式,也就是人工智能的一个雏形?!

zongzongzong2015的博客 5616

监督学习之线性回归原理分析与代码实现

线性回归原理: 机器学习中,回归就是拟合。利用回归方程(函数),对特征值(feature)和标签值(label/target)之间的关系进行建模。 回归方程: 特征:影响结果的因素,也就是x。 标签:最终的结果,也就是y。 举个栗子: 公司中每个人的薪资水平是不一样的,影响薪资的因素(特征)有:资历、学历、岗位、技能等等,薪资就是标签。假如我们把特征的具体值都数字化,我们根据已有员工的特征和标签,生成模型。就能预测新入职员工的薪资水平。 误差分析: 预测值和真实值之间一般会存在一定的误差,那么如何计算这

FlatTiger的博客 303

网络安全隔离技术解析:单向网闸与双向网闸的核心差异与应用场景

本文深入解析网络安全隔离技术中的单向网闸与双向网闸,详细比较两者的核心差异与应用场景。单向网闸通过物理隔离确保数据单向流动,适用于金融交易等高风险场景;双向网闸则支持严格安检的双向数据交互,常见于医疗、政务等领域。文章还提供了选型建议和技术发展趋势,帮助读者根据安全需求和业务场景选择最适合的网闸解决方案。

weixin_29323365的博客 527

机器学习—线性回归模型(Linear regression)和逻辑回归模型(Logistics regression)

线性回归算法是基于连续变量预测特定结果的监督学习算法;Logistic回归专门用来预测离散值。 1. 线性回归模型(Linear regression) 线性回归模型是属于监督学习中的回归模型,也算是我学习过的模型中最简单的一个模型,其主要目的就是为了通过训练得到一个函数表达式来近似拟合平面内的所有离散的数据点,从而在新的数据输入进来时,能够给出预测值。 1.1假设定义 其中表示最终...

qq_35556254的博客 2102

tesseract-ocr的字库学习步骤(训练自己的文库),关于ocr的对图片的解析,包括tesseract的安装(史上最全)

tesseract-ocr的字库学习步骤(训练自己的文库) 简介:在网上看了很多案列。都不是很完整。然后自己用了一天时间进行整理,第一次写文章,希望对大家有帮助。 一、安装tesseract 下载地址https://github.com/UB-Mannheim/tesseract/wiki 1.点击下面下载的这个进行运行(安装的时候有点慢) 2.点击next 3.I accept the terms of the License Agreement前的复选框打勾,点击Next。 4.Install f

HAC12的博客 2229

西工大noj100题python2024第三季21-30

【代码】西工大noj100题python2024第三季21-30。

weixin_70523540的博客 1577

机器学习经典算法---线性回归(Linear Regression)算法

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Ma...

lcx_nanmu的博客 2万+

线性回归基础学习

下面我们有两种对最小二乘法的几何解释: 第一种解释相当于是把总误差平均分散在了每一个样本上面;而第二种几何解释是把误差分散在了p个维度上面。 线性回归正则化: 例如:假如只有一个样本点,该样本点又有很高的维次,那么就可以有无数种拟合的方式,也就很容易出现过拟合的情况。 解决这种过拟合的办法有以下几种: 1.加数据(加样本点) 2.特征选择/特征提取(选择样本点的某些属性,剔除一些无关的特征属性,从而达到一个降维的目的) 3.正则化 ...

m0_63831189的博客 1124

从URDF到Gazebo:一个完整的ROS2机械臂仿真与运动控制实战指南

本文提供了一个完整的ROS2机械臂仿真与运动控制实战指南。详细讲解了从URDF建模、ROS2 Control配置到Gazebo物理仿真的全流程,重点介绍了如何利用MoveIt2快速搭建高级运动规划系统,并解决实际部署中的常见问题,帮助开发者高效、安全地进行机器人算法验证与开发。

red88的博客 574

如何使用tinyalas接口从usb录音的同时从扬声器播放

3、 以上步骤确认完后,就可以修改tinyhostless.c程序,tinyhostless的本质就是边pcm_read(),边pcm_write();但原本tinyhostless只支持对同一声卡进行操作,所有需要修改其代码,改成录音和播放可支持不同声卡,如果是模拟声卡,有回环测试,可以实现边录边播放,但涉及USB声卡时,就没有现场的类似功能,有时候客户因为硬件特殊性,会有从USB录音的同时从扬声器播放出来的需求,本文简要描述如何使用tinyalsa接口实现该需求;

sdrgtywretyeruet的专栏 971

20241230 机器学习ML -(1)线性回归(scikitlearn)

线性代数理论及证明过程请参考教材。公式推理可以参考AI。

weixin_46449024的博客 1426

【RTD】二分法查找和分段线性插值算法在RTD中应用

二分法查找和分段线性插值算法在RTD中的典型应用。

只要思想不滑坡,想法总比问题多。 2371

机器学习(1)——线性回归(Linear Regression)

1. Introduction of Machine Learning Step1 : Define a set of function Step2 : Goodness of function Step3 : Pick the best function 2. Linear Regression 2.1 简介 线性回归是利用数理统计中回归分析,来确定两种或两种以上变量...

Mr_ZZTC的博客 807

【华为OD机试真题 2025B卷】662、静态扫描 | 机试真题+思路参考+代码解析(C++、Java、Py)(B卷复用)

【华为OD机试真题 2025B卷】662、静态扫描 | 机试真题+思路参考+代码解析(C++、Java、Py)(B卷复用) 华为od机试,华为od机试真题,华为od机试E卷,华为odE卷,华为od机试真题E卷,华为OD,华为OD机试,华为OD机试真题,华为od机考,华为od机试D卷,华为od机试真题D卷,华为od手撕代码,华为od,华为od机试C卷,华为od e卷,华为2024e卷,od机试,2024E卷,华为OD机试E卷,什么是华为od,华为od介绍,全面了解华为od,2024华为od,如何备战华为od

KJ.JK 5397

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

机器学习笔记(1)——线性回归LinearRegression(单变量线性回归)

线性回归LinearRegression 单变量线性回归实战:根据城市人口预测某行业利润 1.需要导入的python包: import pandas as pd import numpy as np import matplotlib.pyplot as plt from sklearn.linear_model import LinearRegression #线性回归,安装

icepoint的博客 3680

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

吴恩达机器学习编程练习ex1:线性回归Linear Regression

这篇文章是基于bilibili的吴恩达机器学习经典名课【中英字幕】课程链接所写的第二周的编程练习,这个练习可以从

weixin_44389971的博客 2568

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

机器学习代码基础——ML1 使用正规方程的线性回归

输出线性回归模型的系数。函数返回类型是列表类型,第一个是权重,第二个是偏置。函数输入是一个矩阵 X(特征)和向量 y(目标),返回线性回归模型的系数。编写一个使用正规方程执行线性回归的 Python 函数。第1行输入矩阵 X,第2行输入向量 y。最后的答案四舍五入保留小数点后四位。使用矩阵表达形式转化损失函数。将训练数据表示成矩阵形式。

weixin_47692652的博客 1225

第L2周:机器学习|线性回归模型 LinearRegression:1. 简单线性回归模型

回归之所以能预测,是因为它通过大量的花瓣长度与宽度数据,“弄懂了”花瓣长度与宽度之间的线性关系,在这个基础之上就可以通过花瓣长度预测花瓣宽度了。通过鸢尾花的花瓣长度与宽度的线性关系来预测花瓣宽度,通过杯子里水的体积就可以知道(预测)水的重量。但是也并非所有“越…”都是线性的,比如“弹簧的弹力与位移的关系”。回归的目的是为了预测,比如在通过鸢尾花花瓣长度预测花瓣宽度。○①若不填或者填0,每次生成的数据都是随机,可能不一样。●“汉堡”买的越多,花的“钱”就越多。●杯子里的“水”越多,“重量”就越大。

lihuhelihu的博客 1039

机器学习练习 1 --- 线性回归Linear Regression

该任务的数据集是人口与利益,目标是想要通过线性回归了解人口作为自变量,利益作为因变量之间的单元关系。

ExcaliburUlimited的博客 888

【机器学习系列1】线性回归LinearRegression——数学推导和纯Numpy实现

目录数学推导notationsobjective functionpartial derivativematrix version手动实现线性回归训练器 train思路代码实现预测器 predict思路代码评价器 evaluation思路代码数据处理代码与sklearn比较完整代码 这一系列是学习公众号“机器学习实验室”的笔记,跟着大佬的脚步一个个实现。 数学推导 notations X={xi⃗...

occamo的博客 1022

机器学习1 线性回归(Linear Regression)

立个flag,本人从今天正式开始学习机器学习(Machine Learning) 选取的第一门课还是吴恩达(Andrew Ng)的斯坦福大学公开课 :机器学习课程,我打算从作业入手,结合课程进行学习,预计一共分为8篇,这是第一篇 单变量线性回归 给定是数据集包括97个数组,其中第一个表示人口数,第二个表示盈利数,我们希望得到两者之间的线性表达关系。下图是将点在坐标轴中绘制出 ![点坐标](...

拉风小宇的博客 1003

机器学习1 线性回归 Linear Regression

机器学习1 线性回归 Linear Regression

syf_2016的博客 575

[笔记]机器学习之线性回归、L1回归、L2回归

  线性回归是机器学习领域里研究最多的算法,至今已有200年研究历史了。 线性回归   线性回归可用一条线表示输入值X和输出值Y之间的关系,这条线的斜率的值,也叫系数。最简单的线性回归可表示为y=ax+b。机器学习的目的就是给定数据样本(x,y),利用学习得到a,b。得到a和b后,就可以给定已知的x求出未知的y,这就是机器学习的目的和意思。   进而我们可以推广到多个变量的情况,求得对于...

kestiny的专栏 8413

【机器学习-练习 1 】- 线性回归

在本练习中,您将实现线性回归,并观察它在数据上的运行情况。

wangshangshang09的博客 800

斯坦福CS229机器学习课程笔记 Part1:线性回归 Linear Regression

机器学习三要素 机器学习的三要素为:模型、策略、算法。 模型:就是所要学习的条件概率分布或决策函数。线性回归模型 策略:按照什么样的准则学习或选择最优的模型。最小化均方误差,即所谓的 least-squares(在spss里线性回归对应的模块就叫OLS即Ordinary Least Squares): 算法:基于训练数据集,根据学习策略,选择最优模型的计算方法。确定模型中每个θi...

weixin_30363981的博客 270
上一篇: Python负数除法取余操作
下一篇: Unity打包产生的AssetBundles文件
sunimage
博客等级 码龄18年 0粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值