周志华西瓜书3.3maltab代码

为节省时间还是调用工具包叭【搞算法的,数据结构千万要自己过一遍】
MATLAB准备资料
Table官方文档
Multinomial logistic regression官方文档
第一篇文档好懂,第二篇文档讲的就是
1.例1分了三个类,这个函数直接就把第三类当分母,第一或第二类当分子,得出来的矩阵B,第一列就是ln(1st的/3rd的)的各项系数,第二列就是ln(2nd的/3rd的)的各项系数.之所以把3rd作为作为基准,是为了防止多元共线性(multicollinearity)。
2.stats.p的矩阵也是1st/3rd,2nd/3rd的p值列向量。小p值说明所有的变量都对结果有显著影响
3.stats.se的矩阵就是系数估计的标准误差(standard errors)矩阵。计算95%置信区间的1.96的系数应该是参考了正态分布表。是对称分布的,所以两个式子都采用1.96,分别在正态分布面积上余下0.025
4. 后面两个例子懒得看┓( ´∀` )┏,跳过,翻了翻参数说明。X是n乘p大小的,对应n个样本数,p个特征值。别给X加1向量,人家模型有考虑到;Y是n乘k或者n乘1大小的。link处理连接函数格式有:‘logit’ (default) | ‘probit’ | ‘comploglog’ | ‘loglog’


clear all
clc
ad = readtable('E:\01machineLearning\周志华\西瓜数据集3a.xlsx');
%按你储存路径导入数据,xlsx就是P89的西瓜数据集
[B,dev,stats] = mnrfit(ad{:,2:3},categorical(ad{:,4}));
%用花括号提取出数据,不再是table格式;用categorical转换
B

结果显示P59式(3.22)右边应该是
4.4289-3.1583*(X1)-12.5212*(X2)
看了matlab例子,三类是按出现顺序决定次序的。所以我这儿顺序是对的。当把标签“是或否”对应的“0或1”对调——自己试一试,只有符号变反。毕竟二分类

python的话,翻了下参考资料
statsmodels文档
Python实现逻辑回归
在这篇里面,虚拟变量就是拆出权重矩阵,这个矩阵由0,1组成。还有statemodels实现的逻辑回归需要显式指定

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值