当前位置:   article > 正文

【Educoder】— 机器学习(PCA第三关)_本关任务:你需要调用 sklearn 中的 pca 接口来对数据继续进行降维,并使用 sklearn

本关任务:你需要调用 sklearn 中的 pca 接口来对数据继续进行降维,并使用 sklearn

目录

任务描述

相关知识

数据介绍

PCA

编程要求

代码 

第三关 — sklearn 中的 PCA

任务描述

本关任务:你需要调用 sklearn 中的 PCA 接口来对数据继续进行降维,并使用 sklearn 中提供的分类器接口(可任意挑选分类器)对癌细胞数据进行分类。

相关知识

为了完成本关任务,你需要掌握 sklearn 中的 PCA 类。

数据介绍

乳腺癌数据集,其实例数量是 569,实例中包括诊断类和属性,帮助预测的属性一共 30 个,各属性包括 radius 半径(从中心到边缘上点的距离的平均值), texture 纹理(灰度值的标准偏差)等等,类包括:WDBC-Malignant 恶性和 WDBC-Benign 良性。用数据集的 80% 作为训练集,数据集的 20% 作为测试集,训练集和测试集中都包括特征和诊断类。

sklearn 中已经提供了乳腺癌数据集的相关接口,想要使用该数据集可以使用如下代码:

  1. from sklearn import datasets
  2. #加载乳腺癌数据集
  3. cancer = datasets.load_breast_cancer()
  4. #X表示特征,y表示标签
  5. X = cancer.data
  6. y = cancer.target
  7. 数据集中部分数据与标签如下图所示(其中 0 表示良性,1 表示恶性):数据集中部分数据与标签如下图所示(其中 0 表示良性,1 表示恶性):

 数据集中部分数据与标签如下图所示(其中 0 表示良性,1 表示恶性):

PCA

PCA 的构造函数中有一个常用的参数可以设置:

  • n_components :表示想要将数据降维至 n_components 个维度。

    PCA 类中有三个常用的函数分别为: fit 函数用于训练 PCA 模型; transform 函数用于将数据转换成降维后的数据,当模型训练好后,对于新输入的数据,也可以用 transform 方法来降维;fit_transform 函数用于使用数据训练 PCA 模型,同时返回降维后的数据。

其中 fit 函数中的参数:

  • X :大小为[样本数量,特征数量]的 ndarray ,存放训练样本。

    transform 函数中的参数:

  • X :大小为[样本数量,特征数量]的 ndarray ,存放训练样本。

    fit_transform 函数中的参数:

  • X :大小为[样本数量,特征数量]的 ndarray ,存放训练样本。

PCA 的使用代码如下:

  1. from sklearn.decomposition import PCA
  2. #构造一个将维度降至11维的PCA对象
  3. pca = PCA(n_components=11)
  4. #对数据X进行降维,并将降维后的数据保存至newX
  5. newX = pca.fit_transform(X)

编程要求

在 begin-end 之间填写cancer_predict(train_sample, train_label, test_sample)函数实现降维并对癌细胞进行分类的功能,其中:

  • train_sample :训练样本,类型为 ndarray;
  • train_label :训练标签,类型为 ndarray;
  • test_sample :测试样本,类型为 ndarray。

代码 

  1. from sklearn.decomposition import PCA
  2. from sklearn import datasets
  3. from sklearn.tree import DecisionTreeClassifier
  4. def cancer_predict(train_sample, train_label, test_sample):
  5. '''
  6. 使用PCA降维,并进行分类,最后将分类结果返回
  7. :param train_sample:训练样本, 类型为ndarray
  8. :param train_label:训练标签, 类型为ndarray
  9. :param test_sample:测试样本, 类型为ndarray
  10. :return: 分类结果
  11. '''
  12. #********* Begin *********#
  13. pca = PCA(n_components=11)
  14. #对数据进行降维
  15. train_sample = pca.fit_transform(train_sample)
  16. test_sample = pca.transform(test_sample)
  17. clf = DecisionTreeClassifier(max_depth=10)
  18. clf.fit(train_sample, train_label)
  19. result = clf.predict(test_sample)
  20. return result
  21. #********* End *********#
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/725616
推荐阅读
相关标签
  

闽ICP备14008679号