关于机器学习中的IRLS算法的python实现

本文介绍了在机器学习中使用迭代重权重最小二乘法(IRLS)实现逻辑回归的过程。由于逻辑函数的非线性,IRLS采用迭代方式更新权重,其中权重矩阵R是对角线元素为y*(1-y)的矩阵。文中给出了irls函数的定义,并展示了通过该算法得到的线性边界。完整代码可在GitHub找到。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在做机器学习的作业,要求是实现IRLS算法用于logistic regression, 并且画出来scatter。


先回顾一下IRLS算法,IRLS是iterative reweighted least squares,和OSL相比起来,多了两个单词iterative 和 reweighted。先说一下iterative

为什么要iterative呢?书上(Pattern Recognition and Machine learning by Bishop)的原话是"For logistic regression, there is no longer a closed-form solution, due to the nonlinearity of the logistic sigmoid function",  也就是说这里不像OLS那样一步到位,而是一种online renew的方式去求w。具体的公式如下(略大。。):



------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

R是什么呢?R是一个n by n 的matrix(n is the size of your dataset), what is more,R is a diagonal matrix,对角元素Rii = yi*(1-yi).


注意这里的y是每次更新出来的output,y=W*X+W0。这就是我要强调的第二点,reweighted。之所以是reweighted,是因为对角元素在每次更新的时候都是要变化的。


好了, 废话不多说了,下面开始码了:

首先定义一个irls的方法:

maxiter是最大的循环次数,当然如果前后两次的W差值低于我们的threshold,就会break这个loop

def IRLS(y, X, maxiter, w_init&
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值