时间:2021-05-22
KNN核心算法函数,具体内容如下
#! /usr/bin/env python3# -*- coding: utf-8 -*-# fileName : KNNdistance.py# author : zoujiameng@aliyun.com.cnimport mathdef getMaxLocate(target): # 查找target中最大值的locate maxValue = float("-inFinIty") for i in range(len(target)): if maxValue < target[i]: maxValue = target[i] flag = i return flagdef KDistance(K, dest, source): destlen = len(dest) source1len = len(source[1]) sourcelen = len(source) KNN = [] locate = source # 准备从source中剔除N-K个最大值 if destlen == source1len: for i in range(sourcelen): delta = 0 for j in range(source1len):# 毕达哥拉斯公式 delta += (dest[j] - source[i][j])*(dest[j] - source[i][j]) KNN.append(math.sqrt(delta)) for k in range(sourcelen, K, -1): flag = getMaxLocate(KNN) #print("%s 最大元素位置为%d" % (KNN, flag)) KNN.remove(KNN[flag]); locate.remove(locate[flag])# 移除对应位置的元素 #print(locate) return locate # 返回最终K个最接近的元素 else: return None假设你在伯克利开个小小的面包店,每天都做新鲜面包,需要根据如下一组特征预测当天该烤多少条面包:
a. 天气指数1~5(1表示天气很糟,5表示天气非常好);
b. 是不是周末或节假日(周末或节假日为1,否则为0);
c. 有没有活动(1表示有,0表示没有)。
已知
historyA(5, 1, 0) = 300
historyB(3, 1, 1) = 225
historyC(1, 1, 0) = 75
historyD(4, 0, 1) = 200
historyE(4, 0, 0) = 150
historyF(2, 0, 0) = 50
回归:周末,天气不错
Now(4, 1, 0) = ?
#! /usr/bin/env python3# -*- coding: utf-8 -*-# fileName : KNNdistance.py# author : zoujiameng@aliyun.com.cnif __name__ == "__main__": history = {} history[5, 1, 0] = 300 history[3, 1, 1] = 225 history[1, 1, 0] = 75 history[4, 0, 1] = 200 history[4, 0, 0] = 150 history[2, 0, 0] = 50 dest = [4, 1, 0] source = [] for i in history: source.append(i) print(source) from KNNdistance import KDistance K = 4 locate = KDistance(K, dest, source) avg = 0 for i in range(len(locate)): avg+=history[locate[i]] avg/=K print("回归结果:今天应该烤%d个面包" % round(avg))KNN算法:
samples:
a. 垃圾邮件过滤器, 使用一种简单算法——朴素贝叶斯分类器(Naive Bayes classifier)
b. 预测股票市场, 使用机器学习来预测股票市场的涨跌真的很难。对于股票市场,如何挑选合适的特征呢?股票昨天涨了,今天也会涨,这样的特征合适吗?又或者每年五月份股票市场都以绿盘报收,这样的预测可行吗?在根据以往的数据来预测未来方面,没有万无一失的方法。未来很难预测,由于涉及的变量太多,这几乎是不可能完成的任务。
conclude:
机器学习是个很有趣的领域,只要下定决心,你就能很深入地了解它。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
简介邻近算法,或者说K最近邻(kNN,k-NearestNeighbor)分类算法是数据挖掘分类技术中最简单的方法之一。所谓K最近邻,就是k个最近的邻居的意思,
前面文章分别简单介绍了线性回归,逻辑回归,贝叶斯分类,并且用python简单实现。这篇文章介绍更简单的knn,k-近邻算法(kNN,k-NearestNeigh
一、knn算法描述1.基本概述knn算法,又叫k-近邻算法。属于一个分类算法,主要思想如下:一个样本在特征空间中的k个最近邻的样本中的大多数都属于某一个类别,则
K最近邻(k-NearestNeighbor,KNN)分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一。该方法的思路是:如果一个样本在特征空间
本文实例讲述了Python机器学习k-近邻算法。分享给大家供大家参考,具体如下:工作原理存在一份训练样本集,并且每个样本都有属于自己的标签,即我们知道每个样本集