关于数据挖掘:matlab用马尔可夫链蒙特卡罗-MCMC-的Logistic逻辑回归模型分析汽车实验数据附代码数据

3次阅读

共计 5956 个字符,预计需要花费 15 分钟才能阅读完成。

原文链接:http://tecdat.cn/?p=24103

此示例阐明如何应用逻辑回归模型进行贝叶斯推断 点击文末“浏览原文”获取残缺 代码数据 )。

统计推断通常基于最大似然预计 (MLE)。MLE 抉择可能使数据似然最大化的参数,是一种较为天然的办法。在 MLE 中,假设参数是未知但固定的数值,并在肯定的置信度下进行计算。在贝叶斯统计中,应用概率来量化未知参数的不确定性,因此未知参数被视为随机变量。

贝叶斯推断

贝叶斯推断是联合无关模型或模型参数的先验常识来剖析统计模型的过程。这种推断的根基是贝叶斯定理:

例如,假如咱们有正态观测值

其中 sigma 是已知的,theta 的先验散布为

在此公式中,mu 和 tau(有时也称为超参数)也是已知的。如果察看 X 的 n 个样本,咱们能够取得 theta 的后验散布

下图显示 theta 的先验、似然和后验。

y = norpdf(thta, posMan,psSD);
plot(theta'-', theta,'--', theta,'-.')

汽车试验数据

在一些简略的问题中,例如后面的正态均值推断示例,很容易计算出关闭模式的后验散布。然而,在波及非共轭先验的个别问题中,后验散布很难或不可能通过剖析来进行计算。咱们将以逻辑回归作为示例。此示例蕴含一个试验,以帮忙建模不同分量的汽车在里程测试中的未通过比例。数据包含被测汽车的分量、汽车数量以及失败次数等观测值。咱们采纳一组通过变换的分量,以缩小回归参数估值的相关性。

% 一组汽车的分量
% 每个分量下测试的汽车数量
[48 42 31 34 31 21 23 23 21 16 17 21]';
% 在每个分量上有不良 mpg 体现的汽车数量
[1 2 0 3 8 8 14 17 19 15 17 21]';

逻辑回归模型

逻辑回归(狭义线性模型的一种特例)适宜这些数据,因为因变量呈二项分布。逻辑回归模型能够写作:

其中 X 是设计矩阵,b 是蕴含模型参数的向量。咱们能够将此方程写作:

 @(b,x) exp(b(1)+b(2).*x)./(1+exp(b(1)+b(2).*x));

如果您有一些先验常识或者曾经具备某些非信息性先验,则能够指定模型参数的先验概率散布。例如,在此示例中,咱们应用正态先验值示意截距 b1 和斜率 b2,即

@(b1) normpdf(b1,0,20); % 截距的先验。@(b2) normpdf(b2,0,20); % 斜率的先验。

依据贝叶斯定理,模型参数的联结后验散布与似然和先验的乘积成正比。

请留神,此模型中后验的归一化常数很难进行剖析。然而,即便不晓得归一化常数,如果您晓得模型参数的大抵范畴,也能够可视化后验散布。

msh(b2,b1,sipot)
view(-10,30)

尔后验沿参数空间的对角线伸长,表明(在咱们察看数据后)咱们认为参数是相干的。这很有意思,因为在咱们收集任何数据之前,咱们假如它们是独立的。相关性来自咱们的先验散布与似然函数的组合。


点击题目查阅往期内容

R 语言随机森林 RandomForest、逻辑回归 Logisitc 预测心脏病数据和可视化剖析

左右滑动查看更多

01

02

03

04

_切片_采样

