网站大量收购闲置独家精品文档,联系QQ:2885784924

机工社数学建模:算法与编程实现教学课件第10讲_预测模型2.pptx

机工社数学建模:算法与编程实现教学课件第10讲_预测模型2.pptx

  1. 1、本文档共58页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
;;一、广义线性模型;?; 注:因变量数据只要服从指数族分布:正态分布、伯努利分布、泊松分布、指数分布、Gamma 分布、卡方分布、Beta 分布、狄里克雷分布、Categorical 分布、Wishart 分布、逆 Wishart 分布等,就可以使用对应的广义线性模型。 MATLAB 中用 fitglm() 函数实现广义线性回归模型,语法格式、默认规则等与 fitlm() 基本一致: fitglm(tbl, modelspec, Name, Value) fitglm(X, y, modelspec, Name, Value) ;关键的区别是,通过名值对 Distribution, 分布名字 来设置因变量的分布以选择不同的广义线性模型,常用的分布名字有: - normal:正态分布,线性回归 - binomial:二项分布,Logistic回归,适合因变量是二分类数据 - poisson:泊松分布,泊松回归,适合因变量是计数数据 - gamma:Gamma 分布,Gamma 回归 - inverse gaussian:逆高斯分布,逆高斯回归 名值对 link, 连接函数名字 可设置连接函数,甚至自定义连接函数,上述分布会自动选择其默认的连接函数。 名值 offset 设置偏移量,相当于拟合如下模型: 注:广义线性回归与线性回归一样,也有回归诊断,也有可以筛选变量的逐步广义线性模型:stepwiseglm(), 用法完全是类似的。 ;1. Logistic回归;自变量是面部表情的量化值,因变量是二分类:将Anger编码为“1”,Fear编码为“0”。 先拟合线性回归模型看看: dat = dlmread(FearfulAngry.txt); x = dat(:,1); y = dat(:,2); lm = fitlm(x, y); % 拟合线性回归模型 xvals = 0:100; yhat = predict(lm, xvals); % 模型在新值上做预测 plot(x,y,*,xvals, yhat,r), grid on ;?;syms x y ezplot(1 / (1 + exp(-x)), [-10, 10]), hold on plot([-10 10], [1,1], r--,[-10 10], [0,0], r--), grid on ;?;?;?;再来看一下,模型的预测效果: xvals = 1:100; yhat2 = predict(glm, xvals); plot(x, y, *, xvals, yhat2, r), grid on pred = predict(glm, x); % 预测概率值 pred(pred = 0.5) = 1; % 以0.5为阈值 pred(pred 0.5) = 0; mean(pred == y) % 预测正确率 运行结果 ans =? 0.9406 ;预测正确率为 94.06%,非常高!实际上还可以调整阈值(不一定 0.5 是最优的,这就是调参),进一步提高正确率。 当然,Logistic 回归也可以做模型检验、回归诊断,可以有更多的自变量,可以是连续的也可以是分类的,还可以有多项式项,也可以用逐步回归stepwiseglm() 筛选自变量建立最合适的模型。 ;?;例10.8(泊松回归)现有美国校园暴力犯罪数据(部分): 变量 enroll1000 为以千为单位的学生人数,type 为学校类型(学院/大学),region 为学校所在地区,nv 为暴力犯罪人数,nvrate 为暴力犯罪率。 建立泊松回归模型,考察暴力犯罪与学校类型、学校所在地区之间的关系。 ;先读入数据,绘制直方图和核密度估计图探索因变量 nv: vc = readtable(ViolentCrimes.csv, PreserveVariableNames,true); histogram(vc.nv,20,Normalization,pdf), hold on [f,xi] = ksdensity(vc.nv); plot(xi,f) axis([-1 35 0 0.3]) ;?; 运行结果 plm? ?=? ?广义线性回归模型: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?log(nv) ~ 1 + type + region ? ? ? ? 分布 = Poisson ? 估计系数: ? ? ? ? ? ?

文档评论(0)

allen734901 + 关注
实名认证
内容提供者

副教授持证人

知识共享

领域认证该用户于2024年11月14日上传了副教授

1亿VIP精品文档

相关文档