zoukankan      html  css  js  c++  java
  • 机器学习(四) 机器学习(四) 分类算法--K近邻算法 KNN (下)

    六、网格搜索与 K 邻近算法中更多的超参数

    七、数据归一化 Feature Scaling


    解决方案:将所有的数据映射到同一尺度

     

     

     

    八、scikit-learn 中的 Scaler

    preprocessing.py

    import numpy as np
    
    
    class StandardScaler:
    
        def __init__(self):
            self.mean_ = None
            self.scale_ = None
    
        def fit(self, X):
            """根据训练数据集X获得数据的均值和方差"""
            assert X.ndim == 2, "The dimension of X must be 2"
    
            self.mean_ = np.array([np.mean(X[:,i]) for i in range(X.shape[1])])
            self.scale_ = np.array([np.std(X[:,i]) for i in range(X.shape[1])])
    
            return self
    
        def transform(self, X):
            """将X根据这个StandardScaler进行均值方差归一化处理"""
            assert X.ndim == 2, "The dimension of X must be 2"
            assert self.mean_ is not None and self.scale_ is not None, 
                   "must fit before transform!"
            assert X.shape[1] == len(self.mean_), 
                   "the feature number of X must be equal to mean_ and std_"
    
            resX = np.empty(shape=X.shape, dtype=float)
            for col in range(X.shape[1]):
                resX[:,col] = (X[:,col] - self.mean_[col]) / self.scale_[col]
            return resX

     九、更多有关 K 近邻算法的思考

    优点:

    解决分类问题
    天然可以解决多分类问题
    思想简单,效果强⼤大

     
    缺点:
    ⾼高度数据相关
    预测结果不不具有可解释性
    维数灾难
     
     
      我写的文章只是我自己对bobo老师讲课内容的理解和整理,也只是我自己的弊见。bobo老师的课 是慕课网出品的。欢迎大家一起学习。
     
     
     
  • 相关阅读:
    初步认识三层架构
    机器学习技法总结(六)Decision Tree Hypothesis
    spring 事件模式 源代码导读
    Missing 'name' key attribute on element activity at AndroidMan
    【iOS】KVC 与 KVO
    可用谷歌ip地址
    android menu事件
    #103. 子串查找
    P2590 [ZJOI2008]树的统计
    带修改莫队算法
  • 原文地址:https://www.cnblogs.com/zhangtaotqy/p/9534929.html
Copyright © 2011-2022 走看看