0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

用Python进行线性回归 用Python中的mlxtend包实现关联规则挖掘

冬至子 来源:yvonxin 作者:yvonxin 2023-08-09 14:37 次阅读

1.简单线性回归

读取Case1.csv,其中wt列为病人体重,volume列为病人肾脏容积,试建立回归方程,用病人体重预测病人肾脏容积。

2.多元线性回归

读取Case2.csv,其中CRIM列为城镇人均犯罪率,ZN为住宅用地超过25,000平方英尺以上的比例,INDUS为城镇非零售商用土地的比例(即工业或农业等用地比例),CHAS为查尔斯河虚拟变量(边界是河,则为1;否则为0),NOX为一氧化氮浓度(百万分之几),RM为每个住宅的平均房间数,AGE为1940 年之前建成的自用房屋比例,DIS为到波士顿五个中心区域的加权距离(与繁华闹市的距离,区分郊区与市区),RAD为高速公路通行能力指数(辐射性公路的靠近指数),TAX为每10,000美元的全额财产税率,PTRATIO为按镇划分的城镇师生比例,B为1000(Bk-0.63)^2其中Bk是城镇黑人比例,LSTAT为人口中地位低下者的百分比,MEDV为自有住房的中位数价值(单位:千美元)。以MEDV为因变量(预测目标),建立回归方程,预测房价,并评价模型性能。

3.关联规则挖掘

读取Case3.csv,试挖掘出支持度>=0.02,置信度>=0.35的关联规则。

4.梯度下降法实现多元线性回归(选做)

自行实现梯度下降法,实现多元线性回归中的参数计算。记录自己实现的梯度下降法的运算时间,与statsmodels中的方法进行比较。

5.Apriori算法实现关联规则挖掘(选做)

自行实现Apriori算法,实现关联规则挖掘。记录自己实现的Apriori算法的运算时间,与mlxtend中的方法进行比较。

三、实验过程及步骤

1.一元线性回归&多元线性回归

1.0实现思路

一元线性回归近似于用一条直线来拟合数据和结果,y = a·x + b。我们会希望数据的分布和拟合曲线之间的误差越小而且符合正态分布。

1.1基于Statsmodels.OLS的一元线性回归

在进行多元回归的时候需要将excel中多列参数值读到stark中,然后再调用相关函数。

1.2 DIY一元线性回归

定义矩阵乘法函数J(梯度下降函数)和对矩阵求导的函数dj,求导的结果决定了x的方向。

图片

具体实现:使用numpy包中的dot函数实现点乘

2.相关分析

2.1将数据库中数据读成购物清单的格式

图片

图二 格式转换

2.2遍历得到所有商品,放到C1中;

2.3假定支持度是0.2,计算每个商品的支持度(出现的频率),如果支持度超过0.2则放入L1层;

2.4将L1层中商品进行两两组合,得到C2,计算C2中每个组合的支持度,将支持度大于0.02的组合放入L2层;最终得到的L就类似是一个柜子,如下图所示,最后通过遍历可以得到支持度大于0.2的组合;

图片

图三 实验结果效果图

四、实验结果及分析

1.出现的问题

·在使用自己写得多元线性回归递归的时候出现梯度越来越大的问题。

图片

图四 每次迭代之后梯度反而上升

当我修改eta从0.01至0.000001后下降的数据恢复正常,在迭代后逐渐减小。

图片

图五 在修改公式中的eta后数据恢复正常

2.结果时间对比

图片

图六 结果时间对比

3.结果评估

在回归任务(对连续值的预测)中,常见的评估指标(Metric)有:平均绝对误差(Mean Absolute Error,MAE)、均方误差(Mean Square Error,MSE)、均方根误差(Root Mean Square Error,RMSE)和平均绝对百分比误差(Mean Absolute Percentage Error,MAPE),其中用得最为广泛的就是MAE和MSE。

图片

图七 一元线性回归summary

从图中我们可以看出样本数量(No.Observation)为24;

残差自由度 (DF Residuals,残差指的是实际观察值与估计值之间的差)为22,;

参数数量(DF Residuals)为1;

确定系数 (R-squared,说明估计的准确性“确定系数”是通过数据的变化来表征一个拟合的好坏。由上面的表达式可以知道“确定系数”的正常取值范围为[0 1],越接近1,表明方程的变量对y的解释能力越强,这个模型对数据拟合的也较好)为0.986,确定系数与SSR(Sum of squares of the regression,即预测数据与原始数据均值之差的平方和)和SST(Total sum of squares,即原始数据和均值之差的平方和)相关,R-squared = SSR/SST;

修正确定系数( Adj.R-squared)为0.981,这里修正确定系数公式为,p为模型中变量的个数,当引入新的变量时可以提高确定系数,我们引入修正系数相当于给变量个数的增加添加惩罚项。

图片

图八 使用Statsmodels.OLS的一元线性回归结果可视化

从图片中来看,Const 和 wt 分别意味截距和斜率。

图片

