generated from LufsX/Experiment-LogReg
This commit is contained in:
+17
-3
@@ -63,14 +63,28 @@ def load_data(filepath):
|
||||
max_columns = max(max_columns, len(parts))
|
||||
data.append(parts)
|
||||
|
||||
# 填充缺失的列
|
||||
# 填充缺失的列
|
||||
for i in range(len(data)):
|
||||
if len(data[i]) < max_columns:
|
||||
data[i].extend(['nan'] * (max_columns - len(data[i])))
|
||||
|
||||
# 转换成numpy数组,处理缺失值
|
||||
data_array = np.array(data, dtype=float)
|
||||
data_array[np.isnan(data_array)] = np.nanmean(data_array, axis=0)
|
||||
data_array = []
|
||||
for row in data:
|
||||
cleaned_row = []
|
||||
for value in row:
|
||||
if value == '?': # 替换无法转换的值
|
||||
cleaned_row.append(np.nan)
|
||||
else:
|
||||
cleaned_row.append(float(value)) # 转换为float
|
||||
data_array.append(cleaned_row)
|
||||
|
||||
data_array = np.array(data_array)
|
||||
|
||||
# 处理缺失值
|
||||
col_mean = np.nanmean(data_array, axis=0)
|
||||
for i in range(data_array.shape[1]):
|
||||
data_array[np.isnan(data_array[:, i]), i] = col_mean[i]
|
||||
|
||||
return data_array[:, :-1], data_array[:, -1]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user