1文轻松入门逻辑回归!
  IwAQx7pW1xBE 2023年11月02日 51 0

福利:

完整机器学习/数据挖掘面试题可以点击这里获取:完整资料下载地址

前言

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

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

场景介绍

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

1文轻松入门逻辑回归!_逻辑回归

数据加载

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)

1文轻松入门逻辑回归!_逻辑回归_02

数据划分

下面的代码执行了一个训练集和测试集的划分,将数据的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)

1文轻松入门逻辑回归!_逻辑回归_03

写在最后

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

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
IwAQx7pW1xBE