机器学习算法的基础(使用Python和R代码)之 逻辑回归

2. Logistic回归

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

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

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

进入数学,结果的对数概率被建模为预测变量的线性组合。

odds= p/ (1-p) = 事件发生的可能性 / 事件不发生的可能性
ln(odds) = ln(p/(1-p))
logit( p) = ln(p/(1-p)) = b0+b1X1+b2X2+b3X3…+bkXk

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

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

在这里插入图片描述

python 代码
#Import Library
from sklearn.linear_model import LogisticRegression

#Assumed you have, X (predictor) and Y (target) for training data set and x_test(predictor) of test_dataset
# Create logistic regression object
model = LogisticRegression()

# Train the model using the training sets and check score
model.fit(X, y)
model.score(X, y)

#Equation coefficient and Intercept
print('Coefficient: \n', model.coef_)
print('Intercept: \n', model.intercept_)

#Predict Output
predicted= model.predict(x_test)
R语言代码
x <- cbind(x_train,y_train)

# Train the model using the training sets and check score
logistic <- glm(y_train ~ ., data = x,family='binomial')
summary(logistic)

#Predict Output
predicted= predict(logistic,x_test)
此外..

为了改进模型,可以尝试许多不同的步骤:

去除特征
包含相互作用的方面
正则化技术
使用非线性模型

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值