更新 function.py
Gitea Actions Experiment Test / Experiment-Actions (push) Successful in 12s

This commit is contained in:
2024-11-07 17:09:35 +08:00
parent 5f721fd1e6
commit c0a11b7355
+20 -9
View File
@@ -94,18 +94,29 @@ def load_data(filepath):
- np.array: 特征数据。
- np.array: 标签数据。
"""
# 使用pandas加载数据,这样可以更方便地处理缺失值
import pandas as pd
# 使用 numpy 加载数据
data = []
# 加载数据,假设数据是空格或制表符分隔的,非法字符 '?' 会被替换为 NaN
df = pd.read_csv(filepath, sep=' ', header=None, na_values='?')
# 打开文件并读取每一行
with open(filepath, 'r') as file:
for line in file:
# 分割每一行数据,并替换 '?' 为 np.nan
values = line.strip().split() # 默认按空格或制表符分割
values = [float(v) if v != '?' else np.nan for v in values]
data.append(values)
# 将 NaN 填充为该列的均值
df.fillna(df.mean(), inplace=True)
# 转换为 numpy 数组
data = np.array(data)
# 将最后一列作为标签y,其他列作为特征X
X = df.iloc[:, :-1].values # 特征数据
y = df.iloc[:, -1].values # 标签数据
# 处理缺失值,这里使用列均值填充
nan_mask = np.isnan(data)
for i in range(data.shape[1]):
column_mean = np.nanmean(data[:, i]) # 获取该列的均值(忽略 NaN)
data[nan_mask[:, i], i] = column_mean # 用均值填充 NaN
# 将最后一列作为标签 y,其余列作为特征 X
X = data[:, :-1] # 特征数据
y = data[:, -1] # 标签数据
return X, y