# 挑战一:kNN 算法 ## 挑战说明 - 自行在 [`function.py`](./function.py) 中编写实现 KNN 分类算法。 - 函数输入: 待分类的样本 `inX`, 训练数据集 `dataSet`, 训练集对应的标签 `labels`。 - 函数返回: 预测的分类标签。 成功上传的评测结果将在 [rank.intcplab.cn](https://rank.intcplab.cn/) 展示。 ## 注意事项 挑战开始前必须在 [`function.py`](./function.py#L28-L29) 中填写自己的学号和姓名! - 可以自行导入其他库,需要在 [`requirements.txt`](./requirements.txt) 添加依赖,若未在 [`requirements.txt`](./requirements.txt) 中添加使用到的依赖,则无法自动评测,成绩为零。 - 需要在 [`function.py`](./function.py) 中实现完整的 KNN 分类算法。 - 自动评测脚本仅会加载 [`classify0`](./function.py#L43) 函数,请勿修改函数名。 - 训练集在本目录下的 [`datingTrainSet2.tsv`](./datingTrainSet2.tsv) 中。 - 评测数据集在本目录下的 [`datingTestSet2.tsv`](./datingTestSet2.tsv) 中。 - 本地调试完成后,**需要更新提交代码**,否则无法自动评测,**没有挑战成绩**。 - 评测的运行时间受机器性能影响,运行时间仅供参考。 - 若有评测相关问题,请在[项目工单](https://git.intcplab.cn/LufsX/Evaluation-Backend/issues)处提出,或联系 QQ: `1968647927`。 代码提交后会进行自动评测,评测所用的环境如下: - CPU: Intel Xeon(R) CPU E3-1231 v3 @ 3.40GHz - OS: Ubuntu 22.04.4 LTS - Python: 3.10.12 - numpy: 2.1.1 ## 挑战操作 挑战赛与实验为两个**不同**的仓库,注意不要混淆! --- [注册平台帐号](https://git.intcplab.cn/user/sign_up),若有平台帐号相关问题,联系 QQ: `1968647927`。 ![注册平台帐号](./img/sign_up.png) 进入对应仓库的页面,点击页面的「使用模版」按钮。 ![创建仓库](./img/create.png) 填写仓库名称(建议和对应仓库一致,例如本仓库名 `Challenge-kNN`),勾选模版选项中的「Git 数据(默认分支)」后,点击「创建仓库」按钮。 ![创建仓库](./img/create2.png) 可以选择拉取到本地写代码,也可以直接在线编辑。 --- 下面以在线编辑为例。 打开对应的文件,点击编辑按钮即可。 ![在线编辑](./img/edito.png) 编辑完成后,点击「提交变更」按钮提交修改。 ![在线编辑](./img/edito2.png) --- 下面以拉取到本地写代码为例。 ![拉取到本地](./img/edit.png) 点击后会叫你选个地方保存代码,选择目录后继续。 然后编辑器就会打开,你可以开始写代码了。 ![编辑代码](./img/edit2.png) 编辑完成后,点侧栏的分叉图标,选择你要提交的变更,再点提交按钮。 ![提交变更](./img/commit.png) 接下来会弹出一个窗口,填写你平台帐号的用户名和密码后即可。 --- 提交完成后,会自动开始评测。 这里就可以看到你评测的实时情况与最终得分。 ![评测结果](./img/result.png) ![评测结果](./img/result2.png)