diff --git a/function.py b/function.py index c71b74c..6ebd621 100644 --- a/function.py +++ b/function.py @@ -78,7 +78,13 @@ def load_data(filepath): - np.array: 特征数据。 - np.array: 标签数据。 """ - data = np.loadtxt(filepath, delimiter=',') + # 使用dtype=str先将所有数据加载为字符串 + data = np.loadtxt(filepath, delimiter=' ', dtype=str) + + # 替换'?'为np.nan,并转换为浮点数 + data[data == '?'] = np.nan + data = data.astype(float) + X = data[:, :-1] # 假设最后一列是标签 y = data[:, -1] return X, y @@ -90,7 +96,11 @@ if __name__ == "__main__": # 加载测试集 X_test, y_test = load_data("./data/horse-colic.test") - # 确保标签为浮点型,以防止整型溢出 + # 处理缺失值,例如用列的均值替代 + X_train = np.nan_to_num(X_train, nan=np.nanmean(X_train, axis=0)) + X_test = np.nan_to_num(X_test, nan=np.nanmean(X_train, axis=0)) # 用训练集的均值替代测试集 + + # 确保标签为浮点型 y_train = y_train.astype(float) y_test = y_test.astype(float)