Дали сакате да започнете со машинско учење?
Направив едноставен и лесен туторијал за комплетни почетници. Заедно, ќе ги разгледаме основните чекори за обука на модел за машинско учење.
Додека ги објаснувам чекорите за обука на модел еден по еден, ќе дадам и многу основен пример за проблем со машинско учење. Значи, ако сакате да го следите, можете да го преземете овој примерок сет на податоци од ова линк.
Ова е само примерок на податоци за да ви помогне да започнете со машинско учење.
Имаме 18 вредности на луѓе од различна возраст и пол на кои им е дефинирана омилената музика. Со користење на карактеристиките „возраст“ и „пол“ ќе се обидеме да погодиме кој жанр на музика им е омилен.
Забелешка: 1 и 0 се доделени на половите како женски и машки во оваа база на податоци.
Меѓутоа, ако не сакате да го следите примерот, тоа е исто така сосема во ред. Ќе ги објаснам сите овие чекори во детали. Значи, ајде да се нурнеме!
Првите работи што треба да ги знаете
Пред да одиме во чекорите на обука на модел, да разјасниме некои точки. Машинското учење е вештачка интелигенција дисциплина која се фокусира на развивање алгоритми кои можат да учат од податоците.
За да го направите ова, моделите за машинско учење се обучуваат на база на податоци што го учи моделот како да прави точни предвидувања или класификации на свежи, претходно непознати податоци.
Па, кои се овие модели? А модел на машинско учење е сличен на рецепт што компјутерот го користи за да генерира податоци предвидувања или избори.
Моделот, како рецепт, следи збир на инструкции за да ги процени податоците и да генерира предвидувања или пресуди врз основа на обрасци пронајдени во податоците. Колку повеќе податоци е обучен моделот, толку попрецизни стануваат неговите предвидувања.
Какви модели можеме да тренираме?
Ајде да видиме кои се основните модели за машинско учење.
- Линеарна регресија: модел кој предвидува континуирана целна променлива од една или повеќе влезни променливи.
- Неврални мрежи: мрежа од поврзани јазли кои можат да научат да откриваат комплицирани обрасци во податоците.
- Дрвја на одлуки: пристап за донесување одлуки изграден врз синџир на разгранети ако-или изјави.
- Кластерирање: збир на модели кои групираат споредливи точки на податоци врз основа на сличност.
- Логистичка регресија: модел за проблеми со бинарна класификација во која целната променлива има две потенцијални вредности.
- Дрвја на одлуки: пристап за донесување одлуки изграден врз синџир на разгранети ако-или изјави.
- Случајна шума: модел на ансамбл составен од бројни стебла на одлучување. Тие често се користат за апликации за класификација и регресија.
- K-Најблиски соседи: модел кој ја предвидува целната променлива користејќи ги k-најблиските точки на податоци во комплетот за обука.
Во зависност од нашиот проблем и базата на податоци, одлучуваме кој модел на машинско учење најмногу одговара на нашата ситуација. Сепак, на ова ќе се вратиме подоцна. Сега, да почнеме да го тренираме нашиот модел. Се надевам дека веќе сте ја преземале база на податоци ако сакате да го следите нашиот пример.
Исто така, препорачувам да имате Upупитер тетратка инсталирана на вашата локална машина и ја користи за вашите проекти за машинско учење.
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)
Заврши
Завршивме со обука на нашиот прв модел за машинско учење.
Се надевам дека ви беше корисно. Сега може да се обидете да користите различни модели за машинско учење како што се Линеарна регресија или Случајна шума.
Има многу збирки на податоци и предизвици во Кагла ако сакате да го подобрите вашето кодирање и разбирање на машинското учење.
Оставете Одговор