From 8260675b775affc84fe36b7ec76b85a65a63644f Mon Sep 17 00:00:00 2001 From: anye <513317375@qq.com> Date: Tue, 8 Oct 2024 11:05:55 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20function.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- function.py | 40 ++++++---------------------------------- 1 file changed, 6 insertions(+), 34 deletions(-) diff --git a/function.py b/function.py index 61c60d3..3773fc2 100644 --- a/function.py +++ b/function.py @@ -1,25 +1,5 @@ import numpy as np - -""" -挑战说明: -- 自行编写实现 KNN 分类算法。 -- 函数输入: 待分类的样本 inX, 训练数据集 dataSet, 训练集对应的标签 labels。 -- 函数返回: 预测的分类标签。 - -注意事项: -- 可以自行导入其他库,需要在 requirements.txt 添加依赖,若未在 requirements.txt 中添加使用到的依赖,则无法自动评测,成绩为零。 -- 在 function.py 中实现 KNN 分类算法。 -- 自动评测脚本仅会加载 classify0 函数,请勿修改函数名。 -- 训练集在本目录下的 datingTrainSet2.tsv 中。 -- 评测数据集在本目录下的 datingTestSet2.tsv 中。 - -挑战环境: -- CPU: Intel Xeon(R) CPU E3-1231 v3 @ 3.40GHz -- OS: Ubuntu 22.04.4 LTS -- Python: 3.10.12 -- numpy: 2.1.1 -""" - +from sklearn.preprocessing import MinMaxScaler """ qin @@ -27,18 +7,6 @@ qin id = "202210423206" name = "詹宇豪" - -""" -参数说明: -- inX (numpy array): 输入待分类的样本。 -- dataSet (numpy array): 训练数据集。 -- labels (list or numpy array): 训练集对应的标签。 -返回值: -- int: 预测的分类标签。 -""" - - -# 这里写自己的代码实现 def classify0(inX, dataSet, labels, k=3): """ KNN 分类算法。 @@ -66,7 +34,6 @@ def classify0(inX, dataSet, labels, k=3): return predicted_label - def load_data(file_path): """ 加载 TSV 格式数据文件。 @@ -74,6 +41,11 @@ def load_data(file_path): data = np.loadtxt(file_path, delimiter="\t") features = data[:, :-1] labels = data[:, -1].astype(int) + + # 数据归一化 + scaler = MinMaxScaler() + features = scaler.fit_transform(features) + return features, labels