Logistic回归(二)分类器的应用例子
转载请注明作者和出处:https://blog.csdn.net/weixin_45814668
微信公众号:qiongjian0427
知乎:https://www.zhihu.com/people/qiongjian0427
Github:https://github.com/qiongjian/Machine-learning/
运行环境:anaconda—jupyter notebook
Python版本: Python3.x
下图所示为数据集,提取码:ld9w。
训练算法:找到最佳参数
数据集有100个样本点,每个点包含两个数值型特征:X1和X2。
在此数据集上,我们将通过使用梯度上升法找到最佳回归系数,也就是拟合出Logistic回归模型的最佳参数。
梯度上升法的伪代码如下:
每个回归系数初始化为1
重复R次:
计算整个数据集的梯度
使用alpha*gradient更新回归系数的向量
返回回归系数
正式代码,在python中新建logRegres.ipynp的文件,输入下面代码。
from numpy import *
def loadDataSet():#函数功能为打开文本文件并逐行读取
dataMat = [];labelMat = []
fr = open('TestSet.txt')
for line in fr.readlines():
lineArr = line.strip().split()
# 为了方便计算,我们将 X0 的值设为 1.0 ,也就是在每一行的开头添加一个 1.0 作为 X0
dataMat.append([1.0, float(lineArr[0]), float(lineArr[1])])
labelMat.append(int(lineArr[2]))
return dataMat, labelMat
def sigmoid(inX):
return 1.0/(1+exp(-inX))
#输入数据特征与数据的类别标签
def gradAscent(dataMatIn, classLabels):
#转换为numpy型
dataMatrix = mat(dataMatIn)