Техника оптимизации экстремального повышения

Понимание болезни

Болезнь Паркинсона — это расстройство головного мозга, которое приводит к дрожи, скованности и трудностям при ходьбе, равновесии и координации.

Симптомы болезни Паркинсона обычно начинаются постепенно и со временем ухудшаются. По мере прогрессирования заболевания у людей могут возникать трудности при ходьбе и разговоре. У них также могут быть психические и поведенческие изменения, проблемы со сном, депрессия, проблемы с памятью и усталость.

Болезнью Паркинсона могут болеть как мужчины, так и женщины. Однако это заболевание поражает примерно на 50 процентов больше мужчин, чем женщин.

Одним из явных факторов риска болезни Паркинсона является возраст. Хотя у большинства людей с болезнью Паркинсона впервые болезнь развивается примерно в возрасте 60 лет, от 5 до 10 процентов людей с болезнью Паркинсона имеют «раннее начало» болезни, которая начинается в возрасте до 50 лет. Ранние формы болезни Паркинсона часто, но не всегда передавались по наследству, а некоторые формы были связаны со специфическими генными мутациями.

Набор данных о болезни Паркинсона

Аннотация: Оксфордский набор данных для выявления болезни Паркинсона

Характеристики набора данных: Многомерный Количество экземпляров: 197 Область: Жизненные характеристики атрибутов: Реальное Количество атрибутов: 23 Дата передачи: 2008–06–26 Связанные задачи: Классификация Отсутствующие значения? Н/Д

Источник:

Набор данных был создан Максом Литтлом из Оксфордского университета в сотрудничестве с Национальным центром голоса и речи в Денвере, штат Колорадо, который записал речевые сигналы. В оригинальном исследовании были опубликованы методы извлечения признаков для общих нарушений голоса.

Информация о наборе данных:

Этот набор данных состоит из ряда биомедицинских измерений голоса 31 человека, 23 из которых страдают болезнью Паркинсона (БП). Каждый столбец в таблице представляет собой определенный показатель голоса, а каждая строка соответствует одной из 195 записей голоса этих лиц (столбец «имя»). Основная цель данных — отличить здоровых людей от людей с БП в соответствии со столбцом «статус», в котором установлено значение 0 для здоровых и 1 для БП.

Данные представлены в формате ASCII CSV. Строки CSV-файла содержат экземпляр, соответствующий одной голосовой записи. На одного пациента приходится около шести записей, имя пациента указано в первом столбце. Для получения дополнительной информации или комментариев обращайтесь к Максу Литтлу (littlem ‘@’ robots.ox.ac.uk).

Более подробная информация содержится в следующей ссылке — цитируйте: Макс А. Литтл, Патрик Э. МакШерри, Эрик Дж. Хантер, Лоррейн О. Рэмиг (2008), «Пригодность измерений дисфонии для телемониторинга болезни Паркинсона», IEEE Transactions on Biomedical Инженерия (появится).

Информация об атрибутах:

Записи столбца матрицы (атрибуты):

name — имя субъекта ASCII и номер записи

MDVP:Fo(Hz) — Средняя основная частота вокала

MDVP:Fhi(Hz) — Максимальная основная частота вокала

MDVP:Flo(Hz) — Минимальная основная частота вокала

MDVP:Jitter(%),MDVP:Jitter(Abs),MDVP:RAP,MDVP:PPQ,Jitter:DDP — несколько показателей изменения основной частоты MDVP:Shimmer,MDVP:Shimmer(dB),Shimmer:APQ3,Shimmer: APQ5,MDVP:APQ,Shimmer:DDA — Несколько показателей вариации амплитуды

NHR,HNR — Две меры отношения шума к тональным компонентам в голосовом статусе — Состояние здоровья испытуемого (один) — Паркинсонизм,

(ноль) — исправный RPDE,D2 — Две нелинейные меры динамической сложности DFA — Экспонента фрактального масштабирования сигнала spread1,spread2,PPE — Три нелинейные меры вариации основной частоты

XGBoost

XGBoost — это реализация деревьев решений Gradient Boosted. Модели XGBoost доминируют во многих соревнованиях Kaggle.

В этом алгоритме деревья решений создаются в последовательной форме. Веса играют важную роль в XGBoost. Всем независимым переменным присваиваются веса, которые затем вводятся в дерево решений, предсказывающее результаты. Вес переменных, неправильно предсказанных деревом, увеличивается, и эти переменные затем передаются во второе дерево решений. Затем эти отдельные классификаторы/предикторы объединяются, чтобы получить надежную и более точную модель. Он может работать с регрессией, классификацией, ранжированием и определяемыми пользователем задачами прогнозирования.

Для более глубокого понимания следуйте https://xgboost.readthedocs.io/en/stable/

Зажигаем рок-н-ролл👇🏻

Цель

  • Построить модель для точного определения наличия болезни Паркинсона у человека.
# necessary libraries import
import pandas as pd
import numpy as np
import os, sys
from sklearn.preprocessing import MinMaxScaler
from sklearn.model_selection import train_test_split
from xgboost import XGBClassifier
from sklearn.metrics import accuracy_score
# Read and Load the data
os.chdir("Mention the dataset path")

df = pd.read_csv("parkinsons.data")
df.head()  # print the first five rows

# Get the features and labels
features =  df.loc[:, df.columns!= "status"].values[:, 1:]
labels = df.loc[:, "status"].values
# Get the count of each label (0 and 1) in labels 
print(labels[labels == 1].shape[0], labels[labels== 0].shape[0])

147 48

  • У нас есть 147 единиц и 48 нулей в столбцах статуса в нашем наборе данных.
# scale the features to between -1 and 1
scaler = MinMaxScaler((-1,1))
x = scaler.fit_transform(features)
y=labels
# split the dataset
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size = 0.2, random_state = 7)
# train the model
model = XGBClassifier()
model.fit(x_train, y_train)

# calculate the accuracy
y_pred = model.predict(x_test)
score = accuracy_score(y_test, y_pred)
print(f"Accuracy: {round(score*100,2)}%")

  • Это дает нам точность 94,87%, что отлично, учитывая количество строк кода в этом проекте Python.

Репозиторий GitHub: https://github.com/KVishwas98/Detecting-Parkinson-s-Disease

Запрос на цитирование:

«Использование свойств нелинейного повторения и фрактального масштабирования для обнаружения нарушений голоса», Little MA, McSharry PE, Roberts SJ, Costello DAE, Moroz IM. BioMedical Engineering OnLine 2007, 6:23 (26 июня 2007 г.)

Заключение

Если вы обнаружите какие-либо трудности при выполнении урока, укажите их в разделе комментариев.

Спасибо, что прочитали! Дайте мне знать в комментарии или на linkdin, если вы считаете, что это помогло или не помогло. У меня есть еще несколько статей, которые я пишу и буду публиковать их каждые пару недель. В основном это аккаунты из моего проектного опыта. Если у вас есть какие-либо другие вопросы или что-то еще, о чем вы хотели бы услышать, не стесняйтесь отправить запрос.