Template
42 lines
1.0 KiB
Python
42 lines
1.0 KiB
Python
import numpy as np
|
|
|
|
"""
|
|
请在这里填写学号和姓名,不填写即成绩无效。
|
|
"""
|
|
id = "202210423224"
|
|
name = "吴杨洋"
|
|
|
|
|
|
def sigmoid(z):
|
|
"""
|
|
Sigmoid 激活函数。
|
|
"""
|
|
return 1 / (1 + np.exp(-z))
|
|
def train_logreg(X, y, random_state=42):
|
|
model = LogisticRegression(solver='liblinear', random_state=random_state)
|
|
model.fit(X, y)
|
|
return model
|
|
|
|
|
|
def predict_logreg(inX, model):
|
|
return int(model.predict([inX])[0])
|
|
|
|
|
|
def load_data(filepath):
|
|
data = np.genfromtxt(filepath, delimiter=' ', missing_values='?', filling_values=0)
|
|
labels = data[:, -1].astype(int)
|
|
data = data[:, :-1]
|
|
labels = np.where((labels == 2) | (labels == 3), 0, labels)
|
|
if data.shape[1] >= 3:
|
|
data = np.delete(data, 2, axis=1)
|
|
scaler = StandardScaler()
|
|
data = scaler.fit_transform(data)
|
|
return data, labels
|
|
|
|
# 去掉不相关特征
|
|
data = np.delete(data, [2] + list(range(23, 28)), axis=1)
|
|
|
|
# 数据标准化
|
|
scaler = StandardScaler()
|
|
data = scaler.fit_transform(data)
|
|
return data, labels |