Python实现鸢尾花分类:逻辑回归模型实战与代码解析

概述

本篇博客将通过一个简单的例子——鸢尾花分类,来讲解如何使用Python实现逻辑回归模型,并对代码进行详细解析。

代码实现pythonimport numpy as npfrom sklearn.datasets import load_irisfrom sklearn.linear_model import LogisticRegressionfrom sklearn.model_selection import train_test_split

def accuracy_score(y_true, y_pred): '''计算模型准确率''' correct = (y_pred == y_true).astype(np.int) return np.average(correct)

加载鸢尾花数据集iris = load_iris()x, y = iris.data, iris.target

数据预处理:保留类别1和2,并将类别合并x = x[y != 0, 2:]y = y[y != 0]y[y == 1] = 0y[y == 2] = 1

划分训练集和测试集x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.25, random_state=0)

创建逻辑回归模型并训练lr = LogisticRegression()lr.fit(x_train, y_train)

预测y_pred = lr.predict(x_test)

打印结果print('权重:', lr.coef_)print('偏置:', lr.intercept_)print('真实值:', y_test)print('预测值:', y_pred)

计算准确率accuracy = accuracy_score(y_test, y_pred)print('准确率:', accuracy)

代码解析

  1. 导入必要的库: - numpy 用于数值计算; - load_iris 用于加载鸢尾花数据集; - LogisticRegression 用于创建逻辑回归模型; - train_test_split 用于划分数据集。

  2. accuracy_score 函数: 定义一个函数来计算模型准确率,通过比较真实标签 (y_true) 和预测标签 (y_pred) 计算预测正确的样本数,然后除以总样本数得到准确率。

  3. 加载和预处理数据: - 加载鸢尾花数据集,并提取特征矩阵 x 和目标向量 y。 - 为了简化问题,只保留类别1和类别2的数据,并将类别标签合并为0和1。

  4. 划分训练集和测试集: 使用 train_test_split 函数将数据集划分为训练集 (75%) 和测试集 (25%),random_state 用于确保每次运行代码时划分结果一致。

  5. 创建和训练模型: - 创建一个逻辑回归模型对象 lr。 - 使用训练集数据 (x_train, y_train) 对模型进行训练,即学习数据中的模式。

  6. 预测: 使用训练好的模型对测试集数据 (x_test) 进行预测,得到预测标签 y_pred

  7. 评估模型: - 打印模型的权重系数 (lr.coef_) 和截距 (lr.intercept_)。 - 打印真实标签 (y_test) 和预测标签 (y_pred) 以供对比。 - 使用 accuracy_score 函数计算模型在测试集上的准确率,并打印结果。

总结

本篇博客以鸢尾花分类为例,介绍了如何使用Python实现逻辑回归模型,并对代码进行了详细解析。通过学习本篇博客,你应该能够理解逻辑回归的基本原理,并能够使用Python代码实现简单的分类任务。

Python实现鸢尾花分类:逻辑回归模型实战与代码解析

原文地址: https://www.cveoy.top/t/topic/fvFz 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录