本文重点

上节课程中我们已经学习了pca算法,已经知道了如何将n维特征变量降到k维,k是PCA算法的一个参数,也被称为主成分的数量。那么现在就产生了一个问题,这个问题就是如何选择K,因为PCA要做的就是要尽量减少投射的平均均方误差,所以K的选择很关键。

平均均方误差

其中x(i)表示原始样本的特征向量,Xapprox(i)表示映射的样本

数据的总变差

数据的总变差就是数据集中每个训练样本长度的平均值,它表示平均来看我们训练集样本距离0向量有多远。

k值的经验得法则

k值的经验得法则就是,选择能够使得它们之间得比例小于0.01的最小的K值。

这个0.01用PCA语言就是说我们选择的参数K,原本数据的偏差有 99%都保留下来了,也就是说使得99%的差异性得以保留。大部分人选择k的时候,并不是直接的选择k值是多少,而是≤0.01还是0.05(95%的差异性被保留),0.10,0.15。然后选择符合这些要求的最小的k值。

<

每天五分钟机器学习:PCA算法如何确定数据压缩降维的最佳维度?相关推荐

  1. svm分类器训练详细步骤_「五分钟机器学习」向量支持机SVM——学霸中的战斗机...

    大家好,我是爱讲故事的某某某. 欢迎来到今天的[五分钟机器学习]专栏内容 --<向量支持机SVM> 今天的内容将详细介绍SVM这个算法的训练过程以及他的主要优缺点,还没有看过的小伙伴欢迎去 ...

  2. 每天五分钟机器学习:评价算法模型常用的数值评估方式——F1值

    本文重点 上一节课程中我们学习了查准率和召回率,作为遇到偏斜类问题的评估度量值.那么究竟是查准率更好一些还是召回率更好一些呢?其实都不是,真正好的应该是使得查准率和召回率的相对平衡,那么这个相对平衡的 ...

  3. 每天五分钟机器学习:随着算法迭代次数动态调整学习率

    本文重点 我们使用的学习率往往是不变的,本节课程我们将令学习率随着迭代次数的增加而减小,这会对算法的学习有很大的好处. 好处 当我们运行随机梯度下降时,算法会从某个点开始,然后曲折的逼近最小值,但是不 ...

  4. 每天五分钟机器学习:聚类算法中经常使用的肘部法则是什么?

    本文重点 如何选择聚类的数目K,也就是说我们要将数据聚成几簇.我们可以通过可视化的方式(画图),或者聚类算法的输出结果(试一试)来手动的决定聚类的数目,或者根据实际需要来确定我们想要聚成几簇,比如前面 ...

  5. 漫画:五分钟学会贪心算法!

    假设一个问题比较复杂,暂时找不到全局最优解,那么我们可以考虑把原问题拆成几个小问题(分而治之思想),分别求每个小问题的最优解,再把这些"局部最优解"叠起来,就"当作&qu ...

  6. 每天五分钟机器学习:模型效果不好怎么办?使用诊断方法解决问题

    本文重点 当我们在设计机器学习的系统时,什么时候才能保证我们设计的过程是正确的,也就是说当模型出现问题,我们应该如何解决呢? 模型效果不好 通过对数据的学习得到了学习参数θ,所以我们的模型也就是假设函 ...

  7. 每天五分钟机器学习:如何计算模型的假阳性率和真阳性率?

    本文重点 如上所示,我们学习了查准率和召回率,本文我们将学习真阳性率和假阳性率,学会这个对将来构建ROC曲线非常有帮助 真阳性率和假阳性率 假如使用测试集来评估一个分类模型(二分问题):所以样本实际值 ...

  8. 每天五分钟机器学习:如何使用单个神经元实现逻辑与、或的计算

    本文重点: 神经网络中,无中间隐藏层的单层神经元可用来计算逻辑运算,比如逻辑与.逻辑或,本节课程讲解单个神经元如何实现逻辑与和逻辑或? 逻辑与 y=x1 AND x2,这是一个逻辑与,那么怎样才能得到 ...

  9. 每天五分钟机器学习:超平面分离定理和凸优化

    凸集和凸函数 在点集拓扑学与欧几里得空间中,凸集是一个点集,其中每两点之间的直线上的点都落在该点集中.如下所示: 函数任意两点(x,f(x))和(y,f(y))连线上的值大于(x,y)区间内任意一点m ...

最新文章

  1. 使用Python,OpenCV创建动画GIF图和模因生成器
  2. How to track an installation through client log-fi
  3. oracle数据库path,利用Path环境变量解决oracle数据库和owb工具不兼容问题!
  4. Qt学习笔记:QMenuBar()、QMenu()和QAction()的使用
  5. oracle指令df,怎么使用df命令查看Linux磁盘空间?
  6. Ubuntu下使用pjsip点对点通话
  7. JUnit:使用Java 8和Lambda表达式测试异常
  8. 双向@OneToMany / @ManyToOne关联
  9. android变量要不要附空值,android-如何在使用Parcelable时序列化空值
  10. vue 判断同一数组内的值是否一直_vue一些笔记
  11. 微信小程序之 Classify(商品属性分类)
  12. 7.软件架构设计:大型网站技术架构与业务架构融合之道 --- 框架、软件与中间件
  13. raw socket 编程实例
  14. pytorch中的torch.nn.Unfold和torch.nn.Fold
  15. 2011年11月编程语言排行榜:Objective-C有望成为2011年年度编程语言。
  16. java涂色_【LeetCode(Java) - 276】栅栏涂色
  17. vi设计管理手册的体系
  18. php notice undefined offset,PHP 使用数组 疯狂提示 Notice: Undefined offset
  19. automagica 调用windows画图以及登录qq
  20. 【问题描述】建立一个通讯录的结构记录,包括姓名、生日、电话号码。输入n(n<10)个朋友的信息,再按他们的年龄从大到小的顺序依次输出其信息

热门文章

  1. codeforces #35D
  2. 红黑树封装实现树形结构的关联式容器(map,set)
  3. JS——图片变清晰(简易版刮刮乐)
  4. 人工智能数学基础-线性代数5:行列式求解线性方程组和拉普拉斯定理
  5. ENSP华为路由器出口NAT实验
  6. 蓄电池维护——蓄电池的日常检测与维护
  7. 全国计算机联赛第一名,IOI奥赛中国包揽全球前四!第一名为MIT去年大陆唯一常规录取人...
  8. [oeasy]python0143_主控程序_main
  9. SpringBoot 打成jar包供第三方引用自动装配方案实现
  10. SAP 发货--特殊的移动类型