机器学习逻辑回归鸢尾花
时间: 2025-04-01 14:24:01 浏览: 15
使用逻辑回归对鸢尾花数据集进行分类
以下是基于逻辑回归算法实现鸢尾花数据集分类的完整过程,包括加载数据、预处理、训练模型以及评估性能。
数据准备与导入库
首先需要引入必要的 Python 库并加载鸢尾花数据集:
import numpy as np
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import classification_report, accuracy_score
# 加载鸢尾花数据集
data = load_iris()
X = data.data
y = data.target
上述代码片段用于加载鸢尾花数据集,并将其分为特征矩阵 X
和目标向量 y
[^1]。
数据分割与标准化
为了验证模型的效果,通常会将数据划分为训练集和测试集。此外,由于逻辑回归对特征尺度敏感,因此需对其进行标准化处理:
# 将数据拆分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# 对特征进行标准化
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)
这里采用了标准缩放器 (StandardScaler
) 来调整特征值范围,使其均值接近零且方差为一,这有助于提高逻辑回归模型的收敛速度和精度[^2]。
训练逻辑回归模型
定义并拟合逻辑回归模型至训练数据上:
# 定义逻辑回归模型
model = LogisticRegression(max_iter=200, solver='lbfgs', multi_class='auto')
# 训练模型
model.fit(X_train_scaled, y_train)
此部分实现了多类别逻辑回归模型的构建,其中参数设置如下:
max_iter
: 控制最大迭代次数;solver
: 优化方法选择 L-BFGS;multi_class
: 自动检测适合的多分类策略[^4]。
模型评估
完成训练后,可以通过测试集来检验模型的表现:
# 预测测试集结果
y_pred = model.predict(X_test_scaled)
# 输出分类报告
class_report = classification_report(y_test, y_pred, target_names=data.target_names)
print("分类报告:\n", class_report)
# 准确率计算
accuracy = accuracy_score(y_test, y_pred)
print(f"模型准确率为: {accuracy:.2f}")
通过调用 classification_report
可获得详细的评价指标,如精确度 (Precision)、召回率 (Recall) 和 F1 值等;而 accuracy_score
则提供了整体准确性得分。
结果解释与可视化(可选)
如果希望进一步理解模型的工作机制,则可以尝试绘制决策边界图。然而需要注意的是,在高维空间下直接绘制定界线较为复杂,一般仅限于二维或三维情况下的简单展示[^3]。
相关推荐
















