同步操作将从 复旦大学-邱锡鹏/prml-21春 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
K近邻(k-Nearest Neighbor,KNN) 算法是一个简单的机器学习算法。你需要按照要求实现 K 近邻算法的代码,并进行一些探究实验。
提交方法参见提交指南
你需要参考 handout/
文件夹下的 source.py
来实现一个 KNN
类,使得其它程序可以调用该类的 fit
方法进行模型的训练,使用 predict
方法来进行预测。fit
方法可以包含数据处理,K 值选择等过程。
class KNN:
def __init__(self):
pass
def fit(self, train_data, train_label):
pass
def predict(self, test_data):
pass
其中,fit
方法的参数 train_data
和 train_label
均为 numpy.ndarray
类型,大小分别为 (N, K)
和 (N,)
,其中 N
为数据的条数,K
为数据的维度。 predict
方法的参数 test_data
类型和 train_data
一致,输出的类型与train_label
的类型一致。
你可以使用 handout/tester_demo.py
来对代码进行简单的测试。
np.random.multivariate_normal
生成若干个(例如:3个)符合二维高斯分布的集合,给每个集合配上一个标签后混合为 data
和 label
。train_data
, train_label
,test_data
和 test_label
四个部分。matplotlib
库。实验部分的代码也需要写在 source.py
中,这部分的分数由助教根据你的代码和报告给出。
我们会使用自动化的工具来测试你写在 source.py
中的 KNN
类,如果你的代码不能正确运行,你将失去这 20% 的分数。我们会提供多组用于自动测试的 train_data
, train_label
,test_data
和 test_label
,数据的维度各不相同。模型的准确率不做为评分指标。
测试环境如下:
conda create -n assignment-1 python=3.8 -y
conda activate assignment-1
pip install numpy
pip install matplotlib
模式识别与机器学习 / 复旦大学 / 2021年春
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。