Vijesti o Tehnologiji, Recenzije i Savjeti!

Vizualizacija i usporedba ML modela pomoću LazyPredicta

Napomena: Sljedeći članak će vam pomoći: Vizualizacija i usporedba ML modela pomoću LazyPredicta

Živimo u razdoblju računalne i tehnološke nadmoći, gdje se računalstvo preselilo s velikih mainframe računala sa zamršenim žicama na računala u eru računalstva u oblaku. Svijet oko nas se brzo mijenja, a ono što ga čini čak nevjerojatnim nije ono što se dogodilo do sada, već ono što tek dolazi. Uzbudljivo je vrijeme za život u kojem se razvijaju različiti alati i tehnike, nakon čega slijedi veliki napredak u računalstvu, što se doista može nazvati svijetom Data Science!. Strojno učenje, ili skraćeno ML, pokazalo se jednim od tehnoloških dostignuća koja najviše mijenjaju igre u ovom desetljeću. U sve konkurentnijem korporativnom svijetu, ML omogućuje organizacijama da ubrzaju digitalnu transformaciju i brzo prijeđu u doba automatizacije. AI/ML je tu da ostane relevantan zbog svoje potrebe za korištenjem u svakodnevnom životu, kao što su digitalna plaćanja i otkrivanje prijevara u bankarstvu ili davanje preporuka proizvoda klijentima.

Usvajanje algoritama strojnog učenja i metoda za njihovo učenje dobro su dokumentirani i lako dostupni, a različite tvrtke počinju usvajati strojno učenje u velikom broju po vertikalama. Svaka druga aplikacija i softver koji je danas dostupan diljem interneta na ovaj ili onaj način koristi strojno učenje. Strojno učenje sada je postalo glavno rješenje za tvrtke za rješavanje problema. Danas se može koristiti strojno učenje za obradu trenutnih i prošlih podataka za predviđanje budućih podataka. Druge aplikacije u stvarnom svijetu variraju od pronalaženja najkraćeg puta na karti do odredišta do identificiranja vrsta stanica raka.

Proces razvoja modela strojnog učenja može biti kompliciran, a model koji se razvija mora biti konstruiran na takav način da savršeno odgovara problemu. Strojno učenje koristi se ili za rješavanje problema ili za pružanje uvida koji mogu dovesti do boljeg donošenja odluka, gdje god su podaci prisutni. Međutim, u slučaju modela strojnog učenja nijedna se metoda ne može koristiti za rješavanje svih problema. Različite vrste algoritama razvijene su za rješavanje različitih problema koristeći potpuno različite tehnike. Za svaki razred, uneseni inputi, izvršeni zadatak i postignuti rezultati su izuzetno različiti.

Neke od glavnih vrsta su nadzirano učenje, polunadzirano učenje i učenje s potkrepljenjem. Nadzirano učenje je algoritam strojnog učenja gdje se model ili funkcija razvijaju za mapiranje ulaza iz testnih podataka u njihov odgovarajući izlaz. Ovdje je skup podataka za obuku baza podataka označenih podataka, a testni podaci su skup ulaza koji nemaju oznake. Učenje bez nadzora vrsta je strojnog učenja koje koristi zaključke izvedene iz skupa podataka bez oznaka. Algoritmi učenja s pojačanjem vrsta su modela strojnog učenja u kojem zadatke izvršava agent u određenom simulacijskom okruženju. Tijekom toga, agent prima ili nagradu ili kaznu za svaki izvršeni zadatak. Za razliku od drugih pristupa strojnog učenja, algoritam ne dobiva nikakve upute i uči sam.

Metode strojnog učenja ovise o vrsti zadatka i mogu se dalje kategorizirati kao modeli klasifikacije, regresijski modeli, grupiranje itd. Klasifikacija je zadatak predviđanja vrste ili klase objekta iz konačnog broja opcija. Izlazna varijabla generirana klasifikacijom obično je kategorička, ali regresija se može koristiti za rješavanje skupa problema korištenjem kontinuirane izlazne varijable. Predviđanje cijena zrakoplovnih karata, na primjer, klasična je regresijska zadaća. Grupiranje je, s druge strane, izazov grupiranja stavki koje su na neki način povezane. Pomaže u automatiziranoj identifikaciji sličnih predmeta bez potrebe za ljudskom interakcijom.

Što je LazyPredict?

LazyPredict je python biblioteka otvorenog koda koja vam pomaže da poluautomatizirate svoj zadatak strojnog učenja. Može izgraditi više modela bez pisanja puno koda i pomaže razumjeti koji modeli bolje funkcioniraju za obrađen skup podataka bez potrebe za podešavanjem parametara. Koristeći LazyPredict, možete primijeniti sve modele na taj skup podataka kako biste usporedili i analizirali izvedbu našeg osnovnog modela. Ovdje osnovni model znači “model bez parametara”. Može pomoći u izvođenju točnosti, a nakon dobivanja točnosti za sve modele, može se odabrati najbolji 5 modele i zatim na njih primijeniti podešavanje hiperparametara. Dolazi s Lazy Classifierom za rješavanje problema klasifikacije i Lazy Regressorom za rješavanje problema regresije.

Prilikom izgradnje modela strojnog učenja ne može se biti siguran koji će algoritam dobro funkcionirati na danom skupu podataka; dakle, završava isprobavanjem mnogih modela i ponavljanjem dok se ne sintetizira odgovarajuća točnost. LazyPredict dolazi u pomoć za takve slučajeve upotrebe, generirajući performanse svih osnovnih algoritama strojnog učenja na vašem modelu. Uz ocjenu točnosti, LazyPredict također pruža određene metrike procjene i opisuje vrijeme potrebno za svaki model.

