前几天看了 Google 的一个关于 Machine Learning 的slides,感觉不错,整理一下学习笔记
ML 的定义
An approach to achieve artificial intelligence through systems that can learn from experience to find patterns in that data
ML teaches a computer to recognise patterns by examples, rather than programming it with specific rules.
一个例子:
feature
一般来说,几个属性就代表了几个维度 …
前一阵看了一个叫做 莫烦Python 的教程,还有 sklearn的官方教程 初步了解了一下 sklearn 的基本概念,不过教程毕竟有些啰嗦,还是自己记录一下关键要点备忘。
机器学习要解决的问题
什么是机器学习?
sklearn 给了一个定义
In general, a learning problem considers a set of n samples of data and then tries to predict properties of unknown data. If each sample is more than a single number and, for instance, a multi-dimensional …
问自己的问题
- 不同的算法对数据输入有不同的假设。应该如何预处理数据呢?
- 如何对数据降维,使用什么降维方法呢?
- 如何拆分数据集
- 怎样知道是否出现了过拟合
- 应该是用什么类型的性能指标
- 不同的参数调整会如何影响模型的结果
- 模型组合可以达到更好的结果吗
关于模型的基本假设
基本假设是一个系统运行的基础,然而如果假设是错误的呢?what if the grand truth is not true?
比如假设A 和 A是类似的,喜欢 A 的用户也会喜欢 A,但是实际上用户只能在 A 和 A之间选择一个呢,这时候向购买了 A 的顾客再推荐 A就不合适了.
比如用户已经买了钻戒用来求婚, 那么再推荐钻戒就不好了. 但是如果用户买了啤酒, 那再推荐一些啤酒也很好啊, 因为啤酒很快就喝完了...
维基百科上讲算法的文章一般都写得不怎么样
kNN是一个有监督的分类算法,目的是把给定的数据的类型确定出来。具体做法是通过把给定数据与已知训练集中的数据之间计算距离(欧氏距离,曼哈顿距离。。。)来找出距离给定数据 X 最近的 k 个数据,然后取这 k 个数据中出现最多的分类作为 X 的分类,如果给定数据的维度是两维的话,在平面笛卡尔坐标系里表示出来就是这样的