Да ли бисте желели да почнете са Машина учење?
Направио сам једноставан и лак туторијал за потпуне почетнике. Заједно ћемо проћи кроз основне кораке обуке модела машинског учења.
Док објашњавам кораке обуке модела један по један, даћу и врло основни пример проблема машинског учења. Дакле, ако желите да пратите даље, можете преузети овај пример скупа података са овога веза.
Ово је само пример скупа података који ће вам помоћи да почнете са машинским учењем.
Имамо 18 вредности људи различитог узраста и пола који имају дефинисану омиљену музику. Користећи карактеристике „старости” и „пола” покушаћемо да погодимо који им је музички жанр омиљени.
Напомена: 1 и 0 су додељени половима као женски и мушки у овом скупу података.
Међутим, ако не желите да следите пример, такође је сасвим у реду. Све ове кораке ћу детаљно објаснити. Дакле, уронимо!
Прве ствари које треба знати
Пре него што пређемо на кораке обуке модела, хајде да разјаснимо неке тачке. Машинско учење је вештачка интелигенција дисциплина која се фокусира на развој алгоритама који могу да уче из података.
Да би се то урадило, модели машинског учења се обучавају на скупу података који подучава модел како да направи исправна предвиђања или класификације на свежим, раније непознатим подацима.
Дакле, који су ови модели? А модел машинског учења је сличан рецепту који рачунар користи за генерисање предвиђања података или избора.
Модел, као и рецепт, прати скуп упутстава за процену података и генерисање предвиђања или просуђивања на основу образаца пронађених у подацима. Што је модел обучен на више података, његова предвиђања постају тачнија.
Какве моделе можемо да обучимо?
Хајде да видимо који су основни модели машинског учења.
- Линеарна регресија: модел који предвиђа континуирану циљну променљиву из једне или више улазних варијабли.
- Неуронске мреже: мрежа повезаних чворова који могу научити да откривају компликоване обрасце у подацима.
- Стабла одлучивања: приступ доношењу одлука изграђен на ланцу разгранатих иф-елсе изјава.
- Груписање: скуп модела који групише упоредиве тачке података на основу сличности.
- Логистичка регресија: модел за проблеме бинарне класификације у којем циљна променљива има две потенцијалне вредности.
- Стабла одлучивања: приступ доношењу одлука изграђен на ланцу разгранатих иф-елсе изјава.
- Случајна шума: модел ансамбла састављен од бројних стабала одлучивања. Често се користе за класификацију и регресијске апликације.
- К-најближи суседи: модел који предвиђа циљну променљиву користећи к-најближе тачке података у скупу за обуку.
У зависности од нашег проблема и скупа података, одлучујемо који модел машинског учења највише одговара нашој ситуацији. Ипак, на ово ћемо се вратити касније. Сада, почнимо да обучавамо наш модел. Надам се да сте већ преузели скуп података ако желите да следите наш пример.
Такође, препоручујем да имате Јупитер Нотебоок инсталиран на вашој локалној машини и користи га за своје пројекте машинског учења.
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",
увозимо Пандас библиотеку и додељујемо јој псеудоним „пд“ да бисмо олакшали референцирање њених функција и објеката касније у коду.
Пандас је добро познати модул за Питхон за манипулацију и анализу података, посебно када се ради са структурираним или табеларним подацима.
У нашем примеру одређивања музичких жанрова. Прво ћемо увести скуп података. Назвао сам га мусиц.цсв, међутим, можете га назвати како год желите.
Да бисмо припремили податке за обуку модела машинског учења, поделили смо их на атрибуте (старост и пол) и циљеве (музички жанр).
Додатно ћемо поделити податке у 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)
Упаковати
Завршили смо обуку нашег првог модела машинског учења.
Надам се да сте били корисни. Сада можете покушати да користите различите моделе машинског учења као што су линеарна регресија или случајна шума.
Постоји много скупова података и изазова Каггле ако желите да побољшате своје кодирање и разумевање машинског учења.
Ostavite komentar