Početak rada s kodom

U ovom ćemo članku implementirati model pomoću biblioteke LazyPredict, koja će nam pomoći pronaći najprikladniji model za klasifikaciju i regresiju koji će se koristiti za naš skup podataka i ocjenu točnosti svakog modela. Osim toga, također ćemo vizualizirati rezultate točnosti kako bismo usporedili i odabrali najprikladniji model za skup podataka koji se obrađuje. Sljedeći kod inspiriran je dokumentacijom koju su osigurali kreatori LazyPredicta, čija se poveznica može pronaći ovdje.

Instaliranje knjižnice

Prvi korak bit će instaliranje biblioteke LazyPredict za postavljanje našeg modela; možete koristiti sljedeći kod da to učinite,

!pip instaliraj lazypredict !pip instaliraj scipy==1.7.1

Također instaliramo najnoviju verziju SciPy-ja, koja će nam pomoći da bolje obrađujemo podatke.

#kloniranje modela !git klon https://github.com/shankarpandala/lazypredict.git

Izvođenje klasifikacije: Uvoz ovisnosti

Sada ćemo uvesti potrebne bitne ovisnosti za naš model,

# Import knjižnica import lazypredict from lazypredict.Supervised import LazyClassifier from sklearn.datasets import load_breast_cancer from sklearn.model_selection import train_test_split

Učitavanje skupa podataka

Učitajmo sada naš skup podataka; koristimo ugrađeni skup podataka o raku dojke za naš prvi problem.

# Učitaj podatke skupa podataka = load_breast_cancer() X = data.data y= data.target

Dijeljenje skupa podataka na obuku i testiranje,

# Dijeljenje skupa podataka X_train, X_test, y_train, y_test = train_test_split(X, y,test_size=.2,random_state =42)

Izvođenje klasifikacije

Uz učitani skup podataka i sve ostalo postavljeno, izvršimo sada naš zadatak klasifikacije. Za to ćemo postaviti naš cjevovod klasifikacije pomoću LazyClassifier-a.

# Definiranje parametara za lazyclassifier clf = LazyClassifier(verbose=0,ignore_warnings=True, custom_metric=Ništa) models_train,predictions_train = clf.fit(X_train, X_train, y_train, y_train) models_test,predictions_test = clf.fit(X_train, X_test, y_train, y_test) # Ispis svih performansi modela models_train

Izlaz:

Kao što vidite, LazyClassifier nam je dao rezultate za sve moguće modele prema našem skupu podataka!

Sada vizualizirajmo rezultate kako bismo bolje razumjeli,

#plotting the accuracy scores import matplotlib.pyplot as plt import seaborn as sns plt.figure(figsize=(10, 5)) sns.set_theme(style=”whitegrid”) ax = sns.barplot(x=models_train.index, y=”Accuracy”, data=models_train) plt.xticks(rotation=90)

Vizualizacija i usporedba ML modela pomoću LazyPredicta 1

import matplotlib.pyplot as plt import seaborn as sns plt.figure(figsize=(510)) sns.set_theme(style=”whitegrid”) ax = sns.barplot(y=models_train.index, x=”Accuracy”, data=models_train)

Vizualizacija i usporedba ML modela pomoću LazyPredicta 2

Koristeći takve vizualizacije, sada možemo lako razumjeti najbolji model koji se koristi za optimalnu točnost.

Izvođenje regresije

Također možemo izvesti regresiju pomoću modula LazyRegressor na drugom skupu podataka!

# Uvoz biblioteka iz lazypredict.Supervised import LazyRegressor iz sklearn import skupova podataka iz sklearn.utils import shuffle import numpy as np # Učitavanje bostonskog skupa podataka boston = datasets.load_boston() X, y = shuffle(boston.data, boston.target, random_state=42) #Splitting Data X_train, X_test, y_train, y_test = train_test_split(X, y,test_size=.2,random_state =42) # izgradnja cjevovoda reg = LazyRegressor(verbose=0,ignore_warnings=False, custom_metric=Ništa) models_train,predictions_train = reg.fit(X_train, X_train, y_train, y_train) models_test,predictions_test = reg.fit(X_train, X_test, y_train, y_test) # Ispis svih performansi modela models_train

Izlaz:

Vizualizacija i usporedba ML modela pomoću LazyPredicta 3
Vizualizacija i usporedba ML modela pomoću LazyPredicta 4

Stvaranje vizualizacije za određeni stupac, kao što je samo za R-kvadrat rezultate,

import matplotlib.pyplot as plt import seaborn as sns plt.figure(figsize=(10, 5)) sns.set_theme(style=”whitegrid”) ax = sns.barplot(x=models_train.index, y=”R-Squared”, data=models_train) ax.set(ylim=(0, 1)) plt.xticks(rotacija=90)

Vizualizacija i usporedba ML modela pomoću LazyPredicta 5

import matplotlib.pyplot kao plt import seaborn kao sns models_train[“R-Squared”] = [0 if i < 0 else i for i in models_train.iloc[:,0] ]plt.figure(figsize=(510)) sns.set_theme(style=”whitegrid”) ax = sns.barplot(y=models_train.index, x=”R-Squared”, data=models_train) ax.set(xlim=(0, 1))

Vizualizacija i usporedba ML modela pomoću LazyPredicta 6

Završne bilješke

U ovom smo članku naučili o važnosti različitih modela strojnog učenja i njihovoj upotrebi. Također smo izradili model pomoću biblioteke LazyPredict koja nam pomaže razumjeti najprikladniji model za naš skup podataka za optimalne rezultate i točnost. Sljedeća implementacija može se pronaći kao Colab bilježnica pomoću poveznice ovdje.

Sretno učenje!

Reference

Table of Contents