美文网首页
【挖掘模型】:Python-KNN算法

【挖掘模型】:Python-KNN算法

作者: dataheart | 来源:发表于2017-05-21 12:05 被阅读123次

    KNN-K近邻 分类算法原理

            # 从训练集中找到和新数据最接近的K条记录,然后根据他们的主要分类来决定新的数据的类别
            # 图中的数据集是良好的数据,即都打好了label,一类是蓝色的正方形,一类是红色的三角形,那个绿色的圆形是我们待分类的数据。
                # 具体是每次来一个未知的样本点,就在附近找K个最近的点进行投票
                # 如果K=3,那么离绿色点最近的有2个红色三角形和1个蓝色的正方形,这3个点投票,于是绿色的这个待分类点属于红色的三角形。
                # 如果K=5,那么离绿色点最近的有2个红色三角形和3个蓝色的正方形,这5个点投票,于是绿色的这个待分类点属于蓝色的正方形。
            # KNN本质是基于一种数据统计的方法!其实很多机器学习算法也是基于数据统计的。
        # K的含义:来了一个样本x,要给它分类,即求出它的y,就从数据集中,在x附近找离它最近的K个数据点,这K个数据点,类别c占的个数最多,就把x的label设为c
        # 抽样方法
            # 打乱顺序后的随机数组 = numpy.random.permutation(n_随机样本的个数)
        # API  neighbors.KNeighborsClassifier KNN建模的方法
            # knnModel = neighbors.KNeighborsClassifier(n_neigbors = 5)
                # n_neighbors    n的个数
                # 返回            KNN模型
            # knnModel.fit(tData_训练数据的属性数据,tTarget_训练数据的目标数据) KNN训练方法
            # sklearn包
                # knnModel.score(sData_测试数据的属性数据,sTarget测试数据的目标数据) KNN评分方法
                # knnModel.predict(pdata_需要预测的属性数据) --》模型预测的结果   
    

    KNN-K近邻 源代码

    import numpy
    
    from sklearn import datasets
    #引入数据集
    iris = datasets.load_iris()
    #查看数据的规模
    iris.data.shape # shape数据的规模
    #查看训练目标的总类
    numpy.unique(iris.target) # count(distinct target)
    
    #随机重排列
    permutation = numpy.random.permutation(iris.target.size) # iris.target.size -->len(iris.target)
    
    iris.data = iris.data[permutation] # 随机的分类对应的数据
    
    iris.target = iris.target[permutation] # 重排
    
    from sklearn import neighbors
    
    #搭建KNN模型
    knnModel = neighbors.KNeighborsClassifier(n_neighbors=3) # 训练目标为三类
    #训练模型
    knnModel.fit(iris.data[:100], iris.target[:100]) # 前100列
    
    from sklearn import cross_validation
    
    #对模型进行评价
    knnModel.score(iris.data[100:], iris.target[100:]) 
    cross_validation.cross_val_score(
        knnModel, 
        iris.data[100:], 
        iris.target[100:]
    ) # 交叉评分,三个分类的命中率,0,1,2 的命中率
    
    #使用模型进行预测
    knnModel.predict([[0.1, 0.2, 0.3, 0.4]])      
    

    参考文献
    作者A:ken

    相关文章

      网友评论

          本文标题:【挖掘模型】:Python-KNN算法

          本文链接:https://www.haomeiwen.com/subject/qpimxxtx.html