KNN+超参数的交叉验证

参考cs231n与这位的博文https://www.zhihu.com/people/will-55-30/posts?page=1 非常感谢!


Data-Driven Approach
1.collect a data set of images and labels
2.use machine learning to train a classifier
3.evaluate the classifier on new images


def train(images, lables):
   #Machine learning
   return model

def predict(model, test_images):
   #Use model to predict labels
   return test_labels

1.K-nearest neighbor

  • compare 2 images
    L1 distance Manhattan
    像素间的差求和
    L2 distance Euclidean
    像素间的差的平方求和再开根号

L1会随坐标轴的改变而改变,而L2是坐标轴无关的
当向量中的元素具有具体意义时(比如图像的像素)一般采用L1

nearest neighbor 的python code

import numpy as np

classs NearestNeighbor:
   def _init_(self):
       pass

   def train(self, X, y):
      """X is N*D where each row is an example.Y is 1*N means labels"""
      self.Xtr=X
      self.ytr=y
   
  def predict(self, X):
      num_test=X.shape[0]
      Ypred=np.zeros(num_test, dtype=self.ytr.dtype)

      for i in range(num_test):
         distances=np.sum(np.abs(self.Xtr-X[i, :]), axis=1)
         min_index=np.argmin(distances) #get the index with smallest distance
         Ypred[i]=self.ytr[min_index]
     return Ypred

Train O(1)
Predict O(n)
但实际应用中往往希望在training上花较多的时间,predict尽量快速


performance

点代表已知数据集,颜色代表标签,将图像空间划分为各个区域decision region
存在的问题:噪声或失真信号的干扰,比如绿色区域中间的黄色部分。

增大K后的效果


take majority vote from K closest points

smooth edges of regions
白色部分表示任何一个type都没有在vote中获胜(no majority)


超参数Hyperparameters
无法从学习中获得,需要提前设置,比如K邻近中的k与计算距离的方法

交叉验证选取超参数cross-validation


cross-validation

轮流选取不同的fold作为训练集,每次都要重新training
然后记录某超参数在五个fold的情况下的精确度,选取平均精确度最高的超参数


setting hyperparameters

KNN的缺点:
1.L1,L2不太适用于描述图像的距离,distance!=similarity of images
2.slow training
3.curse of dimensionality:KNN的本质是利用training data points将样本空间分为几块,这需要这些points尽量密集得分布在样本空间中,因此当样本空间的维度增加时,所需要的data points数目将会呈指数增长。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 本来以为要跑好运去另一家买药,但幸运的是有位叔叔告诉我那里也没人,少了冤枉路 父母都是通情达理的人 初雪,鹅毛大片...
    良辰美LiangChen阅读 140评论 0 0
  • “生活不易,一定不要忙着把力气用在变得冷漠、变得防备上。” 整理手机便签,不记得什么情景触动下让我如此记下,此时依...
    欣然_简然阅读 185评论 1 1
  • 我是郑明月两位男孩的妈妈(六年级和幼儿园小班)。热爱生活,喜欢美食、喜欢正面管教和心理学,喜欢和不同的父母聊聊生活...
    童乐妈咪阅读 523评论 0 1

友情链接更多精彩内容