基于鸢尾花数据集的逻辑回归分类实践
2024.01.29 09:28浏览量:12简介:本文将通过使用鸢尾花数据集,演示如何实现逻辑回归分类,并通过实例代码和图表解释整个过程。
在机器学习中,逻辑回归是一种常用的分类算法。它通过将线性回归的输出转换为概率形式,实现对二分类或多分类问题的处理。在本次实践中,我们将使用鸢尾花数据集,它是机器学习领域中非常经典的数据集之一。我们将通过实例代码和图表,解释整个逻辑回归分类的过程。
数据集准备
首先,我们需要导入必要的库和模块,包括pandas
用于数据处理,matplotlib
用于数据可视化,以及sklearn
中的LogisticRegression
用于逻辑回归分类。
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn import metrics
接下来,我们将使用pandas
从sklearn
中读取鸢尾花数据集。该数据集包含了150个鸢尾花样本,每个样本有四个特征:萼片长度、萼片宽度、花瓣长度和花瓣宽度。目标变量是鸢尾花的类别标签,其中0表示山鸢尾,1表示杂色鸢尾,2表示维吉尼亚鸢尾。
iris = pd.read_csv('iris.csv')
数据预处理
在训练模型之前,我们需要对数据进行预处理。首先,我们将缺失值处理为该列的平均值。然后,我们将目标变量转换为独热编码格式,以便能够处理多分类问题。
# 填充缺失值
iris.fillna(iris.mean(), inplace=True)
# 转换目标变量为独热编码格式
from sklearn.preprocessing import OneHotEncoder
encoder = OneHotEncoder(sparse=False)
iris['target'] = encoder.fit_transform(iris['target'].values.reshape(-1, 1))
划分训练集和测试集
接下来,我们将数据集划分为训练集和测试集,以便评估模型的性能。我们将使用train_test_split
函数进行划分。
X = iris.drop('target', axis=1) # 特征矩阵
y = iris['target'] # 目标变量
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 划分训练集和测试集
模型训练
现在我们可以开始训练逻辑回归模型了。我们将使用LogisticRegression
类来创建模型对象,并使用训练数据对其进行拟合。
model = LogisticRegression() # 创建模型对象
model.fit(X_train, y_train) # 使用训练数据拟合模型
模型评估
为了评估模型的性能,我们将使用测试集进行预测,并计算分类准确率、混淆矩阵和精度等指标。
y_pred = model.predict(X_test) # 使用模型进行预测
accuracy = metrics.accuracy_score(y_test, y_pred) # 计算分类准确率
print(f'分类准确率: {accuracy}') # 输出分类准确率
发表评论
登录后可评论,请前往 登录 或 注册