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老师的课 是慕课网出品的。欢迎大家一起学习。
     
     
     
  • 相关阅读:
    php部分---include()与require()的区别、empty()与isset is_null的区别与用法详解
    DataSet 的详细用法(转)
    DataSet 的用法(转)
    大神的博客地址
    c#报表 柱,饼状图
    WebApi 增删改查(2)
    Linq to SQL 的左连,右连,内连(转)
    WebApi 增删改查
    Linq to SQL 的连表查询(转)
    LINQ
  • 原文地址:https://www.cnblogs.com/zhangtaotqy/p/9534929.html
Copyright © 2011-2022 走看看