Python实现鸢尾花分类:逻辑回归模型实战与代码解析
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)
代码解析
-
导入必要的库: -
numpy用于数值计算; -load_iris用于加载鸢尾花数据集; -LogisticRegression用于创建逻辑回归模型; -train_test_split用于划分数据集。 -
accuracy_score函数: 定义一个函数来计算模型准确率,通过比较真实标签 (y_true) 和预测标签 (y_pred) 计算预测正确的样本数,然后除以总样本数得到准确率。 -
加载和预处理数据: - 加载鸢尾花数据集,并提取特征矩阵
x和目标向量y。 - 为了简化问题,只保留类别1和类别2的数据,并将类别标签合并为0和1。 -
划分训练集和测试集: 使用
train_test_split函数将数据集划分为训练集 (75%) 和测试集 (25%),random_state用于确保每次运行代码时划分结果一致。 -
创建和训练模型: - 创建一个逻辑回归模型对象
lr。 - 使用训练集数据 (x_train,y_train) 对模型进行训练,即学习数据中的模式。 -
预测: 使用训练好的模型对测试集数据 (
x_test) 进行预测,得到预测标签y_pred。 -
评估模型: - 打印模型的权重系数 (
lr.coef_) 和截距 (lr.intercept_)。 - 打印真实标签 (y_test) 和预测标签 (y_pred) 以供对比。 - 使用accuracy_score函数计算模型在测试集上的准确率,并打印结果。
总结
本篇博客以鸢尾花分类为例,介绍了如何使用Python实现逻辑回归模型,并对代码进行了详细解析。通过学习本篇博客,你应该能够理解逻辑回归的基本原理,并能够使用Python代码实现简单的分类任务。
原文地址: https://www.cveoy.top/t/topic/fvFz 著作权归作者所有。请勿转载和采集!