Как принять участие в соревновании Simple Kaggle
Предварительная классификация изображений с помощью модели машины опорных векторов для конкурса распознавания цифр
Если вы собираетесь стать специалистом по данным и хотите проверить свои навыки, то Kaggle - хорошее место для начала. Я более подробно расскажу о том, как модель, которая используется в этой статье, работает в будущих статьях, но сначала важно получить практическую часть ее, чтобы понять, как Python может выполнять подготовку данных, выполняя итерацию данных. , и вычислять числа просто и удивительно легко.
Ресурсы
Моя записная книжка Kaggle для этого проекта находится здесь:
Я рекомендую вам сначала ознакомиться с некоторыми из этих статей, которые я написал, чтобы вы быстрее познакомились с основами Python.
Введение в Pandas
Повысьте свои навыки Data Science в Python с помощью Pandas API. todatascience.com
Оглавление
Что такое 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, а также приведу простой пример конкурсной работы. С конкурсом можно ознакомиться здесь:
Digit Recognizer
Изучите основы компьютерного зрения с помощью известных данных MNIST www.kaggle.com
Обязательно ознакомьтесь с правилами и ознакомьтесь с различными разделами Обзора конкурса, чтобы понять, как принять участие и добиться желаемых результатов.
"Описание"
"Руководство"
"Оценка"
"Часто задаваемые вопросы"
Затем просмотрите все разделы страницы конкурса.
"Данные"
"Правила"
Стратегия конкуренции
Я собираюсь запустить простую модель машины опорных векторов (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. Спасибо за чтение и удачного кодирования!