PCA-小麦分类预处理之降维

本文展示了如何利用Python的PCA算法将小麦数据集中的特征降低到二维,通过Logistic回归并结合Scikit-learn库,实现数据标准化和降维操作,最终通过可视化展示不同类别样本在降维后的分布。
摘要由CSDN通过智能技术生成

用PCA将小麦的数据降维到二维

from sklearn.decomposition import PCA
from sklearn.linear_model import LogisticRegression
import matplotlib.pyplot as plt
import numpy 
import pandas as pd
fp=open('seeds_dataset.txt','r')
ls=[]
for line in fp:
    line=line.strip('\n')   #将\n去掉
    ls.append(line.split('\t'))   #将空格作为分隔符将一个字符切割成一个字符数组

fp.close()
ls=numpy.array(ls,dtype=float)   #将其转换成numpy的数组,并定义数据类型为float
print(ls)
# 将文件转为DataFrame表格
ls_pd = pd.DataFrame(ls)
ls_pd.loc[:,1:6]
y = ls_pd.loc[:,7]
from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
data_std = sc.fit_transform(ls_pd.loc[:,1:6])
pca = PCA(n_components = 2) #加载PCA算法,设置降维后主成分数目为2
reduced_x = pca.fit_transform(data_std) #对样本进行降维
reduced_x
red_x,red_y=[],[]
blue_x,blue_y=[],[]
green_x,green_y=[],[]


for i in range(len(reduced_x)):
    if y[i] == 1:
        red_x.append(reduced_x[i][0])
        red_y.append(reduced_x[i][1])

    elif y[i] == 2:
        blue_x.append(reduced_x[i][0])
        blue_y.append(reduced_x[i][1])

    else:
        green_x.append(reduced_x[i][0])
        green_y.append(reduced_x[i][1])
#可视化
plt.scatter(red_x,red_y,c='r',marker='x')
plt.scatter(blue_x,blue_y,c='b',marker='D')
plt.scatter(green_x,green_y,c='g',marker='.')
plt.show()

结果如下:
在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
<项目介绍> 机器学习算法与应用大作业-基于预处理小麦品种的分类和聚类源码+数据+项目使用说明.zip 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到94.5分,放心下载使用! 该资源适合计算机相关专业(如人工智能、通信工程、自动化、软件工程等)的在校学生、老师或者企业员工下载,适合小白学习或者实际项目借鉴参考! 当然也可作为毕业设计、课程设计、课程作业、项目初期立项演示等。如果基础还行,可以在此代码基础之上做改动以实现更多功能。 本项目基于python实现了seeds数据集预处理分类、聚类任务,使用了PCA、KPCA、LDA、KLDA四种算法进行数据预处理,使用SVM、逻辑回归、ANN三种方法对预处理与未预处理的数据进行了分类与评估,使用FCM方法对预处理与未预处理的数据进行了聚类与评估,完整地完成了项目的全部要求。实验过程中,对自己实现的预处理算法与sklearn的提供官方算法进行了对比;对比了预处理与否对分类与聚类精度的影响;对所有的算法均实现了可视化;基于pytorch框架使用自行搭建的MLP(多层感知机)神经网络对数据进行分类处理并总结效果。经过本次项目的实践,我对机器学习常用算法的理解与编程能力有了进一步提升,了解了预处理的重要性,也进行了不同机器学习算法应用在同一个问题上的对比,并认识到了各种算法的优劣,在日后解决科研难题的过程中,应当具体问题具体分析,选择最适合解决问题的那种算法。 环境配置 - 项目环境基于python3.6构建,为确保不报错,请使用python>=3.6的版本 - 建议使用conda命令进行python环境构建与依赖包的安装 ```buildoutcfg conda create -n ml_test python=3.6 activate ml_test ``` - 所需要的基本依赖包安装命令如下 ```buildoutcfg conda install numpy conda install scikit-learn conda install matplotlib ``` - 为运行KLDA,需要使用pip安装mlxtend扩充包 ```buildoutcfg pip install mlxtend ``` - 为运行神经网络,需要安装pytorch,使用cpu版本即可 ```buildoutcfg conda install pytorch ``` 代码说明 - `1_1_pca_analysis.py` 自己实现的PCA预处理与sklearn实现的PCA预处理效果对比 - `1_2_kpca_analysis.py` 自己实现的KPCA预处理与sklearn实现的KPCA预处理效果对比 - `1_3_lda_analysis.py` 自己实现的LDA预处理与sklearn实现的LDA预处理效果对比 - `1_4_klda_analysis.py` sklearn未实现KLDA,这里只有自己实现的KLDA - `2_1_1_svm_raw.py` 使用SVM对原始数据直接进行分类,包括不同kernel的选取对比 - `2_1_2_svm_pca.py` 使用SVM对PCA预处理后的数据进行分类,包括不同kernel的选取对比 - `2_1_3_svm_lda.py` 使用SVM对LDA预处理后的数据进行分类,包括不同kernel的选取对比 - `2_2_1_svm_raw.py` 使用逻辑回归对原始数据直接进行分类 - `2_2_2_svm_pca.py` 使用逻辑回归对PCA预处理后的数据进行分类 - `2_2_3_svm_lda.py` 使用逻辑回归对LDA预处理后的数据进行分类 - `2_3_ann.py` 使用MLP(多层感知机)对小麦品种分类 - `3_fcm_analysis.py` 使用FCM对小麦进行聚类并评估 - `dataset.py` 读取小麦数据集的工具包
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值