首先,Matlab是一个工具,它不是一个方法。
其次,我给你推荐一本书
《MATLAB 在数学建模中的应用(第2版)》
然后它的目录可以回答你的问题:
第1章 数学建模常规方法及其MATLAB实现
11 MATLAB与数据文件的交互
111 MATLAB与Excel的交互
112 MATLAB与TXT交互
113 MATLAB界面导入数据的方法
12 数据拟合方法
121 多项式拟合
122 指定函数拟合
123 曲线拟合工具箱
13 数据拟合应用实例
131 人口预测模型
132 薄膜渗透率的测定
14 数据的可视化
141 地形地貌图形的绘制
142 车灯光源投影区域的绘制(CUMCM2002A)
15 层次分析法(AHP)
151 层次分析法的应用场景
152 AHPMATLAB程序设计
第2章 规划问题的MATLAB求解
21 线性规划
211 线性规划的实例与定义
212 线性规划的MATLAB标准形式
213 线性规划问题解的概念
214 求解线性规划的MATLAB解法
22 非线性规划
221 非线性规划的实例与定义
222 非线性规划的MATLAB解法
223 二次规划
23 整数规划
231 整数规划的定义
232 01整数规划
233 随机取样计算法
第3章 数据建模及MATLAB实现
31 云模型
311 云模型基础知识
312 云模型的MATLAB程序设计
32 Logistic回归
321 Logistic模型
322 Logistic回归MATLAB程序设计
33 主成分分析
331 PCA基本思想
332 PCA步骤
333 主成分分析MATLAB程序设计
34 支持向量机(SVM)
341 SVM基本思想
342 理论基础
343 支持向量机MATLAB程序设计
35 K均值(KMeans)
351 KMeans原理、步骤和特点
352 KMeans聚类MATLAB程序设计
36 朴素贝叶斯判别法
361 朴素贝叶斯判别模型
362 朴素贝叶斯判别法MATLAB设计
37 数据建模综合应用
参考文献
第4章 灰色预测及其MATLAB实现
41 灰色系统基本理论
411 灰色关联度矩阵
412 经典灰色模型GM(1,1)
413 灰色Verhulst模型
42 灰色系统的程序设计
421 灰色关联度矩阵的程序设计
422 GM(1,1)的程序设计
423 灰色Verhulst模型的程序设计
43 灰色预测的MATLAB程序
431 典型程序结构
432 灰色预测程序说明
44 灰色预测应用实例
441 实例一长江水质的预测(CUMCM2005A)
442 实例二预测与会代表人数(CUMCM2009D)
45 小结
参考文献
第5章 遗传算法及其MATLAB实现
51 遗传算法基本原理
511 人工智能算法概述
512 遗传算法生物学基础
513 遗传算法的实现步骤
514 遗传算法的拓展
52 遗传算法的MATLAB程序设计
521 程序设计流程及参数选取
522 MATLAB遗传算法工具箱
53 遗传算法应用案例
531 案例一:无约束目标函数最大值遗传算法求解策略
532 案例二:CUMCM中多约束非线性规划问题的求解
533 案例三:BEATbx遗传算法工具箱的应用——电子商务中转化率影响因素研究
参考文献
第6章 模拟退火算法及其MATLAB实现
61 算法的基本理论
611 算法概述
612 基本思想
613 其他一些参数的说明
614 算法基本步骤
615 几点说明
62 算法的MATLAB实现
621 算法设计步骤
622 典型程序结构
63 应用实例:背包问题的求解
631 问题的描述
632 问题的求解
64 模拟退火程序包ASA简介
641 ASA的优化实例
642 ASA的编译
643 MATLAB版ASA的安装与使用
65 小结
66 延伸阅读
参考文献
第7章 人工神经网络及其MATLAB实现
71 人工神经网络基本理论
711 人工神经网络模型拓扑结构
712 常用激励函数
713 常见神经网络理论
72 BP神经网络的结构设计
721 鲨鱼嗅闻血腥味与BP神经网络训练
722 透视神经网络的学习步骤
723 BP神经网络的动态拟合过程
73 RBF神经网络的结构设计
731 梯度训练法RBF神经网络的结构设计
732 RBF神经网络的性能
74 应用实例
741 基于MATLAB源程序公路运量预测
742 基于MATLAB工具箱公路运量预测
743 艾滋病治疗最佳停药时间的确定(CUMCM2006B)
744 RBF神经网络预测新客户流失概率
75 延伸阅读
751 从金融分析中的小数定理谈神经网络的训练样本遴选规则
752 小议BP神经网络的衍生机理
参考文献
第8章粒子群算法及其MATLAB实现
81 PSO算法相关知识
811 初识PSO算法
812 PSO算法的基本理论
813 PSO算法的约束优化
814 PSO算法的优缺点
82 PSO算法程序设计
821 程序设计流程
822 PSO算法的参数选取
823 PSO算法MATLAB源程序范例
83 应用案例:基于PSO算法和BP算法训练神经网络
831 如何评价网络的性能
832 BP算法能够搜索到极值的原理
833 PSOBP神经网络的设计指导原则
834 PSO算法优化神经网络结构
835 PSOBP神经网络的实现
参考文献
第9章 蚁群算法及其MATLAB实现
91 蚁群算法原理
911 蚁群算法基本思想
912 蚁群算法数学模型
913 蚁群算法流程
92 蚁群算法的MATLAB实现
921 实例背景
922 算法设计步骤
923 MATLAB程序实现
924 程序执行结果与分析
93 算法关键参数的设定
931 参数设定的准则
932 蚂蚁数量
933 信息素因子
934 启发函数因子
935 信息素挥发因子
936 信息素常数
937 最大迭代次数
938 组合参数设计策略
94 应用实例:最佳旅游方案(苏北赛2011B)
941 问题描述
942 问题的求解和结果
95 本章小结
参考文献
第10章 小波分析及其MATLAB实现
101 小波分析基本理论
1011 傅里叶变换的局限性
1012 伸缩平移和小波变换
1013 小波变换入门和多尺度分析
1014 小波窗函数自适应分析
102 小波分析MATLAB程序设计
1021 小波分析工具箱函数指令
1022 小波分析程序设计综合案例
103 小波分析应用案例
1031 案例一:融合拓扑结构的小波神经网络
1032 案例二:血管重建引出的图像数字水印
参考文献
第11章 计算机虚拟及其MATLAB实现
111 计算机虚拟基本知识
1111 从3G移动互联网协议WCDMA谈MATLAB虚拟
1112 计算机虚拟与数学建模
1113 数值模拟与经济效益博弈
112 数值模拟MATLAB程序设计
1121 微分方程组模拟
1122 服从概率分布的随机模拟
1123 蒙特卡罗模拟
113 动态仿真MATLAB程序设计
1131 MATLAB音频处理
1132 MATLAB常规动画实现
114 应用案例:四维水质模型
1141 问题的提出
1142 问题的分析
1143 四维水质模型准备
1144 条件假设与符号约定
1145 四维水质模型的组建
1146 模型求解
1147 计算机模拟情境
参考文献
下篇 真题演习
第12章 **中的数学(CUMCM2002B)
121 问题的提出
122 模型的建立
1221 模型假设与符号说明
1222 模型的准备
1223 模型的建立
123 模型的求解
1231 求解的思路
1232 MATLAB程序
1233 程序结果
124 技巧点评
参考文献
第13章 露天矿卡车调度问题(CUMCM2003B)
131 问题的提出
132 基本假设与符号说明
1321 基本假设
1322 符号说明
133 问题分析及模型准备
134 原则①:数学模型(模型1)的建立与求解
1341 模型的建立
1342 模型求解
135 原则②:数学模型(模型2)的建立与求解
136 技巧点评
参考文献
第14章 奥运会商圈规划问题(CUMCM2004A)
141 问题的描述
142 基本假设、名词约定及符号说明
1421 基本假设
1422 符号说明
1423 名词约定
143 问题分析与模型准备
1431 基本思路
1432 基本数学表达式的构建
144 设置MS网点数学模型的建立与求解
1441 模型建立
1442 模型求解
145 设置MS网点理论体系的建立
146 商区布局规划的数学模型
1461 模型建立
1462 模型求解
147 模型的评价及使用说明
1471 模型的优点
1472 模型的缺点
148 技巧点评
参考文献
第15章 交巡警服务平台的设置与调度(CUMCM2011B)
151 问题的提出
152 问题的分析
153 基本假设
154 问题1模型的建立与求解
1541 交巡警服务平台管辖范围分配
1542 交巡警的调度
1543 最佳新增服务平台设置
155 问题2模型的建立和求解
1551 全市服务平台的合理性分析问题的模型与求解
1552 搜捕嫌疑犯实例的模型与求解
156 模型的评价与改进
1561 模型优点
1562 模型缺点
157 技巧点评
参考文献
第16章 葡萄酒的评价(CUMCM2012A)
161 问题的提出
162 基本假设
163 问题①模型的建立和求解
1631 问题①的分析
1632 模型的建立和求解
164 问题②模型的建立和求解
1641 问题②的基本假设和分析
1642 模型的建立和求解
165 问题③模型的建立和求解
1651 问题③的分析
1652 模型的建立和求解
166 问题④模型的建立和求解
1661 问题④的分析
1662 模型的建立和求解
167 论文点评
参考文献
附件数学建模参赛经验
一、如何准备数学建模竞赛
二、数学建模队员应该如何学习MATLAB
三、如何在数学建模竞赛中取得好成绩
四、数学建模竞赛中的项目管理和时间管理
五、一种非常实用的数学建模方法——目标建模法
Logistic模型:a/(1+(a/b-1)exp(-kt))
实现代码:
clc,clear all,close all
%Logistic模型用matlab求解
%时间是2000年到2010年
%数据是Q=[50302 52602 56196 6292 70021 78815 87676 98923 105823 113513 1330]
%要预测2015年的用水量。
t=[1:11];
Q=[50302 52602 56196 6292 70021 78815 87676 98923 105823 113513 1330];
func=inline('a(1)/(1+(a(1)/a(2)-1)exp(-a(3)t))','a','t');
b=[01576 09706 09572]
a=lsqcurvefit(func,b,t,Q);
Q1=func(a,t);
y=Q';y1=Q';
WZ=['Q=',num2str(a(1)),'/(1+(',num2str(a(1)),'/',num2str(a(2)),'-1)','exp(-',num2str(a(3)),'t)'];
figure
tt=2000:2010;
xx=min(t):1:max(t);
yy=func(a,xx);
plot(tt,Q,'rp'),hold on
plot(tt,yy,'-'),xlabel('年份'),ylabel('用水量(万吨)'),hold off %,grid on
text(2000,1300,WZ,'FontSize',10);
t0=2015-2000+1;y0=func(a,t0);
text(2000,1200,['预测2015年的用水量:',num2str(max(y0)),'(万吨)'])
运行结果
预测2015年的用水量:1972万吨
spss没有专门处理条件logistic回归的程序,不过可以用spss生存分析中的cox回归拟合条件logistic回归,具体方法你可以在百度文库中搜索“以SPSS软件包拟合条件logistic回归模型的探索”,里面有详细的步骤。
我们在对模型的拟合优度进行评价时,需要判断模型的预测值与对应的观测值是否具有较高的一致性,如果匹配性较好,就认为这一模型拟合数据,否则,将不接受这一模型,需要对模型重新设置。从这一点上来说,模型的适当性指的就是拟合优度。那么可能就有小伙伴会问了,我们要从哪些角度来判断模型的好坏呢?统计分析中有很多方法可以对logistic回归模型的拟合优度进行评价。下面简单介绍几种拟合优度的方法。
11 皮尔逊λ²(Pearsonλ²)
通过比较模型预测的和观测的事件发生和不发生的频数检验模型成立的假设。其标准统计量计算公式为:
。
其中,j是协变类型的种类数目。O表示观测频数,E表示预测频数,自由度是协变类型数目与参数数目之差。
λ²统计量很小就意味着预测值之间没有显著差别,表示这一模型很好地拟合了数据,相反统计量很大时,统计检验就显著,于是提供拟合不佳的证据。当拟合不好时,可以用残差和其他诊断测量来说明每个案例对模型拟合的影响以便寻找模型不合理的原因。
12 Hosmer-Lemeshow拟合优度指标
Hosmer和Lemeshowv于1989年研制出了一种对于Logistic回归模型拟合优度检验方法,称为Hosmer-Lemeshow拟合优度指标。记为HL,HL检验根据预测概率值将数据大致分为相同规模的10个组,不考虑协变类型个数,将观测数据按照其预测概率做升序排列。通过皮尔逊
通过皮尔逊λ²来概括这些分组中事件结果的观测数和预测数将其与自由度为G-2的λ²
进行比较,λ²检验不显著表示模型很好的拟合了数据,检验显著时表示模型拟合数据不好。
02 预测准确性
除了拟合优度之外,对Logistic回归模型的另一种评价是模型的预测准确性。在线性回归中,人们往往对确定系数R²的值感兴趣,因为它描述的是因变量的变动中由模型的自变量所“解释”百分比。但是在Logistic回归中却没有相应的统计指标,不过在模型似然值对数的基础上,可以为Logistic回归模型计算某种类似R²的指标,如似然比指数(likelihood ratio index,记为LRI)与R²类似,LRI的值域为0至1,当自变量与因变量完全不相关时(即所有的回归系数为0时),LRI等于0,当模型的拟合程度提高时,LRI值增加,拟合得越好,LRI值越接近。,只有当模型完全拟合时,LRI值达到1,但在实际应用中,LRI的值可以非常接近1,但不会等于1。
03 模型λ²统计
为了对logistic回归模型·进行有意义的解释,要求模型中所包含的自变量必须对因变量有显著的解释能力,也就是说所设模型必须要比零假设模型(即只包含常数项的模型)要好,在多元线性回归中,常用自由度分别为K和n-K-1的F检验(其中K是自变量的个数,n为样本规模)来检验“除常数项外的所有系数都等于0”的无关假设,而在logistic回归中服务于同一目的的检验却是似然比检验(likelihood ratio test),它可以用来检验logistic回归模型是否统计性显著,似然比统计量近似地服从λ²分布。
小结:以上就是对logistic回归模型进行评价的一些方法,我们可以根据这些方法在spss软件中进行判断我们所设的模型是否适当。下期我们将会用一个实例来检验我们的模型。
关于Logistic回归的其它基础内容,小伙伴们可以回顾其它几篇推文。
本期参考: Logistic回归模型方法与应用,作者王济川、郭志刚
本文禁止转载或摘编
本文为我原创
1
4
分享
资料目录:
1 LogisticRegression()参数解析
2 sklearn-GridSearchCV,CV调节超参使用方法
=====================================================================
C : float, optional (default=10)
Inverse of regularization strength; must be a positive float Like in support vector machines, smaller values specify stronger regularization
C为正则化系数λ的倒数,必须为正数,默认为1。和SVM中的C一样,值越小,代表正则化越强。
class_weight : {dict, ‘auto’}, optional 考虑类不平衡,类似于代价敏感
Over-/undersamples the samples of each class according to the given weights If not given, all classes are supposed to have weight one The ‘auto’ mode selects weights inversely proportional to class frequencies in the training set
penalty : 正则化参数:’l1’,’l2’默认是’l2’。
在调参时如果我们主要的目的只是为了解决过拟合,一般penalty选择L2正则化就够了。但是如果选择L2正则化发现还是过拟合,即预测效果差的时候,就可以考虑L1正则化。 另外,如果模型的特征非常多,我们希望一些不重要的特征系数归零,从而让模型系数稀疏化的话,也可以使用L1正则化。
penalty参数的选择会影响我们损失函数优化算法的选择。即参数solver的选择。
solver: 逻辑回归损失函数的优化方法,有四种算法供选择
‘newton-cg’:坐标轴下降法来迭代优化损失函数
‘lbfgs’:, ‘liblinear’:牛顿法变种
‘sag’:随机梯度下降
其中‘newton-cg’, ‘lbfgs’, ‘sag’只适用于L2惩罚项的优化,liblinear两种都适用。因为L1正则化的损失函数不是连续可导的,而{‘newton-cg’, ‘lbfgs’,‘sag’}这三种优化算法时都需要损失函数的一阶或者二阶连续导数。而‘liblinear’并没有这个依赖。
当样本数目比较大时,使用sag效果较好,因为它只使用一部分样本进行训练。
a) liblinear:使用了开源的liblinear库实现,内部使用了坐标轴下降法来迭代优化损失函数。
b) lbfgs:拟牛顿法的一种,利用损失函数二阶导数矩阵即海森矩阵来迭代优化损失函数。
c) newton-cg:也是牛顿法家族的一种,利用损失函数二阶导数矩阵即海森矩阵来迭代优化损失函数。
d) sag:即随机平均梯度下降,是梯度下降法的变种,和普通梯度下降法的区别是每次迭代仅仅用一部分的样本来计算梯度,适合于样本数据多的时候。
小结:
multi_class
{‘ovr’, ‘multinomial’}, default: ‘ovr’
OvR的思想很简单,无论你是多少元逻辑回归,我们都可以看做二元逻辑回归。multinomial相对复杂。
官网有个对比两种分类方式的例子: 链接地址 。
class_weight :类型权重参数。
用于标示分类模型中各种类型的权重。默认不输入,即所有的分类的权重一样。选择‘balanced’自动根据y值计算类型权重。自己设置权重,格式:{class_label: weight}。例如0,1分类的er'yuan二元模型,设置class_weight={0:09, 1:01},这样类型0的权重为90%,而类型1的权重为10%。
n_jobs=1 : 并行数
int:个数;-1:跟CPU核数一致;1:默认值。
其他参数:
dual=False: 对偶或者原始方法。Dual只适用于正则化相为l2的‘liblinear’的情况,通常样本数大于特征数的情况下,默认为False。
fit_intercept=True: 是否存在截距,默认存在。
intercept_scaling=1: 仅在正则化项为‘liblinear’,且fit_intercept设置为True时有用。
max_iter=100: 算法收敛的最大迭代次数。
tol=00001: 迭代终止判据的误差范围。
verbose=0: 日志冗长度int:冗长度;0:不输出训练过程;1:偶尔输出; >1:对每个子模型都输出
warm_start=False: 是否热启动,如果是,则下一次训练是以追加树的形式进行(重新使用上一次的调用作为初始化)。布尔型,默认False。
LogisticRegression类的常用方法
fit(X, y, sample_weight=None)
拟合模型,用来训练LR分类器,其中X是训练样本,y是对应的标记向量
返回对象,self。
fit_transform(X, y=None, fit_params)
fit与transform的结合,先fit后transform。返回X_new:numpy矩阵。
predict(X)
用来预测样本,也就是分类,X是测试集。返回array。
predict_proba(X)
输出分类概率。返回每种类别的概率,按照分类类别顺序给出。如果是多分类问题,multi_class="multinomial",则会给出样本对于每种类别的概率。
返回array-like。
score(X, y, sample_weight=None)
返回给定测试集合的平均准确率(mean accuracy),浮点型数值。
对于多个分类返回,则返回每个类别的准确率组成的哈希矩阵。
上述内容汇总自不同网站,但多数内容来自于这个链接:>
feixiaolin
1stop代码及结果
----------------------------------------
Variable x, y;
Parameters p(1:5);
Function y=p1+(p2-p1)/(1+(x/p4)^p5);
data;
2 1454261364
4 2345977011
6 3054494382
8 3634482759
12 4874011299
24 7400568182
相关系数(R): 0999845621976736
相关系数之平方(R^2): 0999691267786047
决定系数(DC): 0999691267786047
卡方系数(Chi-Square): 00102805241291807
F统计(F-Statistic): 129522119507491
参数 最佳估算
1初始值是这么定的:
>> [c,d]=solve('c/(1+(c/602-1)exp(-5d))=672','c/(1+(c/602-1)exp(-20d))=909','c','d')
c =
62457687920920008140916437719297-16291275002135204129081793780683i
62457687920920008140916437719297+16291275002135204129081793780683i
24195986840768380162085441918688
d =
-95675170588036288272009149214033e-1+43712460153973020393407947582405i
-95675170588036288272009149214033e-1-43712460153973020393407947582405i
29854891132649696390901254874996e-1
2fun的函数形式就是logistic函数。
3b1 =
1809871 00336
可以改成这样,效果一样:
%==============
[c,d]=solve('c/(1+(c/602-1)exp(-5d))=672','c/(1+(c/602-1)exp(-20d))=909','c','d') ;%求初始参数
t=0:51; %令1954年为初始年
x=[602 615 628 646 66 672 662 659 673 691 704 725 745 763 785 807 83 852 871 892 909 924 937 95 96259 975 98705 1001 101654 103008 104357 105851 1075 1093 111026 112704 114333 115823 117171 118517 11985 121121 122389 123626 124761 125786 126743 127627 128453 129227 129988 130756];
b0=[ eval(c(3)), eval(d(3))]; %初始参数值
fun=inline('b(1)/(1+(b(1)/602-1)exp(-b(2)t))','b','t');
[b1,r1,j1]=nlinfit(t,x,fun,b0)
y1=fun(b1,t);%非线性拟合的方程
plot(t+1954,x,'',t+1954,y1) %对原始数据与曲线拟合后的值作图
grid
R1=r1^2;
R2=(x-mean(x))^2;
R=1-R1/R2 %可决系数
W=sum(abs(r1)) %残差绝对值之
%==============
以上就是关于MATLAB建模方法有哪些全部的内容,包括:MATLAB建模方法有哪些、如何用MATLAB拟合Logistic曲线求解曲线方程的三个特征参数、如何用spss做logistic回归分析等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)