本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.
一、K-近邻算法(KNN)概念
K Nearest Neighbor算法⼜叫 KNN 算法,这个算法是机器学习⾥⾯⼀个⽐较经典的算法
如果 ⼀个样本 在特征空间中的 k个最相似(即特征空间中最邻近)的样本 中的 ⼤多数属于某⼀个类别 ,则 该样本也属于这个类别 。
距离公式(欧式距离):
d = ∑ i = 1 n ( x 1 i − x 2 i ) 2 d = \sqrt{\sum_{i=1}^n(x_{1i}- x_{2i})^2} ∑ i = 1 n ( x 1 i − x 2 i ) 2
from sklearn.neighbors import KNeighborsClassifier estimator = KNeighborsClassifier(n_neighbors=1) # 使⽤fit⽅法进⾏训练 estimator.fit(x, y) estimator.predict([[1]])
二、K-均值算法(K Means)
K-均值算法是一种 聚类算法 ,同时也是 非监督学习 的算法。它首先 随机生成几个聚类中心 ,然后在 每次递归 时 实现簇分配 (通过聚类中心与点的最近距离) 和移动聚类中心 (该簇所有点的平均值)
对于 开始随机生成的聚类中心 而言,我们一般会 随机选择样本 里面的 几个数据 来 当作聚类中心。
我们还可能遇到 局部最优 的情况,解决的方式是 多运行几次K-均值算法 并 记录每次 的 cost函数值 ,最终选择 最小的cost值的那组θ
如何正确的选择聚类的数量K?
我们可以通过 肘部法则 来 手动 的选择 聚类数量K ,不过它 并不是每次都可以成功的运行 ,所以最终我们大多数还是通过 经验和其实际需求来选择K的大小
三、主成分分析(Principal Component Analysis)
PCA主要完成的工作是它会 找到一个低维度 ,然后再将 数据投影到该维度上面 ,以便 最小化所有样本 到 该低维度的投影误差的平方 ,最终达到降维的效果。
而 降维 可以使提高算法的 运算速度 和到达 压缩数据 的目的
不过在进行 PCA 之前一般是要 先 进行 均值归一化和特征规范化
若要使用 PCA 进行 降维 也是在 训练集上运行 , 不可 在 交叉验证集或测试集上运行
为了 选择 压缩后的 维度K ,我们应该要求 方差保留的百分比大于等于0.99
一般我们使用 正则化 来解决 过拟合情况 ,而 不用PCA ,因为它 省略掉了一些关键的信息 ,如y
四、异常检测算法(Anomaly detection)
异常检测算法是指通过 对数据建立概率模型 来 识别数据中的“异常点”
若 异常样本多 则选择 异常检测算法 ;若 异常样本 和 正常样本 都 很多 则选择 监督学习算法
五、上限分析-ceiling analysis
上限分析一般存在于 流水线 ,它的目的是 为了分析出该流水线中哪一个模块更值得我们花更多的精力
首先关注这个机器学习流程中的第一个模块文字检测,然后人为地告诉算法每一个测试样本中什幺地方出现了文字,即100%正确地检测出图片中的文字信息。然后下来的几个模块也就是如法炮制。 所以进行上限分析的一个好处是知道了如果对每一个模块进行改善 它们各自的上升空间是多大。
例如上图,我们应该把更多的精力放在 文本检测 和和 字母识别 上面,而不应该是放在字母分割上面
Be First to Comment