专栏首页不仅仅是python机器学习-Logistic回归(Logistic Regression)案例

机器学习-Logistic回归(Logistic Regression)案例

微信公众号:yale记 关注可了解更多的教程问题或建议,请公众号留言。

背景介绍

不要被它的名字弄糊涂!它是一种分类而非回归算法。它用于根据给定的自变量集估计离散值(二进制值,如0/1,yes/no,true/false)。简单来说,它通过将数据拟合到logit函数来预测事件发生的概率。因此,它也被称为logit回归。由于它预测概率,因此其输出值介于0和1之间(如预期的那样)。

再次,让我们通过一个简单的例子来尝试理解这一点。

假设你的朋友给你一个难题来解决。只有2个结果场景 - 要么你解决它,要么你没解决。现在想象一下,你正在获得各种各样的谜题/测验,试图了解你擅长哪些科目。这项研究的结果将是这样的 - 如果给你一个基于三角测量的十年级问题,你有70%的可能解决它。另一方面,如果是第五级历史问题,获得答案的概率仅为30%。这就是Logistic回归为您提供的。

在数学领域,结果的对数几率被建模为预测变量的线性组合:

odds= p/ (1-p) = probability of event occurrence / probability of not event occurrence
ln(odds) = ln(p/(1-p))
logit(p) = ln(p/(1-p)) = b0+b1X1+b2X2+b3X3....+bkXk

以上,p是存在感兴趣特征的概率。它选择的参数最大化观察样本值的可能性,而不是最小化误差平方和(如普通回归)。

现在,您可能会问,为什么要使用log函数?为简单起见,我们只是说这是复制步进函数的最佳数学方法之一。我可以详细介绍,但这会超出本文的目的。

来看使用python的scikit-learn完成的Logistic回归案例:

代码块

# ## 使用Scikit-learn的LogisticRegression完成测试案例
# In[30]:
import pandas as pd
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score
# ### 读取训练数据和测试数据集
# In[31]:
train_data = pd.read_csv('train-data.csv')
test_data = pd.read_csv('test-data.csv')
print(train_data.head())
# ### 打印训练数据和测试数据形状
# In[32]:
print('Shape of training data :',train_data.shape)
print('Shape of testing data :',test_data.shape)
# In[33]:
#现在,我们需要预测测试数据中缺少的目标变量
# target变量 - Survived
#在训练数据上分离独立变量和目标变量
train_x = train_data.drop(columns=['Survived'],axis=1)
train_y = train_data['Survived']
#在测试数据上分离独立变量和目标变量
test_x = test_data.drop(columns=['Survived'],axis=1)
test_y = test_data['Survived']
model = LogisticRegression(solver='liblinear')
model.fit(train_x,train_y)
# In[34]:
#训练模型的系数
print('Coefficient of model :', model.coef_)
#拦截模型
print('Intercept of model',model.intercept_)
# In[35]:
# 预测训练数据集
predict_train = model.predict(train_x)
# 训练数据集得分
accuracy_train = accuracy_score(train_y,predict_train)
print('accuracy_score on train dataset : ', accuracy_train)
# In[36]:
# 预测测试数据集
predict_test = model.predict(test_x)
# 测试数据集得分
accuracy_test = accuracy_score(test_y,predict_test)
print('accuracy_score on test dataset : ', accuracy_test)

本文分享自微信公众号 - yale记(python_yale_learning),作者:yale记

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-09-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 机器学习-决策树(Decision Tree)案例

    这是我最喜欢的算法之一,我经常使用它。它是一种监督学习算法,主要用于分类问题。令人惊讶的是,它适用于分类和连续因变量。在该算法中,我们将总体分成两个或更多个同类...

    亚乐记
  • 机器学习-K邻近算法(KNN)简介

    在我们遇到的所有机器学习算法中,KNN很容易成为最简单的学习方法。 尽管它很简单,但是事实证明它在某些任务上非常有效(正如您将在本文中看到的那样)。

    亚乐记
  • 机器学习-线性回归(Linear Regression)案例

    线性回归用于根据连续变量估算实际值(房屋成本,看涨期权,总销售额等)。在这里,我们通过拟合最佳线来建立独立变量和因变量之间的关系。该最佳拟合线称为回归线,并由线...

    亚乐记
  • Doc2vec预测IMDB评论情感

    本文内容源自于国外2015年的一篇博客,中文翻译可以在伯乐在线看到。可以整体了解一些word2vec和doc2vec的使用方法,但是由于时间过去很久了,gens...

    听城
  • 用线性回归和LSTM做股价预测

    杨熹
  • (数据科学学习手札17)线性判别分析的原理简介&Python与R实现

    之前数篇博客我们比较了几种具有代表性的聚类算法,但现实工作中,最多的问题是分类与定性预测,即通过基于已标注类型的数据的各显著特征值,通过大量样本训练出的模型,来...

    Feffery
  • Sklearn-train_test_split随机划分训练集和测试集

    sklearn.model_selection.train_test_split随机划分训练集和测试集 官网文档: 一般形式: train_test...

    学到老
  • Sklearn-train_test_split随机划分训练集和测试集

    sklearn.model_selection.train_test_split随机划分训练集和测试集 官网文档: 一般形式: train_test...

    学到老
  • TensorFlow2 开发指南 | 01 手写数字识别快速入门

    在上一个专栏【TF2.0深度学习实战——图像分类】中,我分享了各种经典的深度神经网络的搭建和训练过程,比如有:LeNet-5、AlexNet、VGG系列、Goo...

    AI菌
  • pytorch-Train-Val-Test划分(上)

    本节介绍的是Train/Val/Test部分的划分,合理的划分会有效地减少under-fitting和over-fitting现象。

    用户6719124

扫码关注云+社区

领取腾讯云代金券