1文轻松入门逻辑回归!

我整理了《BAT常见机器学习算法面试题1000题》,供大家学习和参考。资源获取方式:

(1)打开v搜索:1号程序员,并关注。

(2)在对话框中输入:E001,即可获取资源地址。

前言

在机器学习中,分类算法是一种用于将数据点划分到不同类别的技术。逻辑回归是其中一种常用的方法之一。其核心思想是通过对输入特征进行加权组合,再利用激活函数将数据映射到一个概率范围内,进而进行分类判定,可用于解决预测、风险评估和决策支持等许多实际问题。

逻辑回归方法的优势之一在于其简单的实现方式。通过定义一个合适的目标函数(例如对数损失函数)并利用优化算法(如梯度下降),我们可以对模型进行训练和参数调整,以使其能够更好地拟合数据并进行准确的分类,能够适应大规模数据和实时应用场景。在今天的推文中,给大家介绍一下利用scikit-learn实现逻辑回归的示例。

场景介绍

Python的scikit-learn库最令人惊叹的是它具有一个四步建模模式,使得编写机器学习分类器变得容易。在本推文中,利用逻辑回归来对数字图像进行标签预测。下方的图像展示了来自MNIST数据集的一些训练数字(观测值),其标签已知(标签0-9)。使用逻辑回归训练模型后,可以利用该模型对给定图像进行标签预测(标签0-9)。

数据加载

digits数据集是scikit-learn提供的一个数据集,不需要从外部网站下载任何文件。下面的代码将加载digits数据集。

from sklearn.datasets import load_digits
digits = load_digits()

现在您已经加载了数据集,可以使用以下命令查看数据集中有1797个图像和1797个标签。

# Print to show there are 1797 images (8 by 8 images for a dimensionality of 64)
print(“Image Data Shape” , digits.data.shape)
# Print to show there are 1797 labels (integers from 0–9)
print("Label Data Shape", digits.target.shape)

数据展示

这一部分主要是为了展示图像和标签的样子。通过可视化数据,您可以更好地了解正在处理的数据。

import numpy as np 
import matplotlib.pyplot as plt
plt.figure(figsize=(20,4))
for index, (image, label) in enumerate(zip(digits.data[0:5], digits.target[0:5])):
 plt.subplot(1, 5, index + 1)
 plt.imshow(np.reshape(image, (8,8)), cmap=plt.cm.gray)
 plt.title('Training: %i\n' % label, fontsize = 20)

数据划分

下面的代码执行了一个训练集和测试集的划分,将数据的75%划分为训练集,25%划分为测试集。这样做是为了确保我们的分类算法能够很好地泛化到新的数据。

from sklearn.model_selection import train_test_split
x_train, x_test, y_train, y_test = train_test_split(digits.data, digits.target, test_size=0.25, random_state=0)

数据建模

第一步:导入您想要使用的模型

在scikit-learn中,所有的机器学习模型都被实现为Python类。

from sklearn.linear_model import LogisticRegression

第二步:创建模型的实例:

# all parameters not specified are set to their defaults
logisticRegr = LogisticRegression()

第三步:在数据上训练模型,并存储从数据中学到的信息。

logisticRegr.fit(x_train, y_train)

第四步:对新数据进行预测。

predictions = logisticRegr.predict(x_test)

模型评估

准确率:(正确预测的样本数)/(总样本数)

# Use score method to get accuracy of model
score = logisticRegr.score(x_test, y_test)
print(score)

混淆矩阵:是一个常用的表格,用于描述分类模型(或“分类器”)在一组已知真实值的测试数据上的性能。在本节中,将使用Seaborn库对混淆矩阵进行可视化展示。

import matplotlib.pyplot as plt
import seaborn as sns
from sklearn import metrics

cm = metrics.confusion_matrix(y_test, predictions)
print(cm)

plt.figure(figsize=(9,9))
sns.heatmap(cm, annot=True, fmt=".3f", linewidths=.5, square = True, cmap = 'Blues_r')
plt.ylabel('Actual label')
plt.xlabel('Predicted label')
all_sample_title = 'Accuracy Score: {0}'.format(score)
plt.title(all_sample_title, size = 15)

写在最后

逻辑回归是最常用的机器学习分类模型,原理简单,但是在实际场景中,往往非常好用。本篇推文给出了利用scikit-learn库进行逻辑回归分类的案例,小伙伴们记得“点赞、收藏、关注”三连,随时查看。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值