logo

Изградња модела учења у Сцикит-леарн-у

Сцикит-леарн је Питхон библиотека отвореног кода која поједностављује процес изградње модела машинског учења. Нуди чист и конзистентан интерфејс који помаже и почетницима и искусним корисницима да ефикасно раде.

10 мл до оз
  • Подржава задатке као што су кластерисање регресије класификације и претходна обрада
  • Чини изградњу модела брзом и поузданом
  • Пружа алате спремне за употребу за обуку и евалуацију
  • Смањује сложеност избегавањем ручне имплементације алгоритама

Инсталирање и коришћење Сцикит-леарн-а

Пре него што почнемо да правимо моделе, морамо да их инсталирамо Сцикит-учите. Захтева Питхон 3.8 или новији и зависи од две важне библиотеке: НумПи и СциПи. Уверите се да су они прво инсталирани.

Да бисте инсталирали Сцикит-леарн, покрените следећу команду:



пип инсталл -У сцикит-леарн

Ово ће преузети и инсталирати најновију верзију Сцикит-леарн-а заједно са његовим зависностима. Да видимо различите кораке укључене у процес изградње модела користећи Сцикит-леарн библиотеку.

Корак 1: Учитавање скупа података

Скуп података се састоји од:

  • Карактеристике (Кс): Улазне варијабле које описују податке
  • Циљ (и): Вредност коју желимо да предвидимо

Сцикит-леарн обезбеђује уграђене скупове података као што су Ирис Дигитс и Бостон Хоусинг. Коришћење скупа података Ирис:

  • лоад_ирис() учитава податке
  • Кс чува податке о карактеристикама
  • и складишти циљне ознаке
  • Феатуре_намес и таргет_намес дају описна имена

Можемо да прегледамо првих неколико редова да бисмо разумели структуру. За прилагођене скупове података Пандас се обично користи за учитавање спољних датотека као што су ЦСВ-ови.

Python
from sklearn.datasets import load_iris iris = load_iris() X = iris.data y = iris.target feature_names = iris.feature_names target_names = iris.target_names print('Feature names:' feature_names) print('Target names:' target_names) print('nType of X is:' type(X)) print('nFirst 5 rows of X:n' X[:5]) 

Излаз: 

модел1' title=Учитавање скупа података

Понекад морамо да радимо на сопственим прилагођеним подацима, а затим учитавамо спољни скуп података. За ово можемо користити библиотека панда за лако учитавање и манипулисање скуповима података.

За ово можете погледати наш чланак о Како увести цсв датотеку у пандас ?

Корак 2: Подела скупа података

Да бисмо праведно проценили модел, поделимо податке на:

  • Сет за обуку: Користи се за обуку модела
  • Скуп за тестирање: Користи се за процену колико добро модел генерализује

Користећи траин_тест_сплит поделили смо скуп података Ирис тако да је 60% за обуку и 40% за тестирање (тест_сизе=0,4). рандом_стате=1 обезбеђује поновљивост.

Након раздвајања добијамо:

  • Кс_траин и_траин -> Подаци о обуци
  • Кс_тест и_тест -> Подаци о тестирању

Провера облика обезбеђује да су подаци правилно подељени.

Python
from sklearn.model_selection import train_test_split X_train X_test y_train y_test = train_test_split(X y test_size=0.4 random_state=1) 

Сада хајде да проверимо Облици подељених података како би се осигурало да оба скупа имају исправне пропорције података избегавајући потенцијалне грешке у евалуацији модела или обуци.

Python
print('X_train Shape:' X_train.shape) print('X_test Shape:' X_test.shape) print('Y_train Shape:' y_train.shape) print('Y_test Shape:' y_test.shape) 

Излаз:

модел2' loading='lazy' title=Облик подељених података

Корак 3: Руковање категоричким подацима

Алгоритми машинског учења раде са нумеричким улазима, тако да се категоријални (текстуални) подаци морају конвертовати у бројеве. Ако нису правилно кодирани, модели могу погрешно протумачити категорије. Сцикит-леарн нуди више метода кодирања:

1. Лабел Енцодинг : Конвертује сваку категорију у јединствени цео број. На пример, у колони са категоријама као што су 'мачка', 'пас' и 'птица' то би их конвертовало у 0 1 и 2 респективно. Овај метод добро функционише када категорије имају смислен редослед, као што су Ниско Средње и Високо.

  • ЛабелЕнцодер(): Иницијализован је да креира објекат кодера који ће конвертовати категоричке вредности у нумеричке ознаке.
  • фит_трансформ(): Овај метод прво прилагођава енкодер категоричким подацима, а затим трансформише категорије у одговарајуће нумеричке ознаке.
Python
from sklearn.preprocessing import LabelEncoder categorical_feature = ['cat' 'dog' 'dog' 'cat' 'bird'] encoder = LabelEncoder() encoded_feature = encoder.fit_transform(categorical_feature) print('Encoded feature:' encoded_feature) 

Излаз:

јава поинт

Кодирана карактеристика: [1 2 2 1 0]

