From e1d57186c3a0ce3029912c5cc3e2ed1a4b3a5ed8 Mon Sep 17 00:00:00 2001 From: anye <513317375@qq.com> Date: Tue, 8 Oct 2024 11:08:58 +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 | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/function.py b/function.py index 3773fc2..b4bb6d3 100644 --- a/function.py +++ b/function.py @@ -1,5 +1,4 @@ import numpy as np -from sklearn.preprocessing import MinMaxScaler """ qin @@ -34,19 +33,34 @@ def classify0(inX, dataSet, labels, k=3): return predicted_label +def normalize_data(data): + """ + 对数据进行归一化处理,将每个特征缩放到 [0, 1] 范围。 + + Args: + - data (numpy array): 待归一化的数据集。 + + Returns: + - numpy array: 归一化后的数据集。 + """ + min_vals = data.min(0) # 每一列的最小值 + max_vals = data.max(0) # 每一列的最大值 + ranges = max_vals - min_vals # 每一列的取值范围 + norm_data = (data - min_vals) / ranges # 归一化公式 + return norm_data, ranges, min_vals + def load_data(file_path): """ - 加载 TSV 格式数据文件。 + 加载 TSV 格式数据文件,并对特征数据进行归一化。 """ data = np.loadtxt(file_path, delimiter="\t") features = data[:, :-1] labels = data[:, -1].astype(int) # 数据归一化 - scaler = MinMaxScaler() - features = scaler.fit_transform(features) + norm_features, _, _ = normalize_data(features) - return features, labels + return norm_features, labels if __name__ == "__main__":