Хотите начать с обучение с помощью машины?
Я создал простой и легкий учебник для полных новичков. Вместе мы рассмотрим основные этапы обучения модели машинного обучения.
Объясняя этапы обучения модели один за другим, я также приведу очень простой пример задачи машинного обучения. Итак, если вы хотите продолжить, вы можете загрузить этот пример набора данных из этого ссылке.
Это всего лишь пример набора данных, который поможет вам начать работу с машинным обучением.
У нас есть 18 ценностей людей разного возраста и пола, которые определили свою любимую музыку. Используя признаки «возраст» и «пол», мы попытаемся угадать, какой жанр музыки им нравится больше всего.
Примечание. В этом наборе данных 1 и 0 присвоены гендеру как женскому и мужскому.
Впрочем, если вы не хотите следовать примеру, это тоже прекрасно. Я подробно объясню все эти шаги. Итак, давайте погрузимся!
Первое, что нужно знать
Прежде чем перейти к этапам обучения модели, давайте проясним некоторые моменты. Машинное обучение – это искусственный интеллект дисциплина, которая фокусируется на разработке алгоритмов, способных учиться на данных.
Для этого модели машинного обучения обучаются на наборе данных, который учит модель делать правильные прогнозы или классификации на свежих, ранее неизвестных данных.
Итак, что это за модели? А модель машинного обучения подобен рецепту, который компьютер использует для генерации прогнозов данных или выбора.
Модель, как и рецепт, следует набору инструкций для оценки данных и создания прогнозов или суждений на основе закономерностей, обнаруженных в данных. Чем на большем количестве данных обучается модель, тем точнее становятся ее прогнозы.
Какие модели мы можем обучить?
Давайте посмотрим, каковы основные модели машинного обучения.
- Линейная регрессия: модель, которая прогнозирует непрерывную целевую переменную на основе одной или нескольких входных переменных.
- Нейронные сети: сеть связанных узлов, которые могут научиться обнаруживать сложные закономерности в данных.
- Деревья решений: подход к принятию решений, основанный на цепочке ветвящихся операторов if-else.
- Кластеризация: набор моделей, которые группируют сопоставимые точки данных на основе сходства.
- Логистическая регрессия: модель для задач бинарной классификации, в которой целевая переменная имеет два потенциальных значения.
- Деревья решений: подход к принятию решений, основанный на цепочке ветвящихся операторов if-else.
- Случайный лес: ансамблевая модель, состоящая из множества деревьев решений. Они часто используются для приложений классификации и регрессии.
- K-ближайшие соседи: модель, которая предсказывает целевую переменную, используя k-ближайших точек данных в обучающем наборе.
В зависимости от нашей проблемы и набора данных мы решаем, какая модель машинного обучения больше всего подходит для нашей ситуации. Тем не менее, мы вернемся к этому позже. Теперь приступим к обучению нашей модели. Надеюсь, вы уже скачали Набор данных если вы хотите последовать нашему примеру.
Также рекомендую иметь Jupyter Notebook установленный на вашем локальном компьютере и использующий его для ваших проектов машинного обучения.
1: Определите проблему
Первый этап в обучение машинному обучению Модель определяет проблему, которую необходимо решить. Это влечет за собой выбор переменных, которые вы хотите прогнозировать (известных как целевая переменная), и переменных, которые будут использоваться для создания этих прогнозов (известных как функции или предикторы).
Вы также должны решить, какую проблему машинного обучения вы пытаетесь решить (классификация, регрессия, кластеризация и т. д.) и какой тип данных вам потребуется собрать или получить для обучения вашей модели.
Тип модели, которую вы используете, будет определяться типом задачи машинного обучения, которую вы хотите решить. Классификация, регрессия и кластеризация — три основные категории задачи машинного обучения. Если вы хотите предсказать категориальную переменную, например, является ли электронное письмо спамом или нет, вы используете классификацию.
Когда вы хотите спрогнозировать непрерывную переменную, например цену дома, вы используете регрессию. Кластеризация используется для объединения сопоставимых элементов данных на основе их общих черт.
Если мы посмотрим на наш пример; наша задача состоит в том, чтобы определить предпочтительный музыкальный стиль человека по его полу и возрасту. В этом примере мы будем использовать набор данных из 18 человек и информацию об их возрасте, поле и любимом музыкальном стиле.
2. Подготовьте данные
После того, как вы определили проблему, вам нужно подготовить данные для обучения модели. Это влечет за собой очистку и обработку данных. Таким образом, мы можем гарантировать, что это в формате, который алгоритм машинного обучения можешь использовать.
Это может включать в себя такие действия, как удаление пропущенных значений, преобразование категорийных данных в числовые данные, а также масштабирование или нормализацию данных, чтобы гарантировать, что все характеристики находятся в одном масштабе.
Например, вот как вы удаляете пропущенные значения:
import pandas as pd
# Load the data into a pandas DataFrame
data = pd.read_csv('data.csv')
# Check for missing values
print(data.isnull().sum())
# Drop rows with missing values
data.dropna(inplace=True)
# Check that all missing values have been removed
print(data.isnull().sum())
Небольшое примечание: В строке о “import pandas as pd",
мы импортируем библиотеку Pandas и назначаем ей псевдоним «pd», чтобы упростить обращение к ее функциям и объектам позже в коде.
Pandas — это хорошо известный модуль Python для обработки и анализа данных, особенно при работе со структурированными или табличными данными.
В нашем примере определение музыкальных жанров. Сначала мы импортируем набор данных. Я назвал его music.csv, однако вы можете назвать его как хотите.
Чтобы подготовить данные для обучения модели машинного обучения, мы разделили их на атрибуты (возраст и пол) и цели (музыкальный жанр).
Мы дополнительно разделим данные на обучающие и тестовые наборы 80:20, чтобы оценить производительность нашей модели и избежать переобучения.
# Import necessary libraries
import pandas as pd
from sklearn.model_selection import train_test_split
# Load data from CSV file/code>
music_data = pd.read_csv('music.csv')
# Split data into features and target
X = music_data.drop(columns=['genre'])
y = music_data['genre']
# Split data into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
3. Выберите модель машинного обучения.
После того, как вы подготовили данные, вы должны выбрать модель машинного обучения, которая подходит для вашей задачи.
Есть несколько алгоритмов на выбор, таких как деревья решений, логистическая регрессия, машины опорных векторов, нейронные сети и другие. Алгоритм, который вы выберете, будет определяться типом проблемы, на которую вы пытаетесь ответить, типом данных, которые у вас есть, и вашими потребностями в производительности.
Мы будем использовать классификатор дерева решений для этого примера, потому что мы работаем с проблемой классификации (прогнозирование категориальных данных).
# Import necessary libraries
from sklearn.tree import DecisionTreeClassifier
Вот визуализация того, как работает классификатор дерева решений:
4. Тренируй модель
Вы можете начать обучение модели, когда выберете приемлемый алгоритм машинного обучения. Это влечет за собой использование ранее сгенерированных данных для обучения алгоритма тому, как делать прогнозы на свежих, ранее невиданных данных.
Алгоритм изменит свои внутренние параметры во время обучения, чтобы свести к минимуму разницу между его прогнозируемыми значениями и фактическими значениями в обучающих данных. Количество данных, используемых для обучения, а также конкретные параметры алгоритма могут влиять на точность результирующей модели.
В нашем конкретном примере теперь, когда мы определились с методом, мы можем обучить нашу модель с помощью обучающих данных.
# Train the decision tree classifier
model = DecisionTreeClassifier()
model.fit(X_train, y_train)
5. Оцените модель
После обучения модели ее необходимо оценить на новых данных, чтобы убедиться, что она точна и надежна. Это влечет за собой тестирование модели с данными, которые не использовались во время обучения, и сравнение ее прогнозируемых значений с фактическими значениями в тестовых данных.
Этот обзор может помочь в выявлении любых недостатков модели, таких как переоснащение или недообучение, и может привести к любой тонкой настройке, которая может потребоваться.
Используя данные тестирования, мы оценим правильность нашей модели.
# Import necessary libraries
from sklearn.metrics import accuracy_score
# Predict the music genre for the test data
predictions = model.predict(X_test)
# Evaluate the model's accuracy
accuracy = accuracy_score(y_test, predictions)
print("Accuracy: ", accuracy)
Показатели точности не так уж и плохи. 🙂 Чтобы улучшить свой показатель точности, вы всегда можете больше очистить данные или попробовать разные модели машинного обучения, чтобы увидеть, какая из них дает наивысший балл.
6. Тонкая настройка модели
Если эффективности модели недостаточно, вы можете настроить ее, изменив различные параметры алгоритма или полностью поэкспериментировав с новыми алгоритмами.
Эта процедура может включать в себя эксперименты с альтернативными скоростями обучения, изменение настроек регуляризации или изменение количества или размера скрытых слоев в нейронной сети.
7. Используйте модель
Когда вы довольны производительностью модели, вы можете начать использовать ее для создания прогнозов на основе новых данных.
Это может повлечь за собой ввод в модель свежих данных и использование изученных параметров модели для создания прогнозов на основе этих данных или интеграцию модели в более широкое приложение или систему.
Мы можем использовать нашу модель для создания прогнозов на основе новых данных после того, как нас удовлетворит ее точность. Вы можете попробовать разные значения пола и возраста.
# Test the model with new data
new_data = [[25, 1], [30, 0]]
predictions = model.predict(new_data)
print("Predictions: ", predictions)
Итоги
Мы закончили обучение нашей первой модели машинного обучения.
Я надеюсь, что вы нашли его полезным. Теперь вы можете попробовать использовать различные модели машинного обучения, такие как линейная регрессия или случайный лес.
Есть много наборов данных и проблем в Kaggle если вы хотите улучшить свое кодирование и понимание машинного обучения.
Оставьте комментарий