Каб вылучыць падрыхтаваны класіфікатар у Python з дапамогай модуля «расаленне», мы можам выканаць некалькі простых крокаў. Пікаванне дазваляе нам серыялізаваць аб'ект і захаваць яго ў файл, які потым можна загрузіць і выкарыстоўваць пазней. Гэта асабліва карысна, калі мы хочам захаваць падрыхтаваную мадэль машыннага навучання, напрыклад класіфікатар рэгрэсіі, для выкарыстання ў будучыні без неабходнасці кожны раз перавучваць яе.
Па-першае, нам трэба імпартаваць модуль 'pickle' у наш скрыпт Python:
python import pickle
Далей нам трэба навучыць наш класіфікатар і атрымаць падрыхтаваную мадэль. Давайце выкажам здагадку, што мы ўжо навучылі класіфікатар рэгрэсіі і захавалі яго ў зменнай пад назвай "regression_model".
Для марынавання навучанай мадэлі мы можам выкарыстоўваць функцыю "pickle.dump()". Гэтая функцыя прымае два параметры: аб'ект, які мы хочам замарынаваць (у дадзеным выпадку навучаны класіфікатар), і аб'ект файла, у які мы хочам захаваць замарынаваны аб'ект. Мы можам адкрыць файл у двайковым рэжыме запісу з дапамогай функцыі «open()».
python with open('regression_model.pkl', 'wb') as file: pickle.dump(regression_model, file)
У прыведзеным вышэй кодзе мы адкрываем файл з назвай 'regression_model.pkl' у двайковым рэжыме запісу ('wb') і перадаем яго ў якасці другога параметра ў 'pickle.dump()'. Навучаны класіфікатар, які захоўваецца ў зменнай 'regression_model', выбіраецца і захоўваецца ў файл.
Цяпер мы паспяхова замарынавалі наш падрыхтаваны класіфікатар. Мы можам загрузіць яго назад у памяць, калі нам гэта спатрэбіцца, выкарыстоўваючы функцыю "pickle.load()".
python with open('regression_model.pkl', 'rb') as file: loaded_model = pickle.load(file)
У прыведзеным вышэй кодзе мы адкрываем замарынаваны файл у двайковым рэжыме чытання ('rb') і перадаем яго ў якасці параметра 'pickle.load()'. Выбраны аб'ект загружаецца ў зменную 'loaded_model', якую можна выкарыстоўваць для прагназавання або любых іншых аперацый.
Вось поўны прыклад, які дэманструе марынаванне і загрузку падрыхтаванага класіфікатара рэгрэсіі:
python import pickle from sklearn.linear_model import LinearRegression # Training the regression model X_train = [[1], [2], [3], [4], [5]] y_train = [2, 4, 6, 8, 10] regression_model = LinearRegression() regression_model.fit(X_train, y_train) # Pickling the trained model with open('regression_model.pkl', 'wb') as file: pickle.dump(regression_model, file) # Loading the pickled model with open('regression_model.pkl', 'rb') as file: loaded_model = pickle.load(file) # Using the loaded model for prediction X_test = [[6]] predicted_value = loaded_model.predict(X_test) print(predicted_value)
У прыведзеным вышэй прыкладзе мы спачатку навучым простую мадэль лінейнай рэгрэсіі з дапамогай класа "LinearRegression" з модуля "sklearn.linear_model". Затым мы марынуем навучаную мадэль у файл з назвай "regression_model.pkl". Пазней мы загружаем марынаваную мадэль з файла і выкарыстоўваем яе для прагназавання значэння тэставага ўводу «X_test».
Выбіраючы і загружаючы навучаны класіфікатар, мы можам паўторна выкарыстоўваць мадэль без неабходнасці перавучвання, што можа зэканоміць значную колькасць часу і вылічальных рэсурсаў.
Іншыя апошнія пытанні і адказы адносна EITC/AI/MLP Машыннае навучанне з Python:
- Што такое машына апорнага вектара (SVM)?
- Ці добра падыходзіць алгарытм K бліжэйшых суседзяў для стварэння мадэляў машыннага навучання, якія можна навучыць?
- Ці звычайна алгарытм навучання SVM выкарыстоўваецца ў якасці двайковага лінейнага класіфікатара?
- Ці могуць алгарытмы рэгрэсіі працаваць з бесперапыннымі дадзенымі?
- Лінейная рэгрэсія асабліва добра падыходзіць для маштабавання?
- Як дынамічная прапускная здольнасць са зрушэннем сярэдняга значэння адаптыўна наладжвае параметр паласы прапускання на аснове шчыльнасці кропак даных?
- Якая мэта прысваення вагі наборам функцый у рэалізацыі дынамічнай паласы прапускання сярэдняга зруху?
- Як вызначаецца новае значэнне радыуса ў падыходзе да дынамічнай прапускной здольнасці сярэдняга зруху?
- Як падыход дынамічнай прапускной здольнасці сярэдняга зруху апрацоўвае правільны пошук цэнтраідаў без жорсткага кадавання радыуса?
- Якое абмежаванне выкарыстання фіксаванага радыуса ў алгарытме сярэдняга зруху?
Глядзіце больш пытанняў і адказаў у EITC/AI/MLP Machine Learning with Python