美文网首页
学习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为阶来分类,具体取阶需要根据具体的惩罚机制。

相关文章

  • sklearn 转载

    scikit-learn 线性回归算法库小结scikit-learn 逻辑回归类库使用小结scikit-learn...

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

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

  • 回归算法学习

    回归算法是机器学习中的经典算法之一,本文是对学习线性回归和逻辑回归算法进行的总结,线性回归与逻辑回归算法解决的分别...

  • 算法概述-02

    1.逻辑回归和线性回归的联系和区别: 逻辑回归和线性回归的都是广义的线性回归。 线性回归是根据最小二乘法来建模,逻...

  • 机器学习

    随机森林 参考文章 scikit-learn随机森林调参小结 用scikit-learn和pandas学习线性回归...

  • demo1: Tensorflow实现Linear regres

    Linear Regression 回归主要分为线性回归和逻辑回归。线性回归主要解决连续值预测问题,逻辑回归主要解...

  • 2 逻辑回归

    逻辑回归是线性回归的变形,看了很多机器学习书籍,吴恩达的课程对线性回归和逻辑回归的讲解非常清晰,原理性和推导都很好...

  • Task 01|基于逻辑回归的分类预测

    知识背景 关于逻辑回归的几个问题 逻辑回归相比线性回归,有何异同? 逻辑回归和线性回归最大的不同点是逻辑回归解决的...

  • 线性回归和逻辑回归

    线性回归和逻辑回归是机器学习中基础又比较常用的内容。线性回归主要用来解决连续值预测的问题,而逻辑回归用来解决分类的...

  • 通俗地说逻辑回归【Logistic regression】算法(

    在说逻辑回归前,还是得提一提他的兄弟,线性回归。在某些地方,逻辑回归算法和线性回归算法是类似的。但它和线性回归最大...

网友评论

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

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