当前位置:   article > 正文

鸢尾花数据可视化,PCA降到两维后,对数据标准化、归一化_鸢尾花数据集如何对类别特征数据进行归一化、降维以及特征选择等处理

鸢尾花数据集如何对类别特征数据进行归一化、降维以及特征选择等处理

用PCA降维,后输出降维后每一列的贡献率,各列贡献相加为1.

// An highlighted block
if __name__ == "__main__":
    iris = datasets.load_iris()  # 获取鸢尾花数据集Dick
    X=iris["data"]#训练数据
    Y=iris["target"]#类别
    pca = PCA(n_components=2)  # 降到2维
    pca.fit(X)  # 训练
    x = pca.fit_transform(X)  # 降维后的数据
    print(pca.explained_variance_ratio_)  # 输出贡献率
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

基于鸢尾花数据画图,用PCA降维到两维后

    plt.figure(figsize=(10, 5))
    # x1_min, x1_max = x[:, 0].min(), x[:, 0].max()  # 第0列的范围
    # x2_min, x2_max = x[:, 1].min(), x[:, 1].max()  # 第1列的范围
    # plt.xlim(x1_min, x1_max)
    # plt.ylim(x2_min, x2_max) 
    
    for i in range(len(Y)):
        if Y[i]==0:
            plt.plot(x[i, 0], x[i, 1], 'ro')
        elif Y[i]==1:
            plt.plot(x[i, 0], x[i, 1], 'bo')
        else:
            plt.plot(x[i, 0], x[i, 1], 'yo')

    #gca="get current axis" 设置坐标轴原点
    ax = plt.gca()
    ax.xaxis.set_ticks_position("bottom")#把四条外边框的下边当做x轴
    ax.yaxis.set_ticks_position("left")#把四条外边框的左边当做y轴
    ax.spines["bottom"].set_position(("data", 0))#把x轴的位置放到y的0位置
    ax.spines["left"].set_position(("data", 0))#把y轴的位置放到x的0位置

    plt.grid(True)
    plt.xlabel('1st')
    plt.ylabel('2nd')
    plt.title('Scatter Plot')
    plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

效果图如下:
在这里插入图片描述
对上图进行归一化处理,通过遍历每列feature vector里的每一个数据,将Max和Min的记录下来,并通过Max-Min作为基数(即Min=0,Max=1)进行数据的归一化处理,将每个特征值规约到(0,1)之间。
在这里插入图片描述

    #导入包:from sklearn.preprocessing import MinMaxScaler
    #归一化(normalization)
    minMax = MinMaxScaler()
    x_std = minMax.fit_transform(x)
  • 1
  • 2
  • 3
  • 4

效果图如下:
在这里插入图片描述
标准化处理:对原始数据的均值(mean)和标准差(standard deviation)进行数据的标准化。经过处理的数据符合标准正态分布,即均值为0,标准差为1,这个方法被广泛的使用在许多机器学习算法中(例如:支持向量机、逻辑回归和类神经网络)。公式如下:
在这里插入图片描述

    #导入包:from sklearn.preprocessing import StandardScaler
    #标准化(Standardization)
    scaler = StandardScaler().fit(x)
    x_std = scaler .transform(x)#标准化后的数据
    print(scaler.mean_)#输出均值
    print(scaler.scale_)#输出标准差
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/340755
推荐阅读
相关标签
  

闽ICP备14008679号