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__":