快捷搜索:  汽车  科技

logistic回归算法的用途(机器学习-Logistic回归)

logistic回归算法的用途(机器学习-Logistic回归)代码块来看使用python的scikit-learn完成的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函数?为简单起见,我们只是说这是复制步进函数的最佳数学方法之一。我可以详细介绍,但这会超出本文的目的。

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回归案例:

logistic回归算法的用途(机器学习-Logistic回归)(1)

logistic回归算法的用途(机器学习-Logistic回归)(2)

logistic回归算法的用途(机器学习-Logistic回归)(3)

代码块


# ## 使用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)

关注公号

下面的是我的公众号二维码,欢迎关注:

logistic回归算法的用途(机器学习-Logistic回归)(4)

猜您喜欢: