机器学习:基于Sklearn、XGBoost框架,使用逻辑回归、支持向量机和XGBClassifier预测帕金森病-2. 模型训练

2.1 数据分离(训练和测试)

现在我们将分离特征和目标变量,并将其分为训练数据和测试数据,通过使用这些数据,我们将选择在验证数据上表现最佳的模型。

features = df.drop('class', axis=1)
target = df['class']

X_train, X_val,\
	Y_train, Y_val = train_test_split(features, target,
									test_size=0.2,
									random_state=10)
X_train.shape, X_val.shape

输出

((201, 30), (51, 30))

通过在少数类上使用过采样方法处理数据不平衡问题。

# As the data was highly imbalanced we will balance
# it by adding repetitive rows of minority class.
ros = RandomOverSampler(sampling_strategy='minority',
						random_state=0)
X, Y = ros.fit_resample(X_train, Y_train)
X.shape, Y.shape

输出

((302, 30), (302,))

2.2 数据建模(LogisticRegression、XGBClassifier、SVC)

数据集已经在数据清理步骤中进行了标准化,我们可以直接训练一些最先进的机器学习模型,并比较它们与我们的数据是否更匹配。

models = [LogisticRegression(), XGBClassifier(), SVC(kernel='rbf', probability=True)]

for i in range(len(models)):
	models[i].fit(X, Y)

	print(f'{models[i]} : ')

	train_preds = models[i].predict_proba(X)[:, 1]
	print('Training Accuracy : ', ras(Y, train_preds))

	val_preds = models[i].predict_proba(X_val)[:, 1]
	print('Validation Accuracy : ', ras(Y_val, val_preds))
	print()

在这里插入图片描述

上一篇:笔记:Python 字符串与正则表达式(编程题)


下一篇:Go 语言基础