Logistic回归和Sigmoid函数分类中的最大似然估计

在讲Logistic回归前,先具体说明一下什么是最大似然估计,可以参考最大似然估计学习总结------MadTurtle

Logistic回归和Sigmoid函数分类中的最大似然估计_第1张图片Logistic回归和Sigmoid函数分类中的最大似然估计_第2张图片Logistic回归和Sigmoid函数分类中的最大似然估计_第3张图片Logistic回归和Sigmoid函数分类中的最大似然估计_第4张图片Logistic回归和Sigmoid函数分类中的最大似然估计_第5张图片Logistic回归和Sigmoid函数分类中的最大似然估计_第6张图片Logistic回归和Sigmoid函数分类中的最大似然估计_第7张图片Logistic回归和Sigmoid函数分类中的最大似然估计_第8张图片Logistic回归和Sigmoid函数分类中的最大似然估计_第9张图片Logistic回归和Sigmoid函数分类中的最大似然估计_第10张图片

梯度上升算法的代码如下:

def sigmoid(inX):
    return 1.0/(1+exp(-inX))

def gradAscent(dataMatIn, classLabels):
    dataMatrix = mat(dataMatIn)             #convert to NumPy matrix
    labelMat = mat(classLabels).transpose() #convert to NumPy matrix
    m,n = shape(dataMatrix)
    alpha = 0.001
    maxCycles = 500
    weights = ones((n,1))
    for k in range(maxCycles):              #heavy on matrix operations
        h = sigmoid(dataMatrix*weights)     #matrix mult
        error = (labelMat - h)              #vector subtraction
        weights = weights + alpha * dataMatrix.transpose()* error #matrix mult
    return weights

参考:

最大似然估计学习总结------MadTurtle

对线性回归,logistic回归和一般回归的认识 

2010年龙星计划课件

《机器学习实战》



你可能感兴趣的:(机器学习)