Python 进行机器学习进行帕金森病预测

Python 进行机器学习进行帕金森病预测

帕金森病是一种影响全球数百万人的神经退行性疾病,及早和准确的诊断对于有效治疗至关重要,可以使用Python中的机器学习轻松实现。

本文探讨了使用机器学习技术预测帕金森病,在UCI机器学习数据库中使用数据集。通过使用随机森林分类器算法,我们展示了如何利用Python来分析和预处理数据、训练预测模型并进行准确预测。

使用Python进行机器学习进行帕金森病预测

我们使用Jupyter笔记本来运行本文中的代码。

以下是使用Python进行机器学习进行帕金森病预测的步骤:-

步骤1:导入必要的库

示例

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.metrics import accuracy_score, confusion_matrix
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier

步骤2:加载帕金森病数据集

程序使用pd.read_csv()函数从’parkinsons.csv’文件中读取数据集,并将其存储在data变量中。

示例

# Load the Parkinson's Disease dataset
data = pd.read_csv('parkinsons.csv')

步骤3:数据清洗

以下程序使用drop()函数从数据集中删除了’name’列,并将修改后的数据集重新赋值给data变量。

示例

# Data cleaning
data = data.drop('name', axis=1)  # Remove the 'name' column

步骤4:数据预处理

下面的程序使用drop()函数将特征(X)从目标变量(y)中分离出来,并将它们分别赋值给相应的变量。

示例

# Data preprocessing
X = data.drop('status', axis=1)  # Features
y = data['status']  # Target variable

步骤5:数据分析

以下程序提供了关于数据集的信息−

  • 使用 data.shape 打印数据集的形状(行数和列数)。

  • 使用 len(data[data[‘status’] 1]) 和 len(data[data[‘status’] 0]) 分别显示帕金森病样本和健康样本的数量。

  • 使用 data.describe() 打印数据集的摘要。

示例

print("Data Shape:", data.shape)
print("Parkinson's Disease Samples:", len(data[data['status'] == 1]))
print("Healthy Samples:", len(data[data['status'] == 0]))
print("\nData Summary:")
print(data.describe())

输出

Data Shape: (195, 23)
Parkinson's Disease Samples: 147
Healthy Samples: 48

Data Summary:
       MDVP:Fo(Hz)  MDVP:Fhi(Hz)  MDVP:Flo(Hz)  MDVP:Jitter(%)  \
count   195.000000    195.000000    195.000000      195.000000   
mean    154.228641    197.104918    116.324631        0.006220   
std      41.390065     91.491548     43.521413        0.004848   
min      88.333000    102.145000     65.476000        0.001680   
25%     117.572000    134.862500     84.291000        0.003460   
50%     148.790000    175.829000    104.315000        0.004940   
75%     182.769000    224.205500    140.018500        0.007365   
max     260.105000    592.030000    239.170000        0.033160   

       MDVP:Jitter(Abs)    MDVP:RAP    MDVP:PPQ  Jitter:DDP  MDVP:Shimmer  \
count        195.000000  195.000000  195.000000  195.000000    195.000000   
mean           0.000044    0.003306    0.003446    0.009920      0.029709   
std            0.000035    0.002968    0.002759    0.008903      0.018857   
min            0.000007    0.000680    0.000920    0.002040      0.009540   
25%            0.000020    0.001660    0.001860    0.004985      0.016505   
50%            0.000030    0.002500    0.002690    0.007490      0.022970   
75%            0.000060    0.003835    0.003955    0.011505      0.037885   
max            0.000260    0.021440    0.019580    0.064330      0.119080   


max      0.685151    0.825288   -2.434031    0.450493    3.671155    0.527367  

[8 rows x 23 columns]

步骤6:数据可视化

直方图使用plt.show()显示。

示例

# Data visualization
data.hist(figsize=(12, 12))
plt.tight_layout()
plt.show()

输出

Python 进行机器学习进行帕金森病预测

步骤7:数据缩放

以下程序使用StandardScaler()对特征进行缩放,通过减去平均值并缩放为单位方差来标准化特征。缩放后的特征存储在X_scaled变量中。

示例

scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

步骤8:降维

使用PCA(n_components=2)将特征降低到两个主成分。降低后的特征存储在X_pca变量中。

示例

pca = PCA(n_components=2)
X_pca = pca.fit_transform(X_scaled)

步骤9:将数据集分为训练集和测试集

下面的程序使用train_test_split()将数据集分为训练集和测试集。

示例

X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, test_size=0.2, random_state=42)

步骤10:创建一个称为随机森林分类器的分类器

以下程序使用RandomForestClassifier()创建了随机森林分类器的一个实例。

训练模型

示例

rf_classifier = RandomForestClassifier()

# Train the model
rf_classifier.fit(X_train, y_train)

输出

RandomForestClassifier()

步骤11:对测试集进行预测

计算模型的准确度

示例

# Make predictions on the test set
y_pred = rf_classifier.predict(X_test)

accuracy = accuracy_score(y_test, y_pred)
print("\nAccuracy:", accuracy)

输出

Accuracy: 0.9230769230769231

该程序通过将预测标签(y_pred)与真实标签(y_test)进行比较,计算模型的准确性。

步骤12:混淆矩阵

它使用sklearn.metrics中的confusion_matrix()函数,并将混淆矩阵分配给变量cm。

示例

cm = confusion_matrix(y_test, y_pred)
print("\nConfusion Matrix:")
print(cm)

输出

Confusion Matrix:
[[ 5  2]
 [ 1 31]]

结论

总之,本文介绍了一种使用Python进行帕金森病预测的机器学习方法。通过利用随机森林分类器算法和综合数据集,我们展示了机器学习在准确预测帕金森病存在方面的有效性。

结果突显了这种方法在协助医疗专业人员进行早期诊断和干预方面的潜力,从而改善患者的疗效。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程