机器学习基础算法11-鸢尾花数据集分析-PCA主成分分析与logistic回归(管道分析)

本文介绍了鸢尾花数据集,重点探讨了PCA主成分分析的基本原理和代码实现,以及如何结合逻辑回归利用Pipeline进行模型构建。分析了模型的泛化能力,指出在提升模型复杂度时防止过拟合的重要性。
摘要由CSDN通过智能技术生成

数据集介绍

鸢尾花数据集有三个类别,每个类别有50个样本。其中一个类别与另外两个线性可分,另外两个不能线性可分。

PCA主成分分析

1.基本原理

在统计学中,主成分分析PCA是一种简化数据集的技术。它是一个线性变换。这个变换把数据变换到一个新的坐标系统中,使得任何数据投影的第一大方差在第一个坐标(称为第一主成分)上,第二大方差在第二个坐标(第二主成分)上,依次类推。主成分分析经常用于减少数据集的维数,同时保持数据集的对方差贡献最大的特征。这是通过保留低阶主成分,忽略高阶主成分做到的。这样低阶成分往往能够保留住数据的最重要方面。
具体步骤见: https://baike.baidu.com/item/pca%E6%8A%80%E6%9C%AF/10408698?fr=aladdin

2.代码实现

# 鸢尾花数据集-PCA降维
# 特征之间是线性相关的,此时用到PCA
import pandas as pd
from sklearn.decomposition import PCA
from matplotlib.colors import ListedColormap
import matplotlib as mpl
import matplotlib.pyplot as plt

if __name__ == '__main__':

    # pd.set_option('参数名', 参数值)设置相关显示选项,
    # display.width:数据显示区域的总宽度,以总字符数计算。
    pd.set_option('display.width', 200)

    # 一、获得数据
    # 设置列名
    columns = ['sepal_length', 'sepal_width', 'petal_length', 'petal_width', 'type']
    data = pd.read_csv('./iris.data', header=None, names=columns)

    # pd.Categorical(series),得到分类的对象,使用categories或者codes进行查看
    # pd.Categorical( list ).codes 这样就可以直接得到原始数据的对应的序号列表,通过这样的处理可以将类别信息转化成数值信息
    # pd.Categorical( list ).categories可以查看具体类别
    data['type'] = pd.Categorical(data['type']).codes
    # print(data)

    # 二、数据处理
    # 特征值与目标值
    x = data.loc[:, columns[:-1]]
    y = data['type']

    # 三、特征工程
    # PCA降维
    # _components:组分的个数选择;  whiten:白化; random_state=0:伪随机数发生器种子
    pca = PCA(n_components=2, whiten=True, random_state=0)
    x = pca.fit_transform(x)
    # pca降维后,前两个组分在所有数据中所占信息的比例,一般来说80%的比例,说明已经具有较大的代表性。
    print('各方向方差:', pca.explained_variance_)
    print('方差所占比例:', pca.explained_variance_ratio_)
    # print(x)

    # 绘图
    # 颜色选择
    cm_light = ListedColormap(['#77E0A0', '#FF8080', '#A0A0FF'])
    cm_dark = ListedColormap(['g', 'r', 'b'])
    # 在代码中指定中文字体,解决了matplotlib中中文无法显示的问题
    mpl.rcParams['font.sans-serif'] = u'SimHei'
    mpl.rcParams['axes.unicode_minus'] = False

    plt.figure(facecolor='w')
    # s:点的尺寸  c:色彩或颜色序列 marker:散点的形状  cmap: 包含三列矩阵的色彩映射,色盘的意思
    plt.scatter(x[:, 0], x[:, 1], s=30, c=y, marker='o', cmap=cm_dark)

    # 参数:b:是否显示网格线的意思。ls(li
  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Python鸢尾花数据集可视化PCA主成分分析是一种常用的数据分析方法,可以帮助我们理解数据集的结构和分类情况。 首先,我们需要导入相关的Python库,如numpy、pandas和matplotlib。然后,我们可以使用pandas库中的read_csv方法读取鸢尾花数据集的CSV文件,并将数据存储为一个DataFrame对象。 接下来,我们可以使用sklearn库中的PCA类来进行主成分分析。首先,我们需要对数据进行标准化处理,即将数据的均值调整为0、方差调整为1。然后,我们可以创建一个PCA对象,并将数据传递给它的fit_transform方法进行主成分分析主成分分析会将数据转换为新的坐标系,其中每个维度代表数据在原坐标系中的一个特征。我们可以通过PCA对象的explained_variance_ratio_属性来获取每个主成分对应的方差比例,从而了解每个主成分的重要性。 为了可视化主成分分析的结果,我们可以创建一个二维散点图,其中x轴和y轴分别代表前两个主成分。我们可以使用Matplotlib中的scatter函数绘制不同类别的数据点,并使用不同颜色或形状进行区分。 此外,我们还可以通过绘制累积方差比例图来了解所选择的主成分数量是否足够解释原始数据的方差。该图可通过累积explained_variance_ratio_属性的值进行绘制。 总的来说,Python鸢尾花数据集可视化PCA主成分分析是一种有效的数据分析方法,可以帮助我们更好地理解数据集的结构和分类情况。它不仅可以帮助我们发现数据中隐藏的规律和趋势,还可以帮助我们对数据进行更好的预测和决策。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值