diff --git a/function.py b/function.py index 206afa0..8e957e0 100644 --- a/function.py +++ b/function.py @@ -54,7 +54,7 @@ def predict_logreg(inX, weights): def load_data(filepath): """ - 从文件中加载数据,若不自行正确实现,则无法通过评测,**不记录成绩**。 + 从文件中加载数据并填充缺失值。确保每列的缺失值被正确填充为该列的均值。 Args: - filepath (str): 数据文件路径。 @@ -63,9 +63,18 @@ def load_data(filepath): - np.array: 特征数据。 - np.array: 标签数据。 """ - data = np.genfromtxt(filepath, delimiter=",", dtype=float) - X = np.nan_to_num(data[:, :-1], nan=np.nanmean(data[:, :-1])) # 用均值填充缺失值 + # 加载数据,处理缺失值(使用 nan 表示缺失数据) + data = np.genfromtxt(filepath, delimiter=",", dtype=float, missing_values="?", filling_values=np.nan) + + # 特征和标签分离 + X = data[:, :-1] y = data[:, -1] + + # 对每列特征数据进行缺失值填充 + col_means = np.nanmean(X, axis=0) + inds = np.where(np.isnan(X)) + X[inds] = np.take(col_means, inds[1]) + return X, y