Logistic回归算法
类别
类别:分类算法
学习方法
学习方法:有监督学习
数学知识
1、Logistic回归的数学表达式
2、Logistic回归的损失函数
数据集
·AiStudio:https://aistudio.baidu.com/aistudio/datasetdetail/110593
·sklearn库:load_iris()
代码
dataMat : 数据列表
labelMat : 标签列表
def sigmoid(inX):
return 1.0 / (1 + np.exp(-inX))
def gradAscent(dataMatIn, classLabels):
dataMatrix = np.mat(dataMatIn)
labelMat = np.mat(classLabels).transpose()
m, n = np.shape(dataMatrix)
alpha = 0.001
maxCycles = 500
weights = np.ones((n, 1))
for k in range(maxCycles):
h = sigmoid(dataMatrix * weights)
dY = labelMat - h
weights = weights + alpha * dataMatrix.transpose() * dY
return weights.getA()
详细内容
步骤
1、给X增加权重w(初始默权重为1),得到H(x)
2、将H(x)传递给sigmoid函数,得到预测的结果y’
3、将y’与训练集的标签值比较,得到误差dY
4、通过损失函数调整权重w的值
5、反复训练以到达误差dY最小
Logistic回归的数学表达式
通过阈值Logistic(x) = 0.5来分类
对应代码:
def sigmoid(intX):
return 1.0 /(1 + np.exp(-inX))
其中的inX为添加权重的的自变量,即预测的y值,得到的结果为通过simoid函数预测到的结果。
Logistic回归的损失函数
当预测值H(x)为1,实际标签值y为1,则L(x)为0,权重weight无序改变
当预测值H(x)为1,实际标签值y为0,则L(x)为+∞,权重weight需要减小, K= -1,
当预测值H(x)为0,实际标签值y为1,则L(x)为+∞,权重weight需要增加, k = 1
当预测值H(x)为0,实际标签值y为0,则L(x)为0,权重weight无序改变
优化
梯度下降算法
学习率:alpha
当weight需要增加, weight = weight + alphax
当weight需要减小,weight = weight - alphax
笔记内容为作者学习总结,欢迎大家交流探讨,如有侵权,联系作者。
更多内容请关注公众号:玖柒壹点点