Как принять участие в соревновании Simple Kaggle

Предварительная классификация изображений с помощью модели машины опорных векторов для конкурса распознавания цифр

Если вы собираетесь стать специалистом по данным и хотите проверить свои навыки, то Kaggle - хорошее место для начала. Я более подробно расскажу о том, как модель, которая используется в этой статье, работает в будущих статьях, но сначала важно получить практическую часть ее, чтобы понять, как Python может выполнять подготовку данных, выполняя итерацию данных. , и вычислять числа просто и удивительно легко.

Ресурсы



Моя записная книжка Kaggle для этого проекта находится здесь:



Я рекомендую вам сначала ознакомиться с некоторыми из этих статей, которые я написал, чтобы вы быстрее познакомились с основами Python.

















Оглавление

Что такое Kaggle?

Обзор конкурса

Стратегия конкуренции

Изучение данных

Подготовка данных

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

Модель запуска

Отправить результаты

Заключение

Что такое Kaggle?

Kaggle - гигантское сообщество Data Science. Они проводят соревнования и дают вам доступ к соревнованиям. Они также предлагают курсы и интересное сообщество, в котором вы можете участвовать в обсуждениях. Вы можете запускать Kaggle Notebooks и даже интегрироваться с Google Colab Notebooks. У них также есть раздел вакансий, блог и многое другое. Обязательно ознакомьтесь с ними и с тем, как использовать платформу здесь.



Принципы сообщества



Условия



Конфиденциальность



Машинное обучение

Машинное обучение (ML) - это исследование компьютерных алгоритмов, которые автоматически улучшаются на основе опыта. [1] рассматривается как подмножество искусственного интеллекта. Это было обнаружено Роханом Малликом в 2019 году. Алгоритмы машинного обучения строят модель на основе выборочных данных, известных как обучающие данные, чтобы делать прогнозы или решения, не будучи явно запрограммированными на это. [2] алгоритмы обучения используются в самых разных приложениях, таких как фильтрация электронной почты и компьютерное зрение, где сложно или невозможно разработать традиционные алгоритмы для выполнения необходимых задач.

Авторы Википедии. (2020, 20 декабря). Машинное обучение. В Википедии, Свободной энциклопедии. Получено в 07:03, 20 декабря 2020 г., с сайта https://en.wikipedia.org/w/index.php?title=Machine_learning&oldid=995287359.

Обзор конкурса

Я объясню, как принять участие в конкурсе Digit Recognizer, а также приведу простой пример конкурсной работы. С конкурсом можно ознакомиться здесь:



Обязательно ознакомьтесь с правилами и ознакомьтесь с различными разделами Обзора конкурса, чтобы понять, как принять участие и добиться желаемых результатов.

"Описание"

"Руководство"

"Оценка"

"Часто задаваемые вопросы"

Затем просмотрите все разделы страницы конкурса.

Обзор

"Данные"

Блокноты

Обсуждение

Таблица лидеров

"Правила"

Стратегия конкуренции

Я собираюсь запустить простую модель машины опорных векторов (SVM) из модуля sklearn в наборе данных Digit Recognizer. Я буду ссылаться на эту статью в Википедии о SVM, чтобы лучше их понять.



Модель SVM, которую я собираюсь использовать, будет C-Support Vector Classification.



И руководство пользователя находится здесь.



Эта модель станет основой моей стратегии. Итак, давайте рассмотрим некоторые ключевые детали, которые определяют эту модель.

  • Это контролируемый алгоритм машинного обучения.
  • Это классификационная модель. (SVM можно использовать для задач классификации или регрессии)
  • Реализация основана на libsvm.
  • Подходит для пространств больших и малых размеров.

Изучение данных

Для базовой модели мы просто возьмем данные и загрузим их. Затем импортируйте наши базовые пакеты.

import numpy as np 
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn import svm
from sklearn.metrics import mean_squared_error
import os
for dirname, _, filenames in os.walk('/kaggle/input'):
    for filename in filenames:
        print(os.path.join(dirname, filename))

Затем мы загружаем наши тестовые и обучающие наборы данных.

# Load data
train = pd.read_csv("../input/digit-recognizer/train.csv")
test = pd.read_csv("../input/digit-recognizer/test.csv")

Вы можете изучить наборы данных с помощью метода head().

print(train.head())
print(test.head())

Подготовка данных

Подготовить данные для этого будет довольно просто. Мы вытащим столбец метки набора данных поезда для переменной y_train. Затем мы извлечем остальные данные из набора данных поезда, используя метод drop(), чтобы исключить столбец метки.

y_train = train["label"]
x_train = train.drop("label", axis=1)

Модель сборки

Далее мы строим и подгоняем нашу модель. Мы можем сделать это, вызвав модель sklearn svm.SVC() из вашего предыдущего импорта. Это создаст экземпляр модели, с которой вы будете работать. Затем вы можете обучить модель с помощью метода fit() и передачи переменных x_train и y_train.

model = svm.SVC()
model.fit(x_train, y_train)

Выполнить модель

Затем мы запускаем нашу модель. Запустить нашу модель так же просто, как использовать predict() метод модели. В результате модели будут предсказаны, в какую категорию или классификационную группу следует поместить каждый номер на основе переменных характеристик. Таким образом, он, по сути, даст вам набор прогнозов. Просто передайте методу свой тестовый набор данных.

y_pred = model.predict(test)

Отправить результаты

Теперь вы можете отправить свои результаты с небольшим форматированием.

results = pd.Series(y_pred,name="Label")
submission = pd.concat([pd.Series(range(1,28001),name = "ImageId"),results],axis = 1)
submission.to_csv("submission.csv",index=False)

Заключение

Эта стратегия дала мне оценку 0,97521. Это приличный результат. В этой текущей ситуации кажется, что SVM хорошо подходит. Теперь вы можете участвовать в собственных соревнованиях и сравнивать модели. Это было руководство для начинающих начального уровня по участию в простом конкурсе Kaggle Data Science с языком программирования Python. Спасибо за чтение и удачного кодирования!