今天大概看了一下还没做的ps1,里面第一个道题的数据集正好可以拿来做一次逻辑回归的实战,正好学到现在还没正儿八经写过代码,所以打算拿这个练练手,具体数据集我新建了一个GitHub账号给大家分享,里面也有详细的代码和一些思路:
https://github.com/cyr429/Machine-Learning-master/tree/master/ML-others/LogisticRegression01
这里说一下要用到的知识都是来自这次的lecture,请先熟知基本知识再进行下面的实战:
https://blog.csdn.net/cyr429/article/details/102458430
在逻辑回归中注意他推导式子的时候给定的假设是y的取值为0或1,但是数据集里是-1或1,1是正样本,-1是负样本,解决办法是再推导一次或者转换数据集,我比较懒选了后者,毕竟一句clip就行了。
(其实前者也不麻烦,这个时候有 ,然后再求出对数似然函数再求导就好了)
为了保证theta0项的存在我使用hstack往x数据的左边加了一列1,这样就满足了:
(因为x0=1)
我们要用到的式子主要是:
和SGD更新规则:
其实可供选择的更新规则不止SGD一种,对于SGD,BGD和牛顿法的选择请移步:
https://blog.csdn.net/cyr429/article/details/103090851
原理就这么多,具体代码等请移步GitHub:
https://github.com/cyr429/Machine-Learning-master/tree/master/ML-others/LogisticRegression01