- 阅读权限
- 255
- 威望
- 1 级
- 论坛币
- 49635 个
- 通用积分
- 55.7537
- 学术水平
- 370 点
- 热心指数
- 273 点
- 信用等级
- 335 点
- 经验
- 57805 点
- 帖子
- 4005
- 精华
- 21
- 在线时间
- 582 小时
- 注册时间
- 2005-5-8
- 最后登录
- 2023-11-26
|
104楼
ReneeBK(未真实交易用户)
发表于 2016-3-26 12:11:00
- import numpy as np
- def learn_model(k, features, labels):
- return k, features.copy(),labels.copy()
- def plurality(xs):
- from collections import defaultdict
- counts = defaultdict(int)
- for x in xs:
- counts[x] += 1
- maxv = max(counts.values())
- for k,v in counts.items():
- if v == maxv:
- return k
- def apply_model(features, model):
- k, train_feats, labels = model
- results = []
- for f in features:
- label_dist = []
- for t,ell in zip(train_feats, labels):
- label_dist.append( (np.linalg.norm(f-t), ell) )
- label_dist.sort(key=lambda d_ell: d_ell[0])
- label_dist = label_dist[:k]
- results.append(plurality([ell for _,ell in label_dist]))
- return np.array(results)
- def accuracy(features, labels, model):
- preds = apply_model(features, model)
- return np.mean(preds == labels)
复制代码
|
|