Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >采用Ridge(岭回归)重新对三种不同销售方式所影响的销售额展开分析

采用Ridge(岭回归)重新对三种不同销售方式所影响的销售额展开分析

作者头像
用户6719124
发布于 2019-11-17 15:43:11
发布于 2019-11-17 15:43:11
73200
代码可运行
举报
运行总次数:0
代码可运行

上述例子中我们使用了最简单的线性回归进行了机器学习分析,本文将介绍了一种新的回归方式:岭回归。

岭回归是一种专门用于共线性数据分析的有偏估计回归方法,其本质是改良型的最小二乘估计法,但它放弃最小二乘法的无偏性,以损失部分信息、降低精度为代价使得回归系数更可靠,且对于病态数据的拟合要强于最小二乘法。

Ridge原理如下

下面采用ridge函数对上次代码进行重写

首先引入工具包

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import Ridge
from sklearn.model_selection import GridSearchCV

开始数据读取

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
data = pd.read_csv('Advertising.csv')    # TV、Radio、Newspaper、Sales
x = data[['TV', 'Radio', 'Newspaper']]
y = data['Sales']

构建模型

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
x_train, x_test, y_train, y_test = train_test_split(x, y, random_state=1, train_size=0.8)
# 同样设定80%的训练样本
# model = Lasso()
model = Ridge()
# 设定Ridge模型
alpha_can = np.logspace(-3, 2, 10)
# Ridge函数需要一个参数值,这里从10-3次方到102次方取十个候选值
np.set_printoptions(suppress=True)
print ('alpha_can = ', alpha_can)

