From efdd3712a905775cba5315698d86fd09210b0285 Mon Sep 17 00:00:00 2001 From: luderby <2339127037@qq.com> Date: Tue, 5 Nov 2024 19:14:23 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20function.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- function.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/function.py b/function.py index 9861331..3d96b27 100644 --- a/function.py +++ b/function.py @@ -55,19 +55,19 @@ def predict_logreg(inX, weights): # 从文件中加载数据 def load_data(filepath): data = pd.read_csv(filepath, header=None, na_values='?', delim_whitespace=True) - for col in data.columns: - if pd.api.types.is_numeric_dtype(data[col]): - data[col].fillna(data[col].median(), inplace=True) - else: # 处理非数值列,例如用众数填充或其他策略 - data[col].fillna(data[col].mode()[0], inplace=True) - X = data.iloc[:, :-1].to_numpy() - y = data.iloc[:, -1].to_numpy() + # 使用SimpleImputer进行中位数填充 + imputer = SimpleImputer(strategy='median') + data_imputed = imputer.fit_transform(data) + data = pd.DataFrame(data_imputed) + X = data.iloc[:, :-1].to_numpy() # 特征 + y = data.iloc[:, -1].to_numpy() # 标签 + # 使用MinMaxScaler进行特征缩放 scaler = MinMaxScaler() - X = scaler.fit_transform(X) # 缩放特征 - - return X, y + X = scaler.fit_transform(X) + return X, y + # 准确率计算函数 def calculate_accuracy(X, y, weights): predictions = np.array([predict_logreg(x, weights) for x in X])