头歌实践教学平台-机器学习 --- PCA答案

非盈利文章,仅提供过关答案或代码,不提供启动服务及需要命令行的代码

第1关:维数灾难与降维

第2关:PCA算法流程

import numpy as np

def pca(data, k):
'''
对data进行PCA,并将结果返回
:param data:数据集,类型为ndarray
:param k:想要降成几维,类型为int
:return: 降维后的数据,类型为ndarray
'''

#********* Begin *********#
u = np.mean(data, axis=0)
#demean
after_demean = data - u
# 计算after_demean的协方差矩阵
# after_demean的行数为样本个数,列数为特征个数
# 由于cov函数的输入希望是行代表特征,列代表数据的矩阵,所以要转置
cov = np.cov(after_demean.T)
#eig函数为计算特征值与特征向量的函数
#cov为矩阵,value为特征值,vector为特征向量
value, vector =  np.linalg.eig(cov)
#根据特征值value将特征向量vector降序排序
vector_index = np.argsort(value)#np.argsort()将矩阵按照value排序,并返回排序后的下标
#筛选出前k个特征向量组成映射矩阵P
n = vector_index[-1:-(k+1):-1]# 从索引-1开始到索引-(k+1)停止,间隔为-1
p = vector[:, n]#取前n个值
#after_demean和P做矩阵乘法得到result
result = after_demean.dot(p)
return result
#********* End *********#

第3关:sklearn中的PCA

from sklearn.decomposition import PCA
from sklearn.neighbors import KNeighborsClassifier

def cancer_predict(train_sample, train_label, test_sample):
'''
使用PCA降维,并进行分类,最后将分类结果返回
:param train_sample:训练样本, 类型为ndarray
:param train_label:训练标签, 类型为ndarray
:param test_sample:测试样本, 类型为ndarray
:return: 分类结果
'''

#********* Begin *********#
pca = PCA(n_components=11, random_state=42)
train_sample = pca.fit_transform(train_sample)
test_sample = pca.transform(test_sample)
clf = KNeighborsClassifier(n_neighbors=5)
clf.fit(train_sample, train_label)
result = clf.predict(test_sample)
return result
#********* End *********#

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/733526.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

线段树题单记录

写线段树题单的记录线段树题单记录 线段树的题都很板的,模板敲上去再改改就行 P3372 【模板】线段树 1 题目 Link 为什么模板是绿题,还有下面那道 思路 首先我们要明白它为什么叫线段树: OI Wiki 上的这张图很好理解:从这张图也可以看出来,线段树的每个节点管辖的一个又一…

PTA训练集阶段总结性blog(第三弹)

目录PTA训练集总结blog1.前言2.设计与分析题目集七 7.1家居强电电路模拟系统—3关于设计要求:UML类图及设计分析:部分源码:复杂度分析:题目集八 7.1 家具强电电路模拟系统—8关于设计要求:部分源码:复杂度分析:3.踩坑心得4.改进建议5.总结 PTA训练集总结blog 1.前言 1.这…

智慧工厂视频智能分析系统解决方案 燧机AI算法

视频监控智能分析系统通过安装在工厂生产施工作业现场的各个监控装置,构建智能监控分析预警和防范体系,有效弥补传统方法和技术在管理中的缺陷。智慧工厂视频监控智能分析系统实现对人员、机械、材料、环境的全方位实时监控,变被动“监督”为主动“监控”;真正做到事前预警…

从零开始学Spring Boot系列-集成Spring Security实现用户认证与授权

在Web应用程序中,安全性是一个至关重要的方面。Spring Security是Spring框架的一个子项目,用于提供安全访问控制的功能。通过集成Spring Security,我们可以轻松实现用户认证、授权、加密、会话管理等安全功能。本篇文章将指导大家从零开始,在Spring Boot项目中集成Spring S…

springboot+vue前后端分离项目-vue项目搭建4

1.修改vue布局,app.vue为入口,只引入路由,路由控制页面显示 改造后app.vue 新增layout.vue 修改/router/index.js,默认访问路径 / 对应layout.vue,layout里的路由是嵌套路由,/home匹配到HomeView.vue新增vue/src/views/LoginView.vue 效果以上仅供参考,如有疑问,留言联…

OOP 7-8次作业总结

23201636-曾繁榕 目录前言 设计与分析 踩坑心得 改进建议 总结 前言 本次作业知识点:类与对象的复杂使用,继承的进阶使用,各种接口的实现,复杂电路的处理,一个对象多个数据的储存输出,还主要考察了正则表达式的运用,字符串的提取分割; 个人体会:本次作业难度较难,题量适…

DHCP

DHCP Discover:由客户端发出广播,用来发现DHCP服务器。 DHCP Offer:由DHCP服务器发出,告诉客户端,我可以提供IP地址。 DHCP Request:由客户端发出的广播,告诉对应的DHCP服务器,我需要IP地址。 DHCP ACK:由DHCP服务器发出,提供客户端响应的IP地址,DNS,租期,掩码,网…

基于cifar数据集合成含开集、闭集噪声的数据集

前言 噪声标签学习下的一个任务是:训练集上存在开集噪声和闭集噪声;然后在测试集上对闭集样本进行分类。 训练集中被加入的开集样本,会被均匀得打上闭集样本的标签充当开集噪声;而闭集噪声的设置与一般的噪声标签学习一致,分为对称噪声:随机将闭集样本的标签替换为其他类…

AbpVnext系列四 用户表设计

一、一个系统中,最开始要设计的是用户表,先简单的设计如下图。 二、类的实体/// <summary>/// /// </summary>/// <param name="id"></param>public User(long id){Id = id;Status = NormalLockedStatus.Normal;}/// <summary>/// …

oop第7~8次作业总结(第三次Blog)

oop第7~8次作业总结(第三次Blog) 一、前言 二、设计与分析 三、踩坑心得 四、改进建议 五、总结 一、前言 1、第七次作业 第六次作业只有一道题,与上次相比,本次迭代考虑多个并联电路串联在一起的情况,考虑一条串联电路中包含其他串联电路的情况。增加了互斥开关和受控窗帘…

Profinet IO从站数据 转EtherCAT项目案例

目录 1 案例说明 1 2 VFBOX网关工作原理 1 3 准备工作 2 4 使用PRONETA软件获取PROFINET IO从站的配置信息 2 5 设置网关采集PROFINETIO从站设备数据 5 6 启动ETHERCAT从站转发采集的数据 8 7 选择槽号和数据地址 9 8 选择子槽号 11 9 案例总结 12 1 案例说明设置网关采集Profi…