Вы хацелі б пачаць з навучанне з дапамогай машыны?
Я стварыў просты і лёгкі падручнік для пачаткоўцаў. Разам мы разгледзім асноўныя этапы навучання мадэлі машыннага навучання.
Тлумачачы этапы навучання мадэлі адзін за адным, я таксама прывяду вельмі просты прыклад праблемы машыннага навучання. Такім чынам, калі вы хочаце працягнуць далей, вы можаце загрузіць гэты ўзор даных адсюль спасылка.
Гэта толькі прыклад набору даных, які дапаможа вам пачаць працу з машынным навучаннем.
У нас ёсць 18 каштоўнасцей людзей рознага ўзросту і полу, якія вызначылі сваю любімую музыку. Выкарыстоўваючы прыкметы «ўзросту» і «полу», мы паспрабуем адгадаць, які жанр музыкі для іх найбольш любімы.
Заўвага: у гэтым наборы даных 1 і 0 прызначаюцца полу як мужчынскі і жаночы.
Тым не менш, калі вы не хочаце рушыць услед прыкладу, гэта таксама цалкам нармальна. Я растлумачу ўсе гэтыя крокі ў дэталях. Такім чынам, давайце акунуцца!
Першае, што трэба ведаць
Перш чым перайсці да этапаў навучання мадэлі, давайце ўдакладнім некаторыя моманты. Машыннае навучанне - гэта штучны інтэлект дысцыпліна, якая сканцэнтравана на распрацоўцы алгарытмаў, якія могуць вучыцца на дадзеных.
Для гэтага мадэлі машыннага навучання навучаюцца на наборы даных, які вучыць мадэль рабіць правільныя прагнозы або класіфікацыі па свежых, раней невядомых дадзеных.
Такім чынам, што гэта за мадэлі? А мадэль машыннага навучання падобны на рэцэпт, які кампутар выкарыстоўвае для стварэння прагнозаў даных або выбару.
Мадэль, як і рэцэпт, прытрымліваецца набору інструкцый для ацэнкі даных і стварэння прагнозаў або меркаванняў на аснове шаблонаў, знойдзеных у даных. Чым больш дадзеных навучаецца мадэль, тым больш дакладнымі становяцца яе прагнозы.
Якіх мадэляў мы можам навучыць?
Давайце паглядзім, якія асноўныя мадэлі машыннага навучання.
- Лінейная рэгрэсія: мадэль, якая прадказвае бесперапынную мэтавую зменную з адной або некалькіх уваходных зменных.
- Нейронныя сеткі: сетка звязаных вузлоў, якія могуць навучыцца выяўляць складаныя шаблоны ў дадзеных.
- Дрэвы рашэнняў: падыход да прыняцця рашэнняў, пабудаваны на ланцужку разгалінаваных аператараў if-else.
- Кластарызацыя: набор мадэляў, якія групуюць супастаўныя даныя на аснове падабенства.
- Лагістычная рэгрэсія: мадэль для задач бінарнай класіфікацыі, у якой мэтавая зменная мае два патэнцыйныя значэнні.
- Дрэвы рашэнняў: падыход да прыняцця рашэнняў, пабудаваны на ланцужку разгалінаваных аператараў if-else.
- Выпадковы лес: ансамблевая мадэль, якая складаецца з мноства дрэў рашэнняў. Яны часта выкарыстоўваюцца для класіфікацыі і рэгрэсіі.
- K-бліжэйшыя суседзі: мадэль, якая прагназуе мэтавую зменную з выкарыстаннем k-бліжэйшых кропак даных у навучальным наборы.
У залежнасці ад нашай праблемы і набору даных мы вырашаем, якая мадэль машыннага навучання найбольш адпавядае нашай сітуацыі. Тым не менш, мы вернемся да гэтага пазней. Зараз давайце пачнем навучанне нашай мадэлі. Спадзяюся, вы ўжо спампавалі dataset калі вы хочаце рушыць услед нашаму прыкладу.
Акрамя таго, я рэкамендую мець Jupyter наўтбукаў усталяваны на вашай лакальнай машыне і выкарыстоўваецца для вашых праектаў машыннага навучання.
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)
хутацца
Мы скончылі навучанне нашай першай мадэлі машыннага навучання.
Я спадзяюся, што вы знайшлі гэта карысным. Цяпер вы можаце паспрабаваць выкарыстоўваць розныя мадэлі машыннага навучання, такія як лінейная рэгрэсія або выпадковы лес.
Ёсць шмат набораў даных і праблем Kaggle калі вы хочаце палепшыць сваё кадаванне і разуменне машыннага навучання.
Пакінуць каментар