基于鸢尾花数据集的逻辑回归分类实践

作者:谁偷走了我的奶酪2024.01.29 09:28浏览量:12

简介:本文将通过使用鸢尾花数据集,演示如何实现逻辑回归分类,并通过实例代码和图表解释整个过程。

机器学习中,逻辑回归是一种常用的分类算法。它通过将线性回归的输出转换为概率形式,实现对二分类或多分类问题的处理。在本次实践中,我们将使用鸢尾花数据集,它是机器学习领域中非常经典的数据集之一。我们将通过实例代码和图表,解释整个逻辑回归分类的过程。
数据集准备
首先,我们需要导入必要的库和模块,包括pandas用于数据处理,matplotlib用于数据可视化,以及sklearn中的LogisticRegression用于逻辑回归分类。

  1. import pandas as pd
  2. import matplotlib.pyplot as plt
  3. from sklearn.model_selection import train_test_split
  4. from sklearn.linear_model import LogisticRegression
  5. from sklearn import metrics

接下来,我们将使用pandassklearn中读取鸢尾花数据集。该数据集包含了150个鸢尾花样本,每个样本有四个特征:萼片长度、萼片宽度、花瓣长度和花瓣宽度。目标变量是鸢尾花的类别标签,其中0表示山鸢尾,1表示杂色鸢尾,2表示维吉尼亚鸢尾。

  1. iris = pd.read_csv('iris.csv')

数据预处理
在训练模型之前,我们需要对数据进行预处理。首先,我们将缺失值处理为该列的平均值。然后,我们将目标变量转换为独热编码格式,以便能够处理多分类问题。

  1. # 填充缺失值
  2. iris.fillna(iris.mean(), inplace=True)
  3. # 转换目标变量为独热编码格式
  4. from sklearn.preprocessing import OneHotEncoder
  5. encoder = OneHotEncoder(sparse=False)
  6. iris['target'] = encoder.fit_transform(iris['target'].values.reshape(-1, 1))

划分训练集和测试集
接下来,我们将数据集划分为训练集和测试集,以便评估模型的性能。我们将使用train_test_split函数进行划分。

  1. X = iris.drop('target', axis=1) # 特征矩阵
  2. y = iris['target'] # 目标变量
  3. X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 划分训练集和测试集

模型训练
现在我们可以开始训练逻辑回归模型了。我们将使用LogisticRegression类来创建模型对象,并使用训练数据对其进行拟合。

  1. model = LogisticRegression() # 创建模型对象
  2. model.fit(X_train, y_train) # 使用训练数据拟合模型

模型评估
为了评估模型的性能,我们将使用测试集进行预测,并计算分类准确率、混淆矩阵和精度等指标。

  1. y_pred = model.predict(X_test) # 使用模型进行预测
  2. accuracy = metrics.accuracy_score(y_test, y_pred) # 计算分类准确率
  3. print(f'分类准确率: {accuracy}') # 输出分类准确率

相关文章推荐

发表评论