输出alpha_can的值为

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
alpha_can =  [  0.001        0.00359381   0.0129155    0.04641589   0.16681005

继续构建模型

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Ridge_model = GridSearchCV(model, param_grid={'alpha': alpha_can}, cv=5)
# 挨个搜索alpha_can
Ridge_model.fit(x_train, y_train)
# 数据喂给函数
print ('超参数:\n', Ridge_model.best_params_)
# 输出最佳参数

输出为

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{'alpha': 7.742636826811277}

余下的模型测试与绘图部分与之前类似,不再赘述

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
order = y_test.argsort(axis=0)
y_test = y_test.values[order]
x_test = x_test.values[order, :]
y_hat = Ridge_model.predict(x_test)
mse = np.average((y_hat - np.array(y_test)) ** 2) 
rmse = np.sqrt(mse) 

t = np.arange(len(x_test))
mpl.rcParams['font.sans-serif'] = [u'simHei']
mpl.rcParams['axes.unicode_minus'] = False
plt.figure(facecolor='w')
plt.plot(t, y_test, 'r-', linewidth=2, label=u'真实数据')
plt.plot(t, y_hat, 'g-', linewidth=2, label=u'预测数据')
plt.title(u'线性回归预测销量', fontsize=18)
plt.legend(loc='upper left')
plt.grid(b=True, ls=':')
plt.show()

图片为

这里所得到的mse和rmse的数值分别为:1.992745和1.411646。这个结果略差于上期的线性回归结果,但若进行alpha_can的调参工作和优化数据(舍去相关性差的数据)或许会得到更好的结果。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-09-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 python pytorch AI机器学习实践 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
“电视、新闻、报纸”-简单机器学习预测未来销售额
机器学习是python使用的一大方向,本文以简单的三种不同销售方式对最终销额的影响为例子,采用MSE均方差进行分析。
用户6719124
2019/11/17
7690
最强总结!8个线性回归核心点!!
那从今天开始,我预计会陆陆续续出一些内容,来论述各个算法的基础核心点,大家感兴趣可以关注起来。
Python编程爱好者
2024/05/13
8590
最强总结!8个线性回归核心点!!
机器学习(3)——回归模型目标函数多项式扩展正则项机器学习调参
前言:紧接上一篇文章结尾,预测值和真实值存在较大差距,接着介绍用多项式权重来提高拟合度(R2),过拟合解决办法,引出正则项L1和L2,Ridge回归和LASSO回归。 目标函数 机器学习中目标函数
DC童生
2018/04/27
1.4K0
机器学习(3)——回归模型目标函数多项式扩展正则项机器学习调参
1.3 广告算法专题 - 交叉验证
在无论是线性模型或者svm等几乎所有的模型训练中都会用到的一项规则,那就是将训练数据分为训练数据和测试数据,来看使用训练数据训练出来的模型在测试数据上的效果
Python编程爱好者
2020/09/08
6570
1.3 广告算法专题 - 交叉验证
机器学习篇(2)——最小二乘法概念最小二乘法
前言:主要介绍了从最小二乘法到 概念 顾名思义,线性模型就是可以用线性组合进行预测的函数,如图: image.png 公式如下: image.png image.png 误差
DC童生
2018/04/27
2K0
机器学习篇(2)——最小二乘法概念最小二乘法
机器学习从0入门-线性回归
机器学习有许多不同的算法,每个算法都有其特定的应用场景和优缺点。然而,最简单的机器学习算法可能是线性回归。
皮大大
2023/08/25
5160
机器学习从0入门-线性回归
正则化回归
lasso回归可以选择数据集中的重要变量,将不太重要的特征的系数缩小到0,系数不为0的特征就是被lasso回归选择的特征
用户11414625
2024/12/20
980
正则化回归
Python多元线性回归-sklearn.linear_model,并对其预测结果评估
在前面的博客已经介绍过多元回归模型,现在这里粗略介绍如下 python 实现案例 1、选取数据 #!usr/bin/env python #_*_ coding:utf-8 _*_ import
学到老
2018/03/16
9.2K0
Python多元线性回归-sklearn.linear_model,并对其预测结果评估
机器学习测试笔记(12)——线性回归方法(下)
,这样当y=0, g(x)’=0.5; y>0, g(x)’>0.5且趋于1;y<0, g(x)’<0.5且趋于0,从而达到二分类的目的。sklearn.linear_model通过LogisticRegression类实现逻辑回归。
顾翔
2021/01/04
5500
机器学习测试笔记(12)——线性回归方法(下)
用scikit-learn和pandas学习Ridge回归
    本文将用一个例子来讲述怎么用scikit-learn和pandas来学习Ridge回归。
刘建平Pinard
2018/08/14
9070
用scikit-learn和pandas学习Ridge回归
10种常见的回归算法总结和介绍
线性回归是机器学习中最简单的算法,它可以通过不同的方式进行训练。 在本文中,我们将介绍以下回归算法:线性回归、Robust 回归、Ridge 回归、LASSO 回归、Elastic Net、多项式回归、多层感知机、随机森林回归和支持向量机。除此以外,本文还将介绍用于评估回归模型的最常用指标,包括均方误差 (MSE)、均方根误差 (RMSE) 和平均绝对误差 (MAE)。
deephub
2022/11/11
1K0
10种常见的回归算法总结和介绍
【机器学习与实现】线性回归示例——波士顿房价分析
链接:https://pan.quark.cn/s/fc4b2415e371 提取码:ZXjU
Francek Chen
2025/01/22
1550
【机器学习与实现】线性回归示例——波士顿房价分析
机器学习总结(一):线性回归、岭回归、Lasso回归
其中λ称为正则化参数,如果λ选取过大,会把所有参数θ均最小化,造成欠拟合,如果λ选取过小,会导致对过拟合问题解决不当,因此λ的选取是一个技术活。 岭回归与Lasso回归最大的区别在于岭回归引入的是L2范数惩罚项,Lasso回归引入的是L1范数惩罚项,Lasso回归能够使得损失函数中的许多θ均变成0,这点要优于岭回归,因为岭回归是要所有的θ均存在的,这样计算量Lasso回归将远远小于岭回归。
全栈程序员站长
2022/07/01
7920
机器学习总结(一):线性回归、岭回归、Lasso回归
线性回归中的多重共线性与岭回归
上篇文章《简单而强大的线性回归详解》(点击跳转)详细介绍了线性回归分析方程、损失方程及求解、模型评估指标等内容,其中在推导多元线性回归使用最小二乘法的求解原理时,对损失函数求导得到参数向量 的方程式
数据STUDIO
2021/06/24
2.2K0
独家 | 为你介绍7种流行的线性回归收缩与选择方法(附代码)
本文讨论了几种子集和收缩方法:最佳子集回归, 岭回归, LASSO, 弹性网, 最小角度回归, 主成分回归和偏最小二乘。
数据派THU
2019/05/16
1.6K0
独家 | 为你介绍7种流行的线性回归收缩与选择方法(附代码)
「Machine Learning」线性回归认识
所谓线性回归(Linear Regression),其最本质的特点就是可以用来根据已有的数据探究一个(或者多个)自变量与因变量之间的线性关系,从而对未知自变量所对应因变量进行预测。以单个自变量为例:
曼亚灿
2023/05/22
4630
「Machine Learning」线性回归认识
线性回归模型使用技巧
线性回归是统计学中最基础且广泛使用的预测模型之一。它通过找到最佳拟合直线(或超平面)来描述因变量(目标变量)与自变量(预测因子)之间的关系。本文将探讨线性回归的核心理论,常见问题,如何避免这些错误,并提供一个实践案例及代码示例。
Jimaks
2024/05/14
2350
python实现线性回归之岭回归
上述式子中w为长度为n的向量,不包括偏置项的系数 θ0,θ是长度为n+1的向量,包括偏置项系数θ0;m为样本数,n为特征数。
西西嘛呦
2020/08/26
1.7K0
python实现线性回归之岭回归
【机器学习】机器学习回归模型全解析:线性回归、多项式回归、过拟合与泛化、向量相关性与岭回归的理论与实践
文章链接:https://cloud.tencent.com/developer/article/2465836
小馒头学Python
2024/11/15
3530
【机器学习】机器学习回归模型全解析:线性回归、多项式回归、过拟合与泛化、向量相关性与岭回归的理论与实践
机器学习算法之岭回归、Lasso回归和ElasticNet回归
作者:biaodianfu https://www.biaodianfu.com/ridge-lasso-elasticnet.html
统计学家
2019/07/17
1.6K0
机器学习算法之岭回归、Lasso回归和ElasticNet回归
推荐阅读
相关推荐
“电视、新闻、报纸”-简单机器学习预测未来销售额
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验