From 5aff4622f51fdc4e27f3d03a3f46d7b04e45a804 Mon Sep 17 00:00:00 2001 From: kxz <2897100651@qq.com> Date: Tue, 8 Oct 2024 20:16:23 +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 | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/function.py b/function.py index e214da1..5e3edf5 100644 --- a/function.py +++ b/function.py @@ -58,6 +58,7 @@ def load_data(file_path): return features, labels +import numpy as np def classify0(inX, dataSet, labels, k=3): """ @@ -85,24 +86,31 @@ def classify0(inX, dataSet, labels, k=3): return -1 -def normalize(features): - min_vals = features.min(axis=0) - max_vals = features.max(axis=0) - ranges = max_vals - min_vals - normalized = (features - min_vals) / ranges - normalized[ranges == 0] = 0 # 防止除以零 - return normalized - if __name__ == "__main__": + def load_data(file_path): + data = np.loadtxt(file_path, delimiter="\t") + features = data[:, :-1] + labels = data[:, -1].astype(int) + return features, labels + + def normalize(features): + min_vals = features.min(axis=0) + max_vals = features.max(axis=0) + ranges = max_vals - min_vals + normalized = (features - min_vals) / ranges + normalized[ranges == 0] = 0 # Prevent division by zero + return normalized + train_file_path = "datingTrainSet2.tsv" train_features, train_labels = load_data(train_file_path) + test_file_path = "datingTestSet2.tsv" test_features, test_labels = load_data(test_file_path) - - # 归一化特征 + + # Normalize features train_features = normalize(train_features) test_features = normalize(test_features) - + correct_count = 0 for i in range(len(test_features)): test_feature = test_features[i].reshape(1, -1)