美文网首页
学习scikit-learn:线性回归和逻辑回归

学习scikit-learn:线性回归和逻辑回归

作者: 碧影江白 | 来源:发表于2018-03-21 20:17 被阅读193次

    sklearn库是一个强大的机器学习库,几乎所有机器学习的算法都可以用这个库来实现,接下来我们开始学习这个库。

    线性模型

    如果我们想要处理线性回归的问题,先要导进来线性回归的模型。

    from sklearn.linear_model import LinearRegression
    lr = LinearRegression()
    

    即首先从线性的model中导入线性回归的模型。然后将其赋给变量lr,在赋给变量lr之后,模型就已经拿到手了,我们就可以拿来使用了。
    接下来我们要做的是训练数据,使数据拟合这个线性模型,使用的方法为:

    lr.fit(inputs, outputs)
    

    inputs:输入的数据,通常来说是一个m,n的矩阵,m代表样本的个数,n则是一个样本中有多少个特征。
    outputs:标签数据,即分类信息,可能是列向量的形式(单标签),也可能是矩阵的形式(多标签)。
    完成了训练操作后就可以进行预测了,预测函数:

    lr.predict(test)
    

    test是需要预测的数据,特征数目必须与inputs中的保持一致。

    但是简单只使用线性回归,得到的结果只是一个简单的线性方程,如图:(红色的是训练的数据,线性回归后的结果则是蓝色的数据) 我们计算误差的时候,经常使用均方误差的方式:

    即每一个计算出的值减去正确的值平方后相加,然后再除以数据的项数,在sklearn中提供了参数:

    from sklearn.metrics import mean_squared_error
    mse = mean_squared_error(y_, y)
    print(mse)
    

    首先从metrics模块中导出均方误差的项,然后就可以求解误差了。
    y_:正确的标签结果
    y:计算出的结果,即lr.predict(test)。‘

    y_和y的顺序没有规定,可以调换。
    如果想要得到w和b的值,只需要调用:

    lr.coef_         #w
    lr.intercept_    #b
    

    逻辑回归

    逻辑回归是应用非常广泛的一个分类机器学习算法,它将数据拟合到一个logit函数(或者叫做logistic函数)中,从而能够完成对事件发生的概率进行预测。

    对于两类的分类问题,线性回归往往不满足要求,所以我们引入了逻辑回归: 如图,逻辑回归的核心函数为:

    对于线性回归wx的结果,我们做两个步骤:
    1、将所有得分值wx都转换为正值,这里采用指数次幂exp(t)
    2、对于每一个类别的得分都压缩到0~1的区间上,这里是一个概率的问题,即:t/(t+1)

    sigmoid函数的图像为:

    然后讨论怎么使用sklearn实现它们:·

    from sklearn.linear_model import LogisticRegression
    logist_model = LogisticRegression()
    
    logist_model.fit(inputs, labels)
    

    可以看出,这和线性回归是很相似的,都是在线性model中导入逻辑回归的模型,然后赋给变量,再进行训练。
    然而它们的不同在这里:

    pre_probs = logist_model.predict_log_proba(tests)
    print(pre_probs[:,1])
    print(pre_probs[:,0])
    
    pre_labels = logist_model.predict(tests)
    print(pre_labels)
    
    当采用predict_log_proba的方法时,得到的是一个概率,pre_probs[:,1]代表归类为1的概率,而pre_probs[:,0]代表归类为0的概率,得到的图像是这样的: 而predict函数则得到的是一个直接的0,1分类,得到的分类要么是0要么是1:

    这个和sigmoid函数的图像是有关系的,我们假设归类为1的概率大于0.5则为1,小于0.5为0,就可以以0.5为阶来分类,具体取阶需要根据具体的惩罚机制。

    相关文章

      网友评论

          本文标题:学习scikit-learn:线性回归和逻辑回归

          本文链接:https://www.haomeiwen.com/subject/wbknqftx.html