学习了Logistics回归的理论,并且改进了梯度上升算法之后,这一节将算法应用到实例中去,即使用Logistics回归从疝气病症来预测病马的死亡率的问题。
1 问题背景
现有一个数据集中包含368个样本和28个特征。该数据集中包含了医院检测马疝病的一些指标,有的指标比较主观,有的指标难以测量,例如马的疼痛级别。另外需要说明的是,除了部分指标主观和难以测量外,该数据还存在一个问题,数据集中有30%的值是缺失的。下面将首先介绍如何处理数据集中的数据缺失问题,然后再利用Logistic回归和随机梯度上升算法来预测病马的生死。
2 准备数据
在给定的数据集中,有一些样本存在数据缺失,但是剩下的数据还有一定的利用价值,下面给出了一些可以采用的处理数据的办法:
- 使用可用特征的均值来填补缺失值;
- 使用特殊值来填补缺失值,如-1;
- 忽略有缺失值的样本;
- 使用相似样本的均值添补缺失值;
- 使用另外的机器学习算法预测缺失值。
对数据集进行预处理需要做两件事:一,如果缺失值是特征,用一个实数值来替换,在这里我们选择0来替换缺失值;二是如果缺失值是类标签,那么将这条数据丢弃,因为很难找到合适的值来替换。
3 算法实现
def classifyVector