4444444
Gitea Actions Experiment Test / Experiment-Actions (push) Successful in 22s

This commit is contained in:
lzh
2024-11-02 21:38:28 +08:00
parent a7c4a74c46
commit a454e2e79a
+20 -4
View File
@@ -25,7 +25,7 @@ from sklearn.model_selection import train_test_split, GridSearchCV
id = "202210423221" id = "202210423221"
name = "廖子豪" name = "廖子豪"
def load_data(filepath): def load_data(filepath, fit_scaler=False):
data = np.genfromtxt(filepath, delimiter=' ', missing_values='?', filling_values=0) data = np.genfromtxt(filepath, delimiter=' ', missing_values='?', filling_values=0)
labels = data[:, -1].astype(int) labels = data[:, -1].astype(int)
features = data[:, :-1] features = data[:, :-1]
@@ -35,12 +35,28 @@ def load_data(filepath):
# 数据标准化 # 数据标准化
scaler = StandardScaler() scaler = StandardScaler()
features = scaler.fit_transform(features) if fit_scaler:
features = scaler.fit_transform(features)
else:
features = scaler.transform(features)
return features, labels, scaler return features, labels, scaler
def train_logreg(X, y, random_state=42): # 示例使用
# 使用 GridSearchCV 进行参数调优 if __name__ == "__main__":
# 加载训练数据和测试数据
X_train, y_train, scaler = load_data("./data/horse-colic.data", fit_scaler=True)
X_test, y_test, _ = load_data("./data/horse-colic.test", fit_scaler=False) # 使用相同的scaler
# 训练模型
model = train_logreg(X_train, y_train, random_state=42)
# 进行预测
y_pred = [predict_logreg(x, model) for x in X_test]
# 计算准确率
accuracy = np.mean(y_pred == y_test)
print(f"Test Accuracy: {accuracy:.2f}")
param_grid = {'C': [0.01, 0.1, 1, 10, 100], 'penalty': ['l1', 'l2']} param_grid = {'C': [0.01, 0.1, 1, 10, 100], 'penalty': ['l1', 'l2']}
model = LogisticRegression(solver='liblinear', random_state=random_state) model = LogisticRegression(solver='liblinear', random_state=random_state)
grid_search = GridSearchCV(model, param_grid, cv=5) grid_search = GridSearchCV(model, param_grid, cv=5)