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

This commit is contained in:
2024-11-02 13:31:23 +08:00
parent 0e3a2091ea
commit 1870d5310c
+7 -7
View File
@@ -56,7 +56,7 @@ def load_data(filepath):
values = line.strip().replace('?', '0').split() values = line.strip().replace('?', '0').split()
try: try:
values = [float(v) for v in values] values = [float(v) for v in values]
# 合并特征23的取值 # 合并特征23的取值
if values[22] in [2, 3]: # 特征23(索引22) if values[22] in [2, 3]: # 特征23(索引22)
labels.append(0) # 死亡 labels.append(0) # 死亡
@@ -65,19 +65,17 @@ def load_data(filepath):
else: else:
continue # 无效标签,丢弃 continue # 无效标签,丢弃
# 用NaN标记缺失值 # 用0填充缺失值
values = [np.nan if v == 0 else v for v in values] # 先标记为NaN values = [0 if v == 0 else v for v in values] # 用0填充
data.append(values[:2] + values[3:23]) # 保留特征1, 2 和特征4-23 data.append(values[:2] + values[3:23]) # 保留特征1, 2 和特征4-23
except ValueError as e: except ValueError as e:
print(f"Line {line_number} has an error: {e}") # 打印出错行信息 print(f"Line {line_number} has an error: {e}") # 打印出错行信息
# 转换为numpy数组并处理缺失值 # 转换为numpy数组
data = np.array(data) data = np.array(data)
labels = np.array(labels) labels = np.array(labels)
df = pd.DataFrame(data)
df.fillna(df.mean(), inplace=True) # 使用均值填充处理缺失值
return df.to_numpy(), labels return data, labels
def preprocess_data(X): def preprocess_data(X):
"""特征标准化。""" """特征标准化。"""
@@ -87,6 +85,8 @@ def preprocess_data(X):
if __name__ == "__main__": if __name__ == "__main__":
# 加载数据集 # 加载数据集
X, y = load_data("./data/horse-colic.data") X, y = load_data("./data/horse-colic.data")
# 归一化数据
X = preprocess_data(X) X = preprocess_data(X)
# 使用 train_test_split 打乱并随机抽取数据 # 使用 train_test_split 打乱并随机抽取数据