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

    文章

    81

    浏览量

    17726
  • python
    +关注

    关注

    56

    文章

    4782

    浏览量

    84449
  • MSE
    MSE
    +关注

    关注

    0

    文章

    5

    浏览量

    6565
  • 线性回归
    +关注

    关注

    0

    文章

    41

    浏览量

    4300
  • SST仿真
    +关注

    关注

    0

    文章

    2

    浏览量

    1029
收藏 人收藏

    评论

    相关推荐

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

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

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

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

    关联规则挖掘在数据录入、校对系统的应用

    本文介绍了关联规则挖掘在数据录入、校对系统的设计思路、体系结构和实现要点。关键词:数据挖掘关联
    发表于 09-03 11:55 6次下载

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

    提出了一种基于最大模式的关联规则挖掘算法,探讨了它的实现步骤,最后通过实例说明它是数据挖掘中一种有效的
    发表于 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 4366次阅读

    Python做几个表情

    今天制作表情用到的技术还是之前提到的Turtle库,可以从之前的文章除了画佩奇我们还要玩点更高级的,去学习Turtle的常用语法,然后就是PIL库,之前通过这篇文章:Python骚操作|P
    的头像 发表于 02-11 11:13 5163次阅读

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

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

    Python写网络爬虫

    Python写网络爬虫的方法说明。
    发表于 06-01 11:55 21次下载

    在Anaconda安装pythonseaborn

    在Anaconda安装pythonseaborn(现代电源技术题库)-在Anaconda安装python
    发表于 09-18 15:01 5次下载
    在Anaconda<b class='flag-5'>中</b>安装<b class='flag-5'>python</b><b class='flag-5'>包</b>seaborn

    Python学习科学编程

    Python学习科学编程,Python经典教材。
    发表于 03-09 15:00 0次下载

    python数据挖掘与机器学习

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

    Python SDK的使用

    之前,你要确保Python和pip已经成功安装在电脑上,如果没有,可以访问这篇文章: 超详细Python安装指南 进行安装。 (可选1) 如果你P
    的头像 发表于 10-30 15:51 723次阅读
    <b class='flag-5'>Python</b> SDK<b class='flag-5'>包</b>的使用

    线性回归模型的基础知识

    详细Python安装指南 进行安装。 **(可选1) **如果你Python的目的是数据分析,可以直接安装Anaconda: Python
    的头像 发表于 10-31 10:54 520次阅读
    <b class='flag-5'>线性</b><b class='flag-5'>回归</b>模型的基础知识

    python变量命名规则

    Python是一种高级编程语言,广泛应用于软件开发、数据分析和科学计算等领域。在Python,变量是用来存储数据的容器,它们具有名称以及与之关联的值。然而,变量的命名并不是随意的,而
    的头像 发表于 11-23 15:44 1217次阅读