Tarun Reddy's other Models Reports

Major Concepts

 

Sign-Up/Login to access Several ML Models and also Deploy & Monetize your own ML solutions for free

Models Home » Domain Usecases » Health Care and Pharmaceuticals » Parkinson's Disease Prediction using Support Vector Machine

Parkinson's Disease Prediction using Support Vector Machine

Models Status

Model Overview



Parkinson's disease is a progressive nervous system disorder that affects movement. The symptoms usually emerge slowly, and as the disease worsens, non-motor symptoms become more common. Symptoms of Parkinson's disease include Tremor, Slowed Movement, Rigid Muscles, Impaired posture, and balance, change in speech and write. The most common presenting sign is a coarse, slow tremor of the hand at rest, which disappears during voluntary movement of the affected arm and in the deeper stages of sleep.

Dataset Information:


Matrix column entries (attributes):
name - ASCII subject name and recording number
MDVP:Fo(Hz) - Average vocal fundamental frequency
MDVP:Fhi(Hz) - Maximum vocal fundamental frequency
MDVP:Flo(Hz) - Minimum vocal fundamental frequency
MDVP:Jitter(%),MDVP:Jitter(Abs),MDVP:RAP,MDVP:PPQ,Jitter:DDP - Several
measures of variation in fundamental frequency
MDVP:Shimmer,MDVP:Shimmer(dB),Shimmer:APQ3,Shimmer:APQ5,MDVP:APQ,Shimmer:DDA - Several measures of variation in amplitude
NHR,HNR - Two measures of ratio of noise to tonal components in the voice
status - Health status of the subject (one) - Parkinson's, (zero) - healthy
RPDE,D2 - Two nonlinear dynamical complexity measures
DFA - Signal fractal scaling exponent
spread1,spread2,PPE - Three nonlinear measures of fundamental frequency variation

Accuracy : 87%

IMPORTING REQUIRED LIBRARIES


import numpy as np
import pandas as pd
from sklearn.metrics import accuracy_score
from sklearn.preprocessing import StandardScaler
from sklearn import svm
from sklearn.model_selection import train_test_split

Now, let's import the dataset.


df = pd.read_csv('E:\\parkinsons.csv')

Let us check the first five rows of the dataset using the head function.


df.head()


Now check if there are any missing values present in the dataset.


df.isnull().sum()


Now let us group the data based on the target variable


parkinsons_data.groupby('status').mean()


In the next step separate the target and feature variables by removing name and status column


X = df.drop(columns=['name','status'], axis=1)
Y = df['status']

print(X)




print(Y)


The next step is to split the data into training data and testing data


X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.2, random_state=2)

print(X.shape, X_train.shape, X_test.shape)


Data Standardization


scaler = StandardScaler()
scaler.fit(X_train)
X_train = scaler.transform(X_train)
X_test = scaler.transform(X_test)
print(X_train)


Let us now build the model using support vector machine


model = svm.SVC(kernel='linear')

training the SVM model with training data.

model.fit(X_train, Y_train)

Let us now check the accuracy of training data.


X_train_prediction = model.predict(X_train)
training_data_accuracy = accuracy_score(Y_train, X_train_prediction)
print('Accuracy score of training data : ', training_data_accuracy)



# accuracy score on testing data
X_test_prediction = model.predict(X_test)
test_data_accuracy = accuracy_score(Y_test, X_test_prediction)
print('Accuracy score of test data : ', test_data_accuracy)


let us now evaluate the model by passing new data points.


input_data = (119.99200,157.30200,74.99700,0.00784,0.00007,0.00370,0.00554,0.01109,0.04374,0.42600,0.02182,0.03130,0.02971,0.06545,0.02211,21.03300,0.414783,0.815285,-4.813031,0.266482,2.301442,0.284654)
# changing input data to a numpy array
input_data_as_numpy_array = np.asarray(input_data)

# reshape the numpy array
input_data_reshaped = input_data_as_numpy_array.reshape(1,-1)

# standardize the data
std_data = scaler.transform(input_data_reshaped)

prediction = model.predict(std_data)
print(prediction)

if (prediction[0] == 0):
print("The Person does not have Parkinsons Disease")

else:
print("The Person has Parkinsons")



Citation:
'Exploiting Nonlinear Recurrence and Fractal Scaling Properties for Voice Disorder Detection',
Little MA, McSharry PE, Roberts SJ, Costello DAE, Moroz IM.
BioMedical Engineering OnLine 2007, 6:23 (26 June 2007).



0 comments