没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
2页
KNN核心算法函数,具体内容如下 #! /usr/bin/env python3 # -*- coding: utf-8 -*- # fileName : KNNdistance.py # author : zoujiameng@aliyun.com.cn import math def getMaxLocate(target): # 查找target中最大值的locate maxValue = float("-inFinIty") for i in range(len(target)): if maxValue < target[i]: maxValue = target[i
资源详情
资源评论
资源推荐
python实现实现K最近邻算法最近邻算法
KNN核心算法函数,具体内容如下
#! /usr/bin/env python3
# -*- coding: utf-8 -*-
# fileName : KNNdistance.py
# author : zoujiameng@aliyun.com.cn
import math
def getMaxLocate(target): # 查找target中最大值的locate
maxValue = float("-inFinIty")
for i in range(len(target)):
if maxValue < target[i]:
maxValue = target[i] flag = i
return flag
def 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.cn
if __name__ == "__main__":
history = {}
history[5, 1, 0] = 300
weixin_38748718
- 粉丝: 6
- 资源: 912
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0