Техника оптимизации экстремального повышения
Понимание болезни
Болезнь Паркинсона — это расстройство головного мозга, которое приводит к дрожи, скованности и трудностям при ходьбе, равновесии и координации.
Симптомы болезни Паркинсона обычно начинаются постепенно и со временем ухудшаются. По мере прогрессирования заболевания у людей могут возникать трудности при ходьбе и разговоре. У них также могут быть психические и поведенческие изменения, проблемы со сном, депрессия, проблемы с памятью и усталость.
Болезнью Паркинсона могут болеть как мужчины, так и женщины. Однако это заболевание поражает примерно на 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, если вы считаете, что это помогло или не помогло. У меня есть еще несколько статей, которые я пишу и буду публиковать их каждые пару недель. В основном это аккаунты из моего проектного опыта. Если у вас есть какие-либо другие вопросы или что-то еще, о чем вы хотели бы услышать, не стесняйтесь отправить запрос.