这几天做了一个小作业,采用对数回归的方法进给定数集进行训练后再测试,我用的是机器学习实战中介绍的随机梯度上升的办法训练,由于接触机器学习和Python不久,这个主要是为了记录自己的学习之路,希望慢慢的从中得到进步。
一、实验原理
对于二分类任务,其输出标记0和1,但是线性回归模型中产生的预测z,因而需要将实值z转换为0/1值。在数学上正好有这样一个替代函数(Sigmoid函数):其在z等于0附近变得很陡,两侧则接近于0或1值。
为了实现对数几率回归分类器,我们将每个特征值与回归系数相乘后得到的结果值相加得到z,将这个总和代入Sigmoid函数中,进而就可以得到了一个范围在0与1之间的数值。并且任何大于0.5的数据归入1类,小于0.5的归入0类。即得到。因而本次实验的重点内容在于如何训练回归系数w上。实验给出了10000个57维样本,根据以上对数几率回归原理求出判别函数,然后根据判别函数既能对未知样本进行判别。
二、Logistic回归算法
针对于本次实验给的两类57维的样本各5000个,采取从中各随机抽取1000个样本组成2000个训练样本来进行对数几率回归训练剩余8000个样本对训练得到的分类器进行测试。
其中在数据的处理上,为了方便计算和分析,把第57列的标签值为2的改为0。由于在数据上没有缺失值等问题,所以不再做其他处理。
本次实验在训练回归系数的过程中,主要采取了随机梯