В рамках регулярной задачи по улучшению своих навыков в области науки о данных и машинного обучения я использую генератор случайных ссылок на наборы данных для создания модели машинного обучения и размещаю руководство здесь и на мой GitHub. .
Итак, на этот раз набор данных, выбранный приведенным выше кодом, — это Набор данных физических действий EMG.
Небольшое описание набора данных:
Этот набор данных состоит из сигналов ЭМГ, записанных от 8 мышц; бицепсы и трицепсы рук, подколенные сухожилия и мышцы бедер обеих ног.
Четыре разных человека выполняли комбинацию из 10 агрессивных действий и 10 обычных действий. В зависимости от типа каждого из этих действий сигнал регистрирует изменение разности потенциалов на мышцах.
Глядя на набор данных, я интуитивно догадываюсь, что это проблема классификации, где задача состоит в том, чтобы проанализировать 8 входных переменных и предсказать, является ли выполняемая деятельность агрессивной или нормальной.
Исследовательский анализ данных:
Построив плотность распределения входных переменных для двух типов действий, можно определить, какая мышца (и конечность) использовалась для выполнения действия, и разницу между обоими действиями.
import matplotlib.pyplot as plt import pandas as pd dataset = pd.read_csv('Frontkicking.csv') dataset.drop(columns = [‘Aggressive’], axis = 1, inplace = True) plt.figure(figsize=(8,8)) dataset.plot(kind = ’density’, subplots = True, layout = (4,2), sharex = False, grid = True, legend = True, title = ‘Frontkicking’, cmap = ‘brg’) plt.tight_layout() plt.savefig(‘frontkicking.png’) plt.show()
d1 = pd.read_csv(‘Seating.csv’) d1.drop(columns = [‘Aggressive’], axis = 1, inplace = True) plt.figure(figsize=(8,8)) d1.plot(kind = ’density’, subplots = True, layout = (4,2), sharex = False, grid = True, legend = ‘reverse’, title = ‘Normal Activity : Seating’, cmap = ‘gnuplot’) plt.tight_layout() plt.savefig(‘seating.png’) plt.show()
А ниже весь код
- Стандартизация данных
- Обучение модели классификации Random Forest на обучающих данных
- Прогнозирование метки активности в тестовом наборе и
- Наконец, оцениваем производительность модели с перекрестной проверкой K-Fold.
Модель достигла точности 93%, что действительно очень хороший результат. Теперь давайте реализуем перекрестную проверку, чтобы проверить эффективность нашей модели.
Оценка модели с перекрестной проверкой приводит к следующим показателям:
Как видно из вышеизложенного, точность перекрестной проверки 93% и стандартное отклонение 0,0024 являются хорошим показателем того, что наша модель не была переобучена и способна в достаточной степени учитывать корреляции между независимыми функциями и целевой переменной.
Ну это все. Надеюсь, эта реализация показалась вам интересной. Учитывая, что этот набор данных был сырым, я потратил время не только на его очистку, но и сам составил постановку задачи и реализовал решение.
Таким образом, я смог получить представление о том, как данные в необработанном виде должны формироваться для полезного анализа, а также о проблемах, присущих данным, без явного упоминания о них.
Пожалуйста, посмотрите мой репозиторий GitHub, чтобы увидеть больше моих работ.
Спасибо, что прочитали эту статью, и до новых встреч.