图九 DIY一元线性回归结果

图片

图十 多元线性回归summary

图片

图十一 多元线性回归参数列表

图片

图十二 根据DIY多元数据模型预测出出来的房价(部分)

图片

图十三 DIY多元数据评估指标

对比来看,DIY模型效果不是很好呀,这里的R2即左边多元线性回归summary中的R-squared,R2 是多元回归中的回归平方和占总平方和的比例,它是度量多元回归方程中拟合程度的一个统计量,反映了在因变量y的变差中被估计的回归方程所解释的比例。R2 越接近1,表明回归平方和占总平方和的比例越大,回归线与各观测点越接近,用x的变化来解释y值变差的部分就越多,回归的拟合程度就越好。

图片

图十二 基于mlxtend.frequent_patterns的关联分析

图片

图十三 DIY关联分析(部分)

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • SSR
    SSR
    +关注

    关注

    0

    文章

    67

    浏览量

    17488
  • python
    +关注

    关注

    51

    文章

    4678

    浏览量

    83477
  • MSE
    MSE
    +关注

    关注

    0

    文章

    5

    浏览量

    6484
  • 线性回归
    +关注

    关注

    0

    文章

    41

    浏览量

    4252
  • SST仿真
    +关注

    关注

    0

    文章

    2

    浏览量

    1007
收藏 人收藏

    评论

    相关推荐

    基于Trie的一种关联规则挖掘方法

    集。本文提出了一种基于Trie的在可信度构架下进行关联规则挖掘的方法,用于解决支持度为零的一类特殊问题,在不生成候选集的基础上,直接计算出所有的子集,节省了生成频繁项集的时空开销。【关
    发表于 04-24 09:55

    线性回归的标准方程法使用

    线性回归-标准方程法示例(python原生实现
    发表于 05-07 16:44

    为什么python在树莓派上编程?详解python的优点

    存储服务器。树莓派什么语言编程?树莓派python进行编程。树莓派项目的一个核心思想是Python编程语言的使用。
    发表于 05-21 08:47

    python数据分析基础之使用statasmodels进行线性回归

    python 数据分析基础 day16-使用statasmodels进行线性回归
    发表于 06-19 11:22

    TensorFlow常用Python扩展

    TensorFlow 能够实现大部分神经网络的功能。但是,这还是不够的。对于预处理任务、序列化甚至绘图任务,还需要更多的 Python 。下面列出了一些常用的 Python
    发表于 07-28 14:35

    Python硬件验证——摘要

    实现 PyMTL - 用于开源硬件建模、生成、模拟和验证的Python 框架 PyHVL - Python 验证工具 约束和覆盖PyVSC Py
    发表于 11-03 13:07

    基于矩阵的关联规则挖掘算法

    针对一些经典的关联规则算法进行分析,提出一种基于矩阵的高效关联规则挖掘算法。该算法把交易数据库转
    发表于 04-09 09:11 15次下载

    一种新的模糊加权关联规则挖掘算法

    为了提高关联规则挖掘算法处理大数据集的性能,提出一种新的模糊加权关联规则挖掘算法——FWAR算法
    发表于 04-13 09:56 16次下载

    基于用户兴趣导向的关联规则数据挖掘

    本文在针对关联规则的Apriori 算法的基础上,为了提高用户数据挖掘的人机交互性能,解决关联规则挖掘
    发表于 08-26 11:41 11次下载

    基于最大模式的关联规则挖掘算法研究

    提出了一种基于最大模式的关联规则挖掘算法,探讨了它的实现步骤,最后通过实例说明它是数据挖掘中一种有效的
    发表于 09-16 10:44 12次下载

    基于MapReduce的并行关联规则挖掘算法

    挖掘、分类、聚集、离群点检测等。关联规则挖掘是最重要的数据挖掘任务之一,由Agrawal等人提出,其目的是发现事务(项)之间存在的隐含
    发表于 01-10 15:22 1次下载
    基于MapReduce的并行<b class='flag-5'>关联</b><b class='flag-5'>规则</b><b class='flag-5'>挖掘</b>算法

    8种用Python实现线性回归的方法对比分析_哪个方法更好?

    说到如何用Python执行线性回归,大部分人会立刻想到用sklearn的linear_model,但事实是,Python至少有8种执行线性
    的头像 发表于 06-28 09:53 4165次阅读

    Logistic回归数学推导以及python实现

    Logistic回归数学推导以及python实现
    发表于 02-25 14:48 7次下载

    python数据挖掘与机器学习

    python数据挖掘与机器学习 Python是一个非常流行的编程语言,被广泛用于数据挖掘和机器学习领域。在本篇文章中,我们将探讨Python
    的头像 发表于 08-17 16:29 891次阅读

    python数据挖掘案例

    python数据挖掘案例 Python数据挖掘在各个领域中应用非常广泛。它可以帮助我们从大量的数据中挖掘出有价值的信息,从而为决策和优化提供
    的头像 发表于 08-17 16:29 861次阅读