2. Оне-Хот Енцодинг : Оне-Хот Енцодинг креира засебне бинарне колоне за сваку категорију. Ово је корисно када категорије немају никакав природни поредак. Пример: мачка пас птица -> 3 нове колоне (мачка/пас/птица) са 1 и 0.

  • Улаз се мора преобликовати у 2Д низ
  • ОнеХотЕнцодер(спарсе_оутпут=Фалсе) генерише бинарне колоне
Python
from sklearn.preprocessing import OneHotEncoder import numpy as np categorical_feature = ['cat' 'dog' 'dog' 'cat' 'bird'] categorical_feature = np.array(categorical_feature).reshape(-1 1) encoder = OneHotEncoder(sparse_output=False) encoded_feature = encoder.fit_transform(categorical_feature) print('OneHotEncoded feature:n' encoded_feature) 

Излаз:

модел3' loading='lazy' title=

Поред кодирања ознака и Оне-хот Енцодинг постоје и друге технике као што су Меан Енцодинг .

покушајте цатцх блоцк у Јави

Корак 4: Обука модела

Сада када су наши подаци спремни, време је да обучимо модел машинског учења. Сцикит-леарн има много алгоритама са доследним интерфејсом за предвиђање и евалуацију обуке. Овде ћемо користити Логистичка регресија као пример.

Напомена : Нећемо улазити у детаље о томе како алгоритам функционише јер нас занима само разумевање његове имплементације. 

  • лог_рег = ЛогистицРегрессион(мак_итер=200): Креирање објекта класификатора логистичке регресије.
  • лог_рег.фит(Кс_траин и_траин): Користећи ово модел логистичке регресије прилагођава параметре модела тако да најбоље одговарају подацима.
Python
from sklearn.linear_model import LogisticRegression log_reg = LogisticRegression(max_iter=200) log_reg.fit(X_train y_train) 
модел4' loading='lazy' title=Обука коришћењем логистичке регресије.

Корак 5: Направите предвиђања

Када смо обучени, користимо модел за предвиђање тестних података Кс_тест позивањем методе предвиђања. Ово враћа предвиђене ознаке и_пред.

  • лог_рег.предицт: Користи обучени модел логистичке регресије за предвиђање ознака за податке теста Кс_тест.
Python
y_pred = log_reg.predict(X_test) 

Корак 6: Процена тачности модела

Проверите колико добро функционише наш модел тако што ћете упоредити и_тест и и_пред. Овде користимо метод метричког модула аццураци_сцоре.

Python
from sklearn import metrics print('Logistic Regression model accuracy:' metrics.accuracy_score(y_test y_pred)) 

Излаз:

Тачност модела логистичке регресије: 0,9666666666666667

Сада желимо да наш модел предвиђа предвиђања нових узорака података. Тада се узорак уноса може једноставно пренети на исти начин као што прослеђујемо било коју матрицу карактеристика. Овде смо га користили као узорак = [[3 5 4 2] [2 3 5 4]]

Python
sample = [[3 5 4 2] [2 3 5 4]] preds = log_reg.predict(sample) pred_species = [iris.target_names[p] for p in preds] print('Predictions:' pred_species) 

Излаз: 

Предвиђања: [нп.стр_('виргиница') нп.стр_('виргиница')]

Карактеристике Сцикит-леарн-а

Сцикит-леарн се користи јер чини израду модела машинског учења једноставним и ефикасним. Ево неколико важних разлога:

  1. Алатке спремне за употребу : Пружа уграђене функције за уобичајене задатке као што су модели обуке за претходну обраду података и прављење предвиђања. Ово штеди време избегавањем потребе за кодирањем алгоритама од нуле.
  2. Једноставна евалуација модела : Са алаткама као што су унакрсна валидација и метрика учинка помаже да се измери колико добро функционише наш модел и идентификује области за побољшање.
  3. Широка подршка за алгоритам : Нуди много популарних алгоритама машинског учења, укључујући регресију класификације и груписање, што нам даје флексибилност да изаберемо прави модел за наш проблем.
  4. Глатка интеграција : Изграђен на врху важних Питхон библиотека као што су НумПи и СциПи тако да се уклапа у наш постојећи ток рада анализе података.
  5. Једноставан и доследан интерфејс : Иста једноставна синтакса функционише на различитим моделима и помаже у лакшем учењу и пребацивању између алгоритама.
  6. Лако подешавање модела : Алати као што је претрага мреже помажу нам да фино подесимо подешавања нашег модела како бисмо побољшали тачност без додатних проблема.

Предности коришћења Сцикит-леарн-а

  • Усер-Фриендли : Доследан и једноставан интерфејс Сцикит-леарн-а чини га приступачним почетницима и најбољим за стручњаке.
  • Уштеда времена: Унапред изграђени алати и алгоритми смањују време развоја што нам омогућава да се више фокусирамо на решавање проблема него на детаље кодирања.
  • Боље перформансе модела : Лаки за коришћење алати за подешавање и евалуацију помажу у побољшању тачности и поузданости модела.
  • Флексибилан и скалабилан : Подржава широк спектар алгоритама и глатко се интегрише са другим Питхон библиотекама и помаже да буде погодан за пројекте било које величине.
  • Снажна подршка заједнице : Велика активна заједница обезбеђује редовно ажурирање обимне документације и обиље ресурса за помоћ када запнемо.
Креирај квиз