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