generated from LufsX/Experiment-LogReg
This commit is contained in:
+10
-13
@@ -25,8 +25,15 @@ id = "202210423204"
|
|||||||
name = "陈垣豪"
|
name = "陈垣豪"
|
||||||
|
|
||||||
|
|
||||||
import numpy as np
|
def load_data(filepath):
|
||||||
from sklearn.preprocessing import StandardScaler
|
"""加载数据并处理缺失值."""
|
||||||
|
data = np.genfromtxt(filepath, delimiter=' ', dtype=float, missing_values='?', filling_values=np.nan)
|
||||||
|
nan_columns = np.isnan(data)
|
||||||
|
mean_values = np.nanmean(data, axis=0)
|
||||||
|
data[nan_columns] = np.take(mean_values, np.where(nan_columns)[1])
|
||||||
|
X = data[:, :-1]
|
||||||
|
y = data[:, -1]
|
||||||
|
return X, y
|
||||||
|
|
||||||
def train_logreg(X, y, learning_rate=0.01, iterations=1000):
|
def train_logreg(X, y, learning_rate=0.01, iterations=1000):
|
||||||
"""训练逻辑回归模型,使用随机梯度下降."""
|
"""训练逻辑回归模型,使用随机梯度下降."""
|
||||||
@@ -49,17 +56,7 @@ def predict_logreg(inX, weights):
|
|||||||
"""使用线性模型预测结果."""
|
"""使用线性模型预测结果."""
|
||||||
inX = np.append(inX, 1) # 增加偏置项
|
inX = np.append(inX, 1) # 增加偏置项
|
||||||
linear_model = np.dot(inX, weights)
|
linear_model = np.dot(inX, weights)
|
||||||
return 1 if linear_model >= 0 else 0 # 直接返回0或1
|
return 1.0 if linear_model >= 0 else 2.0
|
||||||
|
|
||||||
def load_data(filepath):
|
|
||||||
"""加载数据并处理缺失值."""
|
|
||||||
data = np.genfromtxt(filepath, delimiter=' ', dtype=float, missing_values='?', filling_values=np.nan)
|
|
||||||
nan_columns = np.isnan(data)
|
|
||||||
mean_values = np.nanmean(data, axis=0)
|
|
||||||
data[nan_columns] = np.take(mean_values, np.where(nan_columns)[1])
|
|
||||||
X = data[:, :-1]
|
|
||||||
y = data[:, -1]
|
|
||||||
return X, y
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
# 加载训练集
|
# 加载训练集
|
||||||
|
|||||||
Reference in New Issue
Block a user