【机器学习算法】之logistic回归

为了加深对机器学习算法的理解,以及熟悉python,pandas,scikit-learn。现在自己实现一下主要的机器学习算法,程序记录如下:

logistic回归算法的实现程序:

from numpy import *
from sklearn import preprocessing  
from sklearn import cross_validation  

def load_data_set():
    data_set=[];label=[]
    file = open('testSet.txt')
    for line in file.readlines():
        tmp = line.strip().split('\t')
        tmp_list = [1.0,float(tmp[0]),float(tmp[1])]
        data_set.append(tmp_list)
        label.extend([int(tmp[2])])
    return data_set,label

def batch_update_params(data_set,label):
    fea_len = len(data_set[0])
    y=mat(label)
    w = ones((1,fea_len))
    data_mat=mat(data_set)
    max_iter = 500
    alpha=0.001
    for i in range(max_iter):
        y_hat = sign(data_mat,w)
        error = y-y_hat
        w = w + alpha*error*data_mat
    return w

def stog_update_params(data_set,label):
    fea_len = len(data_set[0])
    y=mat(label)
    w = ones((1,fea_len))
    data_mat=mat(data_set)
    m,n = shape(data_mat)
    max_iter = 200
    alpha=0.001
    for i in range(m):
        curr_data = data_mat[i]
        y_hat = sign(data_mat,w)
        error = y-y_hat
        w = w + alpha*error*curr_data
    return w

def sign(data_mat,w):
    return 1.0/(1+exp(-w*data_mat.transpose()))

注意点:需要利用numpy的mat函数将列表数据转换成矩阵,之后再进行运算。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值