Ви б хотіли почати з навчання за допомогою машини?
Я створив простий і легкий підручник для початківців. Разом ми розглянемо основні етапи навчання моделі машинного навчання.
Пояснюючи етапи навчання моделі один за одним, я також наведу простий приклад проблеми машинного навчання. Отже, якщо ви хочете слідкувати за цим, ви можете завантажити цей зразок набору даних із цього link.
Це лише зразок набору даних, який допоможе вам почати роботу з машинним навчанням.
У нас є 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())
Маленька примітка: у рядку o “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)
Обернути
Ми завершили навчання нашої першої моделі машинного навчання.
Сподіваюся, ви знайшли це корисним. Тепер ви можете спробувати використовувати різні моделі машинного навчання, як-от лінійна регресія або випадковий ліс.
Існує багато наборів даних і викликів Згорнути якщо ви хочете вдосконалити своє кодування та розуміння машинного навчання.
залишити коментар