蒙特卡罗办法罕用于在贝叶斯数据分析中汇总后验散布。其想法是,即便您不能通过剖析的形式计算后验散布,也能够从散布中生成随机样本,并应用这些随机值来预计后验散布或推断的统计量,如后验均值、中位数、标准差等。_切片_采样是一种算法,用于从具备任意密度函数的散布中进行抽样,已知项最多只有一个比例常数 – 而这正是从归一化常数未知的简单后验散布中抽样所须要的。此算法不生成独立样本,而是生成马尔可夫序列,其安稳散布就是指标散布。因而,切片抽样器是一种马尔可夫链蒙特卡罗 (MCMC) 算法。然而,它与其余家喻户晓的 MCMC 算法不同,因为只须要指定缩放的后验,不须要倡议散布或边缘散布。

此示例阐明如何应用切片抽样器作为里程测试逻辑回归模型的贝叶斯剖析的一部分,包含从模型参数的后验散布生成随机样本、剖析抽样器的输入,以及对模型参数进行推断。第一步是生成随机样本。

 sliesmle(inial,nsapes,'pdf');

采样器输入剖析

从切片采样获取随机样本后,很重要的一点是钻研诸如收敛和混合之类的问题,以确定将样本视为是来自指标后验散布的一组随机实现是否正当。察看边缘轨迹图是查看输入的最简略办法。

plot(trace(:,1))

从这些图中能够显著看出,在处理过程趋于平稳之前,参数起始值的影响会维持一段时间(大概 50 个样本)才会隐没。

查看收敛以应用挪动窗口计算统计量(例如样本的均值、中位数或标准差)也很有帮忙。这样能够产生比原始样本轨迹更平滑的图,并且更容易辨认和了解任何非平稳性。

mvag = fier((1/50)*os(50,1), 1, tace);
plot(moav(:,1))

因为这些是基于蕴含 50 次迭代的窗口计算的挪动平均值,因而前 50 个值无奈与图中的其余值进行比拟。然而,每个图的其余值仿佛证实参数后验均值在 100 次左右迭代后收敛至安稳散布。同样不言而喻的是,这两个参数彼此相干,与之前的后验密度图统一。

因为磨合期代表指标散布中不能正当视为随机实现的样本,因而不倡议应用切片采样器一开始输入的前 50 个左右的值。您能够简略地删除这些输入行,但也能够指定一个“预热”期。在已知适合的预热长度(可能来自先前的运行)时,这种形式很简便。

slcsapl(inial,nsmes,'pf',pot, ..'brin',50);
plot(trace(:,1))

这些跟踪图没有显示出任何不安稳,表明预热期已实现。

然而,还须要理解跟踪图的另一方面。尽管截距的轨迹看起来像高频噪声,但斜率的轨迹如同具备低频重量,表明相邻迭代的值之间存在自相干。尽管也能够从这个自相干样本计算均值,但咱们通常会通过删除样本中的冗余数据这一简便的操作来升高存储要求。如果它同时打消了自相干,咱们还能够将这些数据视为独立值样本。例如,您能够通过只保留第 10 个、第 20 个、第 30 个等值来浓缩样本。

sceampe(...
                                                'brin'50,'tin',10);

要查看这种浓缩的成果,能够依据轨迹预计样本自相干函数,并应用它们来查看样本是否疾速混合。

 fftetendtrce,'cnsant');
 F .* coj(F);


for i = 1:2
   lineles =  stem(:20, F(:i)  'filled' , 'o');

第一个滞后的自相干值对于截距参数很显著,对于斜率参数更是如此。咱们能够应用更大的浓缩参数反复抽样,以进一步升高相关性。但为了实现本示例的目标,咱们将持续应用以后样本。

推断模型参数

与预期相符,样本直方图模仿了后验密度图。

hist(rce,[25,25]);

view(-10,30)

您能够应用直方图或核平滑密度估计值来总结后验样本的边缘散布属性。

kdeiy(rae(:2))

您还能够计算描述性统计量,例如随机样本的后验均值或百分位数。为了确定样本大小是否足以实现所需的精度,将所需的轨迹统计量作为样本数的函数来进行查看会很有帮忙。

csu= csm(rae);

