python xgboost_Python机器学习——使用XGBoost检测帕金森氏病

在这个项目中,我们将构建一个模型,通过该模型我们可以准确地检测人体中帕金森氏病的存在。

什么是帕金森氏病?

帕金森氏病是中枢神经系统的进行性疾病,会影响运动并诱发震颤和僵硬。这是慢性的,尚未治愈。它是一种神经退行性疾病,会影响大脑中产生多巴胺的神经元。

什么是XGBoost?

XGBoost是一种新的机器学习算法,设计时考虑了速度和性能。XGBoost代表eXtreme Gradient Boosting,它基于决策树。在这个项目中,我们将从xgboost库中导入XGBClassifier。这是用于XGBoost分类的scikit-learn API的实现。

使用XGBoost检测帕金森氏病的目的

在这个项目中,我们使用Python库 scikit-learn,numpy,pandas和xgboost,我们将使用XGBClassifier构建模型。我们将加载数据,获取特征和标签,缩放特征,然后拆分数据集,构建XGBClassifier,然后计算模型的准确性。

检测帕金森氏病的步骤

1、导入必要的库

import numpy as npimport pandas as pdimport os, sysfrom sklearn.preprocessing import MinMaxScalerfrom xgboost import XGBClassifierfrom sklearn.model_selection import train_test_splitfrom sklearn.metrics import accuracy_score
python xgboost_Python机器学习——使用XGBoost检测帕金森氏病_第1张图片

2、读取数据集

df=pd.read_csv('XGBoost_parkinsonsparkinsons.data')df.head()
python xgboost_Python机器学习——使用XGBoost检测帕金森氏病_第2张图片

3、从数据框(数据集)获取特征和标签。特征是“status”以外的所有列,标签是“status”列中的标签。

features=df.loc[:,df.columns!='status'].values[:,1:]labels=df.loc[:,'status'].values
fea152b8c3f1fbf5c82acae8f216dedb.png

4、“status”列的值为0和1作为标签;让我们获取0和1的这些标签的计数。

print(labels[labels==1].shape[0], labels[labels==0].shape[0])
bd50aa65145a0e9f838cf3854005b4db.png

数据集中的状态栏中有147个1和48个0。

5、初始化MinMaxScaler并将特征缩放到-1和1之间以对其进行归一化。MinMaxScaler通过将特征缩放到给定范围来变换特征。fit_transform()方法适合数据,然后对其进行转换。我们不需要缩放标签。

scaler=MinMaxScaler((-1,1))x=scaler.fit_transform(features)y=labels
9583f0bc75bdf87796e6a5fcd313940f.png

6.现在,将数据集分为训练和测试集,保留20%的数据以进行测试。

x_train,x_test,y_train,y_test = train_test_split (x,y,test_size = 0.2 ,random_state = 7 )
99b240c5ba1f6de39a09a72edef62f2d.png

7.初始化XGBClassifier并训练模型。使用eXtreme Gradient Boosting进行分类-使用梯度提升算法 解决现代数据科学问题。它属于ML中的整体学习类别,在该类别中,我们训练和预测使用许多模型来产生一个出色的输出。

model=XGBClassifier()model.fit(x_train,y_train)
python xgboost_Python机器学习——使用XGBoost检测帕金森氏病_第3张图片

8.最后,生成y_pred(x_test的预测值)并计算模型的准确性,并输出显示。

y_pred=model.predict(x_test)print(accuracy_score(y_test, y_pred)*100)
python xgboost_Python机器学习——使用XGBoost检测帕金森氏病_第4张图片

总结

在这个项目中,我们学会了使用各种因素检测个体中帕金森氏病的存在。为此,我们使用了XGBClassifier,并利用sklearn库准备了数据集。这给我们提供了94.87%的准确度,并且我们只使用了很短的代码行数。

你可能感兴趣的:(python,xgboost,xgboost算法)