Постановка задачи

Совсем недавно завершились летние Олимпийские игры 2020 года в Токио. Однако я до сих пор не могу справиться с послеолимпийским похмельем. Это мини-упражнение носит исследовательский характер, поскольку мне интересно выяснить, повлияет ли уровень развития каждой страны на ее успех с точки зрения количества медалей. Это связано с тем, что страны с высоким статусом развития, такие как Сингапур, Объединенные Арабские Эмираты и Исландия, не смогли завоевать хотя бы медали на недавних Олимпийских играх. Это пробудило во мне любопытство, чтобы узнать, играет ли приведенное выше утверждение определенную роль. Кроме того, если приведенное выше утверждение верно, это мини-упражнение может проверить, влияет ли уровень грамотности каждой страны на успех каждой страны на Олимпийских играх 2020 года в Токио.

Ресурсы для этого мини-упражнения можно найти на моем GitHub, который включает в себя наборы данных, файл веб-скрейпинга Python и записную книжку Python для обработки данных, а также для построения моделей.

Наборы данных

В этом мини-упражнении использовалось несколько наборов данных. Они включают:

  • Количество олимпийских медалей с официального сайта Олимпийских игр

  • Веб-скрапинг команд-участниц Олимпиады-2020 в Токио из Википедии.

  • Мировое экономическое положение и перспективы Организации Объединенных Наций (UNWESP) 2020

  • Уровень грамотности в каждой стране из World Population Review

Аккуратность и преображение

Python, включая его пакеты — BeautifulSoup, Selenium и Pandas, использовался в этом мини-упражнении.

Поскольку в подсчет олимпийских медалей не входят страны, которые не смогли выиграть ни одной медали, для извлечения команд-участниц Олимпийских игр 2020 года в Токио из Википедии необходим веб-скрейпинг. В этом процессе используются BeautifulSoup и Selenium. При очистке создается вывод списка. Выходные данные в виде списка включают не только участвующие команды, но и зашумленные данные. Следовательно, необходимо применять методы поиска и нарезки. Я нарезал список, где начальная точка содержит элемент Афганистан, а конечная точка содержит элемент Зимбабве, так как участвующие команды расположены в алфавитном порядке. Наконец, после того, как я получил участвующие команды, я записал и сохранил их в файле значений, разделенных запятыми (CSV).

Python Pandas используется для получения фрейма данных подсчета олимпийских медалей. Однако наименование команд в подсчете олимпийских медалей отличается от общего числа участвующих команд Википедии. Таким образом, переименование всех команд в подсчете олимпийских медалей на названия команд-участников из Википедии выполнено. Кроме того, олимпийская сборная беженцев, а также зашумленные данные удалены из базы данных подсчета олимпийских медалей, поскольку олимпийцы олимпийской сборной беженцев из разных стран — Австрии, Бельгии, Бразилии, Канады, Франции, Германии, Израиля, Кении. , Нидерланды, Португалия, Россия, Швейцария, Тринидад и Тобаго и Великобритания. Поскольку задействовано много стран с разным статусом развития, необходимо исключить олимпийскую сборную беженцев из анализа.

Объединение фрейма данных «Подсчет олимпийских медалей» и фрейма данных «Названия команд-участников» из Википедии выполняется для добавления команд, не включенных в фрейм данных «Подсчет олимпийских медалей». Кроме того, объединение фреймов данных происходит с появлением нулевых значений, которые будут заполнены нулями. Это связано с тем, что это страны, которые не фигурировали во фрейме данных подсчета олимпийских медалей, поскольку у этих стран нет медалей.

Наконец, пришло время добавить данные о состоянии развития и уровне грамотности каждой страны! К сожалению, отчет UNWESP представлен в формате PDF. Следовательно, условные утверждения используются для классификации состояния развития каждой участвующей страны в структуре данных с точки зрения следующего:

  • Высокодоходный: Развитый
  • Доход выше среднего: развивающийся
  • Доход ниже среднего: развивающийся
  • Низкий доход: наименее развитый
  • Другие (особенно малые островные государства): Развивающиеся

Python Pandas используется для добавления уровня грамотности из World Population Review для каждой страны-участницы Олимпийских игр 2020 года в Токио. Тем не менее, есть некоторые страны, где нет данных об уровне грамотности. Поэтому средние значения уровня грамотности добавляются к тем странам-участницам, по которым нет данных об уровне грамотности.

Построение модели

Модели машинного обучения могут работать только с числовыми значениями. Следовательно, необходимо преобразовать категориальные значения соответствующих признаков в числовые. Это называется кодированием признаков. Кодирование объекта применяется к переменной Статус разработки, поскольку это категориальная переменная. Он обозначен следующим образом:

  • 0: развито
  • 1: Разработка
  • 2: Наименее развитый

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

Из таблицы корреляции видно, что уровень грамотности имеет низкую положительную степень корреляции с общим количеством медалей, в то время как статус развития имеет низкую отрицательную степень корреляции с общим количеством медалей. Однако степень корреляции между общим количеством медалей и статусом развития выше, чем степень корреляции между общим количеством медалей и уровнем грамотности. Таким образом, обе переменные считаются частью анализа. Кроме того, это также согласуется с моими целями, как указано в моем заявлении о проблеме выше.

Проводится разделение набора данных на набор обучающих данных 75% и набор тестовых данных 25%.

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X,y,random_state=42,test_size=0.25)

Наконец, проводится проверка точности каждой модели машинного обучения. Были рассмотрены следующие модели машинного обучения и показана их точность (с точностью до 2 знаков после запятой):

  • Логистическая регрессия (57,69%)
  • K-ближайшие соседи (KNN) (51,92%)
  • Наивный байесовский классификатор (48,08%)
  • Классификатор случайного леса (42,31%)
  • Классификатор дерева решений (42,31%)
for name, model in models:
    print(name)
    model.fit(X_train,y_train)
    predictions = model.predict(X_test)
    print(accuracy_score(predictions,y_test))
    print('\n')

Среди вышеперечисленных моделей логистическая регрессия имеет самую высокую точность. Поэтому выполняется 10-кратная перекрестная проверка, чтобы узнать оценку модели логистической регрессии. Используя среднее значение, результат показывает 54,64% (с двумя знаками после запятой).

from sklearn.model_selection import cross_val_score
score = cross_val_score(LogisticRegression(),X,y,cv=10)
score.mean()

Это показывает, что при использовании модели логистической регрессии точность предсказания того, как статус развития каждой страны и уровень грамотности каждой страны влияют на успех стран в получении медалей, составляет около 54,64%.

Вывод

Эта статья была написана, чтобы показать, как можно использовать машинное обучение для расчета точности того, как независимые переменные (т.е. уровень развития и уровень грамотности) влияют на зависимую переменную (т.е. успех стран с точки зрения полученных ими медалей), и не пытается на самом деле получить правильные результаты, так как используемых данных для этого недостаточно. Я пишу, чтобы оценить процесс выполнения этого мини-упражнения и использовать недавние летние Олимпийские игры 2020 года в Токио как часть этого мини-упражнения, потому что я страстный поклонник летних Олимпийских игр, и это также актуальная тема. Поэтому, пожалуйста, относитесь к этой статье как к части вашего обучения. Определенно, было бы здорово использовать более глубокий подход для улучшения и обеспечения более качественных и значимых результатов. Это включает в себя сбор более релевантных данных, таких как валовой внутренний продукт на основе паритета покупательной способности (ВВП (ППС)) каждой страны, или использование количества золотых, серебряных и бронзовых медалей для выполнения порядкового кодирования для повышения точности моделей.