plot(csm(:,1)'./(1:sals))

在这种状况下,样本大小 1000 仿佛足以为后验均值估计值提供良好的精度。

mean(te)

总结

您可能轻松地指定似然和先验。您也能够将它们联合起来用于推断后验散布。您能够通过马尔可夫链蒙特卡罗仿真在 MATLAB 中执行贝叶斯剖析。


点击文末 “浏览原文”

获取全文残缺材料。

本文选自《matlab 用马尔可夫链蒙特卡罗 (MCMC) 的 Logistic 逻辑回归模型剖析汽车试验数据》。

点击题目查阅往期内容

R 语言 coda 贝叶斯 MCMC Metropolis-Hastings 采样链分析和收敛诊断可视化
R 语言实现 MCMC 中的 Metropolis–Hastings 算法与吉布斯采样
R 语言贝叶斯 METROPOLIS-HASTINGS GIBBS 吉布斯采样器预计变点指数分布剖析泊松过程车站等待时间
R 语言马尔可夫 MCMC 中的 METROPOLIS HASTINGS,MH 算法抽样(采样)法可视化实例
python 贝叶斯随机过程:马尔可夫链 Markov-Chain,MC 和 Metropolis-Hastings,MH 采样算法可视化
Python 贝叶斯推断 Metropolis-Hastings(M-H)MCMC 采样算法的实现
Metropolis Hastings 采样和贝叶斯泊松回归 Poisson 模型
Matlab 用 BUGS 马尔可夫区制转换 Markov switching 随机稳定率模型、序列蒙特卡罗 SMC、M H 采样剖析工夫序列 R 语言 RSTAN MCMC:NUTS 采样算法用 LASSO 构建贝叶斯线性回归模型剖析职业声望数据
R 语言 BUGS 序列蒙特卡罗 SMC、马尔可夫转换随机稳定率 SV 模型、粒子滤波、Metropolis Hasting 采样工夫序列剖析
R 语言 Metropolis Hastings 采样和贝叶斯泊松回归 Poisson 模型
R 语言贝叶斯 MCMC:用 rstan 建设线性回归模型剖析汽车数据和可视化诊断
R 语言贝叶斯 MCMC:GLM 逻辑回归、Rstan 线性回归、Metropolis Hastings 与 Gibbs 采样算法实例
R 语言贝叶斯 Poisson 泊松 - 正态分布模型剖析职业足球比赛进球数
R 语言用 Rcpp 减速 Metropolis-Hastings 抽样预计贝叶斯逻辑回归模型的参数
R 语言逻辑回归、Naive Bayes 贝叶斯、决策树、随机森林算法预测心脏病
R 语言中贝叶斯网络(BN)、动静贝叶斯网络、线性模型剖析错颌畸形数据
R 语言中的 block Gibbs 吉布斯采样贝叶斯多元线性回归
Python 贝叶斯回归剖析住房累赘能力数据集
R 语言实现贝叶斯分位数回归、lasso 和自适应 lasso 贝叶斯分位数回归剖析
Python 用 PyMC3 实现贝叶斯线性回归模型
R 语言用 WinBUGS 软件对学术能力测验建设档次(分层)贝叶斯模型
R 语言 Gibbs 抽样的贝叶斯简略线性回归仿真剖析
R 语言和 STAN,JAGS:用 RSTAN,RJAG 建设贝叶斯多元线性回归预测选举数据
R 语言基于 copula 的贝叶斯分层混合模型的诊断准确性钻研
R 语言贝叶斯线性回归和多元线性回归构建工资预测模型
R 语言贝叶斯推断与 MCMC:实现 Metropolis-Hastings 采样算法示例
R 语言 stan 进行基于贝叶斯推断的回归模型
R 语言中 RStan 贝叶斯层次模型剖析示例
R 语言应用 Metropolis-Hastings 采样算法自适应贝叶斯预计与可视化
R 语言随机搜寻变量抉择 SSVS 预计贝叶斯向量自回归(BVAR)模型
WinBUGS 对多元随机稳定率模型:贝叶斯预计与模型比拟
R 语言实现 MCMC 中的 Metropolis–Hastings 算法与吉布斯采样
R 语言贝叶斯推断与 MCMC:实现 Metropolis-Hastings 采样算法示例
R 语言应用 Metropolis-Hastings 采样算法自适应贝叶斯预计与可视化
视频:R 语言中的 Stan 概率编程 MCMC 采样的贝叶斯模型
R 语言 MCMC:Metropolis-Hastings 采样用于回归的贝叶斯预计 R 语言逻辑回归、Naive Bayes 贝叶斯、决策树、随机森林算法预测心脏病
R 语言逻辑回归 (Logistic Regression)、回归决策树、随机森林信用卡守约剖析信贷数据集 PYTHON 用户散失数据挖掘:建设逻辑回归、XGBOOST、随机森林、决策树、反对向量机、奢侈贝叶斯和 KMEANS 聚类用户画像
Python 对商店数据进行 lstm 和 xgboost 销售量工夫序列建模预测剖析
PYTHON 集成机器学习:用 ADABOOST、决策树、逻辑回归集成模型分类和回归和网格搜寻超参数优化
R 语言集成模型:晋升树 boosting、随机森林、束缚最小二乘法加权均匀模型交融剖析工夫序列数据
Python 对商店数据进行 lstm 和 xgboost 销售量工夫序列建模预测剖析
R 语言用主成分 PCA、逻辑回归、决策树、随机森林剖析心脏病数据并高维可视化
R 语言基于树的办法:决策树,随机森林,Bagging,加强树
R 语言用逻辑回归、决策树和随机森林对信贷数据集进行分类预测
spss modeler 用决策树神经网络预测 ST 的股票
R 语言中应用线性模型、回归决策树主动组合特色因子程度
R 语言中自编基尼系数的 CART 回归决策树的实现
R 语言用 rle,svm 和 rpart 决策树进行工夫序列预测
python 在 Scikit-learn 中用决策树和随机森林预测 NBA 获胜者
python 中应用 scikit-learn 和 pandas 决策树进行 iris 鸢尾花数据分类建模和穿插验证
R 语言里的非线性模型:多项式回归、部分样条、平滑样条、狭义相加模型 GAM 剖析
R 语言用规范最小二乘 OLS,狭义相加模型 GAM,样条函数进行逻辑回归 LOGISTIC 分类
R 语言 ISLR 工资数据进行多项式回归和样条回归剖析
R 语言中的多项式回归、部分回归、核平滑和平滑样条回归模型
R 语言用泊松 Poisson 回归、GAM 样条曲线模型预测骑自行车者的数量
R 语言分位数回归、GAM 样条曲线、指数平滑和 SARIMA 对电力负荷工夫序列预测 R 语言样条曲线、决策树、Adaboost、梯度晋升(GBM) 算法进行回归、分类和动静可视化
如何用 R 语言在机器学习中建设集成模型?
R 语言 ARMA-EGARCH 模型、集成预测算法对 SPX 理论稳定率进行预测在 python 深度学习 Keras 中计算神经网络集成模型 R 语言 ARIMA 集成模型预测工夫序列剖析 R 语言基于 Bagging 分类的逻辑回归 (Logistic Regression)、决策树、森林剖析心脏病患者
R 语言基于树的办法:决策树,随机森林,Bagging,加强树
R 语言基于 Bootstrap 的线性回归预测置信区间预计办法
R 语言应用 bootstrap 和增量法计算狭义线性模型(GLM)预测置信区间
R 语言样条曲线、决策树、Adaboost、梯度晋升(GBM) 算法进行回归、分类和动静可视化
Python 对商店数据进行 lstm 和 xgboost 销售量工夫序列建模预测剖析
R 语言随机森林 RandomForest、逻辑回归 Logisitc 预测心脏病数据和可视化剖析
R 语言用主成分 PCA、逻辑回归、决策树、随机森林剖析心脏病数据并高维可视化
Matlab 建设 SVM,KNN 和奢侈贝叶斯模型分类绘制 ROC 曲线
matlab 应用分位数随机森林(QRF)回归树检测异样值

正文完
 0