鸢尾花数据集的逻辑回归分析

鸢尾花数据集是机器学习领域中一个非常著名的数据集,它包含了150个样本,每个样本有四个特征:萼片长度、萼片宽度、花瓣长度和花瓣宽度。这些样本分为三个类别,分别是山鸢尾、变色鸢尾和维吉尼亚鸢尾。在本分析中,仅使用萼片长度和宽度这两个维度的数据,并通过逻辑回归模型来分析数据点的分类情况。

逻辑回归是一种广泛使用的线性分类算法,它通过学习输入特征与输出标签之间的关系,来预测新样本的类别。在本例中,使用逻辑回归模型来预测鸢尾花的类别,并使用matplotlib库来可视化模型的决策边界。决策边界是模型预测类别变化的区域,它可以帮助直观地理解模型是如何区分不同类别的样本的。

首先,需要导入必要的库和数据集。然后,创建逻辑回归模型的实例,并使用训练数据来训练模型。接着,使用训练好的模型来预测数据点的类别,并绘制决策边界。最后,在同一张图上绘制训练数据点,以便于比较模型的预测结果与实际标签。

import matplotlib.pyplot as plt from sklearn import datasets from sklearn.inspection import DecisionBoundaryDisplay from sklearn.linear_model import LogisticRegression # 加载鸢尾花数据集 iris = datasets.load_iris() X = iris.data[:, :2] # 仅使用前两个特征 Y = iris.target # 创建逻辑回归分类器实例并拟合数据 logreg = LogisticRegression(C=1e5) logreg.fit(X, Y) # 绘制决策边界 _, ax = plt.subplots(figsize=(4, 3)) DecisionBoundaryDisplay.from_estimator( logreg, X, cmap=plt.cm.Paired, ax=ax, response_method="predict", plot_method="pcolormesh", shading="auto", xlabel="萼片长度", ylabel="萼片宽度", eps=0.5, ) # 绘制训练数据点 plt.scatter(X[:, 0], X[:, 1], c=Y, edgecolors="k", cmap=plt.cm.Paired) plt.xticks(()) plt.yticks(()) plt.show()

通过上述代码,可以看到鸢尾花数据集决策边界。图中的每个点代表一个鸢尾花样本,颜色表示其实际类别。决策边界将不同类别的样本分隔开来,可以看到模型在这两个维度上的表现。这种可视化方法对于理解模型的决策过程非常有帮助,尤其是在处理高维数据时。

需要注意的是,虽然仅使用了两个特征来训练模型,但逻辑回归模型仍然能够较好地区分不同类别的样本。这表明在某些情况下,即使数据的维度较低,逻辑回归模型也能够捕捉到数据中的关键信息。然而,在实际应用中,通常需要考虑更多的特征,以提高模型的准确性和泛化能力。

此外,还可以通过调整逻辑回归模型的参数,如正则化强度C,来优化模型的性能。在本例中,设置了C=1e5,这是一个较大的值,意味着对模型的正则化强度要求较低。在实际应用中,可以通过交叉验证等方法来选择最佳的参数值,以获得最佳的模型性能。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485