Sadržaj[Sakrij][Prikaži]
Ako ste programer Python-a ili tražite moćan komplet alata za uvođenje strojnog učenja u proizvodni sistem, Scikit-learn je biblioteka koju trebate provjeriti.
Scikit-learn je dobro dokumentiran i jednostavan za korištenje, bilo da ste novi u mašinskom učenju, želite da se brzo pokrenete ili želite da koristite najsavremeniji alat za istraživanje ML-a.
Omogućava vam da konstruišete prediktivni model podataka u samo nekoliko linija koda, a zatim koristite taj model da odgovara vašim podacima kao biblioteku visokog nivoa. Fleksibilan je i dobro radi s drugima Python biblioteke kao što je Matplotlib za crtanje, NumPy za vektorizaciju niza i pandas za vizualizaciju podataka.
U ovom vodiču ćete saznati sve o tome šta je to, kako ga možete koristiti, zajedno sa njegovim prednostima i nedostacima.
Šta je Naučite naučiti?
Scikit-learn (također poznat kao sklearn) nudi raznolik skup statističkih modela i mašinskog učenja. Za razliku od većine modula, sklearn je razvijen u Python-u, a ne u C-u. Uprkos tome što je razvijen u Pythonu, efikasnost sklearn-a se pripisuje njegovoj upotrebi NumPy-a za linearnu algebru visokih performansi i operacije s nizovima.
Scikit-Learn je kreiran kao dio Googleovog Summer of Code projekta i od tada je olakšao živote miliona Python-centričnih naučnika širom svijeta. Ovaj dio serije fokusira se na predstavljanje biblioteke i fokusiranje na jedan element – transformacije skupova podataka, koje su ključni i vitalni korak prije razvoja modela predviđanja.
Biblioteka je zasnovana na SciPy (Scientific Python), koji mora biti instaliran prije nego što možete koristiti scikit-learn. Ovaj stog sadrži sljedeće stavke:
- NumPy: Pythonov standardni n-dimenzionalni paket niza
- SciPy: To je osnovni paket za naučno računarstvo
- Pande: Strukture podataka i analiza
- Matplotlib: To je moćna biblioteka 2D/3D crtanja
- Sympy: Simbolička matematika
- IPython: Poboljšana interaktivna konzola
Aplikacije biblioteke Scikit-learn
Scikit-learn je Python paket otvorenog koda sa sofisticiranom analizom podataka i funkcijama rudarenja. Dolazi sa mnoštvom ugrađenih algoritama koji će vam pomoći da izvučete maksimum iz vaših projekata nauke o podacima. Scikit-learn biblioteka se koristi na sljedeće načine.
1. Regresija
Regresiona analiza je statistička tehnika za analizu i razumijevanje veze između dvije ili više varijabli. Metoda koja se koristi za regresijsku analizu pomaže u određivanju koji su elementi relevantni, koji se mogu zanemariti i kako su u interakciji. Tehnike regresije, na primjer, mogu se koristiti za bolje razumijevanje ponašanja cijena dionica.
Algoritmi regresije uključuju:
- linearna regresija
- Ridge Regression
- Lasso regresija
- Regresija stabla odluka
- Random Forest
- Podrška vektorskim mašinama (SVM)
2. Klasifikacija
Metoda klasifikacije je pristup nadgledanog učenja koji koristi podatke o obuci za identifikaciju kategorije novih zapažanja. Algoritam u klasifikaciji uči iz datog podataka ili zapažanja, a zatim klasifikuje dodatna zapažanja u jednu od mnogih klasa ili grupa. Mogu se, na primjer, koristiti za klasificiranje komunikacije putem e-pošte kao neželjene pošte ili ne.
Algoritmi klasifikacije uključuju sljedeće:
- Logistička regresija
- K-Nearest Neighbours
- Support Vector Machine
- Stablo odlučivanja
- Random Forest
3. Grupiranje
Algoritmi za grupisanje u Scikit-learn-u se koriste za automatsko raspoređivanje podataka sa sličnim svojstvima u skupove. Grupiranje je proces grupisanja skupa stavki tako da su oni u istoj grupi sličniji onima u drugim grupama. Podaci o kupcima, na primjer, mogu biti odvojeni na osnovu njihove lokacije.
Algoritmi za grupisanje uključuju sljedeće:
- DB-SCAN
- K-Means
- Mini-Batch K-Means
- Spektralno grupiranje
4. Odabir modela
Algoritmi za odabir modela pružaju metode za poređenje, validaciju i odabir optimalnih parametara i modela za upotrebu u inicijativama nauke o podacima. S obzirom na podatke, odabir modela je problem odabira statističkog modela iz grupe modela kandidata. U najosnovnijim okolnostima, već postojeća zbirka podataka se uzima u obzir. Međutim, zadatak može uključivati i dizajn eksperimenata tako da prikupljeni podaci budu dobro prilagođeni problemu odabira modela.
Moduli za odabir modela koji mogu poboljšati preciznost podešavanjem parametara uključuju:
- Unakrsna provjera valjanosti
- Mrežna pretraga
- metrika
5. Smanjenje dimenzionalnosti
Prijenos podataka iz visokodimenzionalnog prostora u niskodimenzionalni prostor tako da niskodimenzionalni prikaz čuva neke značajne aspekte originalnih podataka, idealno blizu njegove inherentne dimenzije, poznat je kao smanjenje dimenzionalnosti. Broj slučajnih varijabli za analizu se smanjuje kada se dimenzionalnost smanji. Spoljni podaci, na primjer, ne mogu se smatrati da poboljšavaju efikasnost vizualizacija.
Algoritam za smanjenje dimenzija uključuje sljedeće:
- Izbor mogućnosti
- Analiza glavnih komponenata (PCA)
Instaliranje Scikit-learn-a
NumPy, SciPy, Matplotlib, IPython, Sympy i Pandas moraju biti instalirani prije korištenja Scikit-learn-a. Hajde da ih instaliramo koristeći pip sa konzole (radi samo za Windows).
Hajde da instaliramo Scikit-learn sada kada smo instalirali potrebne biblioteke.
Značajke
Scikit-learn, ponekad poznat kao sklearn, je Python alat za implementaciju modela mašinskog učenja i statističkog modeliranja. Možemo ga koristiti za kreiranje više modela mašinskog učenja za regresiju, klasifikaciju i grupisanje, kao i za statističke alate za procenu ovih modela. Takođe uključuje smanjenje dimenzionalnosti, izbor karakteristika, ekstrakciju karakteristika, pristupe ansambla i ugrađene skupove podataka. Istražit ćemo svaki od ovih kvaliteta jedan po jedan.
1. Uvoz skupova podataka
Scikit-learn uključuje niz unaprijed izgrađenih skupova podataka, kao što su skup podataka o šarenici, skup podataka o cijenama doma, skup podataka Titanic, itd. Ključne prednosti ovih skupova podataka su to što su jednostavni za razumijevanje i mogu se koristiti za trenutni razvoj ML modela. Ovi skupovi podataka su prikladni za početnike. Slično, možete koristiti sklearn za uvoz dodatnih skupova podataka. Slično, možete ga koristiti za uvoz dodatnih skupova podataka.
2. Podjela skupa podataka za obuku i testiranje
Sklearn je uključio mogućnost podjele skupa podataka na segmente obuke i testiranja. Podjela skupa podataka je potrebna za nepristrasnu procjenu učinka predviđanja. Možemo odrediti koliko naših podataka treba uključiti u skupove podataka o vlakovima i testovima. Podijelili smo skup podataka koristeći podjelu testa vlaka tako da skup vlakova sadrži 80% podataka, a skup testova 20%. Skup podataka se može podijeliti na sljedeći način:
3. Linearna regresija
Linearna regresija je tehnika mašinskog učenja pod nadzorom zasnovana na učenju. Izvodi posao regresije. Na osnovu nezavisnih varijabli, regresija modelira vrijednost predviđanja cilja. Uglavnom se koristi za određivanje veze između varijabli i predviđanja. Različiti regresijski modeli razlikuju se u smislu vrste veze koju procjenjuju između zavisnih i nezavisnih varijabli, kao i broja korištenih nezavisnih varijabli. Možemo jednostavno kreirati model linearne regresije koristeći sklearn na sljedeći način:
4. Logistička regresija
Uobičajeni pristup kategorizaciji je logistička regresija. Nalazi se u istoj porodici kao polinom i linearna regresija i pripada porodici linearnih klasifikatora. Nalazi logističke regresije su jednostavni za razumevanje i brzo se izračunavaju. Na isti način kao i linearna regresija, logistička regresija je tehnika nadgledane regresije. Izlazna varijabla je kategorička, tako da je to jedina razlika. Može utvrditi da li pacijent ima srčanu bolest ili ne.
Različiti problemi klasifikacije, kao što je otkrivanje neželjene pošte, mogu se riješiti korištenjem logističke regresije. Predviđanje dijabetesa, određivanje hoće li potrošač kupiti određeni proizvod ili će se prebaciti na rivala, određivanje hoće li korisnik kliknuti na određenu marketinšku vezu i još mnogo scenarija su samo neki od primjera.
5. Stablo odluka
Najmoćnija i najrasprostranjenija tehnika klasifikacije i predviđanja je stablo odlučivanja. Stablo odlučivanja je struktura stabla koja izgleda kao dijagram toka, sa svakim unutrašnjim čvorom koji predstavlja test na atributu, svaka grana predstavlja zaključak testa, a svaki listni čvor (terminalni čvor) drži oznaku klase.
Kada zavisne varijable nemaju linearnu vezu sa nezavisnim varijablama, tj. kada linearna regresija ne daje tačne nalaze, stabla odlučivanja su korisna. Objekt DecisionTreeRegression() može se koristiti na sličan način za korištenje stabla odlučivanja za regresiju.
6. Slučajna šuma
Slučajna šuma je a mašinsko učenje pristup rješavanju pitanja regresije i klasifikacije. Koristi učenje ansambla, što je tehnika koja kombinuje više klasifikatora za rešavanje komplikovanih problema. Metoda slučajne šume sastoji se od velikog broja stabala odlučivanja. Može se koristiti za kategorizaciju zahtjeva za kredit, otkrivanje prijevarnog ponašanja i predviđanje izbijanja bolesti.
7. Matrica konfuzije
Matrica konfuzije je tabela koja se koristi za opisivanje performansi modela klasifikacije. Sljedeće četiri riječi se koriste za ispitivanje matrice konfuzije:
- Pravo pozitivno: Označava da je model projektovao povoljan ishod i da je bio tačan.
- Pravo negativno: Označava da je model projektovao loš ishod i da je bio tačan.
- Lažno pozitivno: Označava da je model očekivao povoljan ishod, ali je on zaista bio negativan.
- Lažno negativan: Označava da je model očekivao negativan ishod, dok je ishod bio zaista pozitivan.
Implementacija matrice konfuzije:
pros
- Jednostavan je za upotrebu.
- Scikit-learn paket je izuzetno prilagodljiv i koristan, služeći ciljevima iz stvarnog svijeta kao što su predviđanje ponašanja potrošača, razvoj neuro slike i tako dalje.
- Korisnici koji žele povezati algoritme sa svojim platformama naći će detaljnu API dokumentaciju na web stranici Scikit-learn.
- Brojni autori, saradnici i velika svjetska online zajednica podržavaju i održavaju Scikit-learn u toku.
Cons
- To nije idealna opcija za dubinsko proučavanje.
zaključak
Scikit-learn je kritičan paket za svakog naučnika podataka koji treba dobro razumjeti i imati određeno iskustvo. Ovaj vodič bi vam trebao pomoći u manipulaciji podacima koristeći sklearn. Postoji mnogo više mogućnosti Scikit-learn-a koje ćete otkriti dok budete napredovali kroz svoju avanturu u oblasti nauke o podacima. Podijelite svoja razmišljanja u komentarima.
Ostavite odgovor