Ultima actualizare la 17 august 2020
Performanța de modelare predictivă prin învățare mecanică este la fel de bună ca și datele dumneavoastră, iar datele dumneavoastră sunt la fel de bune ca și modul în care le pregătiți pentru modelare.
Cea mai obișnuită abordare a pregătirii datelor este de a studia un set de date și de a revizui așteptările unui algoritm de învățare automată, apoi de a alege cu atenție cele mai potrivite tehnici de pregătire a datelor pentru a transforma datele brute pentru a satisface cât mai bine așteptările algoritmului. Acest lucru este lent, costisitor și necesită o cantitate mare de expertiză.
O abordare alternativă a pregătirii datelor este de a căuta în grilă o suită de tehnici de pregătire a datelor comune și utile în mod obișnuit pentru datele brute. Aceasta este o filozofie alternativă pentru pregătirea datelor care tratează transformările de date ca pe un alt hiperparametru al conductei de modelare care trebuie căutat și reglat.
Această abordare necesită mai puțină expertiză decât abordarea manuală tradițională a pregătirii datelor, deși este costisitoare din punct de vedere computațional. Avantajul este că poate ajuta la descoperirea soluțiilor neintuitive de pregătire a datelor care obțin performanțe bune sau cele mai bune pentru o anumită problemă de modelare predictivă.
În acest tutorial, veți descoperi cum să utilizați abordarea de căutare în grilă pentru pregătirea datelor cu date tabulare.
După finalizarea acestui tutorial, veți ști:
- Cercetarea în grilă oferă o abordare alternativă la pregătirea datelor pentru date tabulare, în care transformările sunt încercate ca hiperparametri ai conductei de modelare.
- Cum să utilizați metoda de căutare în grilă pentru pregătirea datelor pentru a îmbunătăți performanța modelului față de o linie de bază pentru un set de date de clasificare standard.
- Cum să căutați în grilă secvențe de metode de pregătire a datelor pentru a îmbunătăți și mai mult performanța modelului.
Dă startul proiectului tău cu noua mea carte Data Preparation for Machine Learning, care include tutoriale pas cu pas și fișierele de cod sursă Python pentru toate exemplele.
Să începem.
Cum să căutăm în grilă tehnici de pregătire a datelor
Fotografie de Wall Boat, unele drepturi rezervate.
- Prezentare generală a tutorialului
- Tehnica de căutare în grilă pentru pregătirea datelor
- Vreți să începeți cu pregătirea datelor?
- Dataset and Performance Baseline
- Set de date de clasificare a vinului
- Baseline Model Performance
- Abordarea căutării în grilă pentru pregătirea datelor
- Further Reading
- Cărți
- APIs
- Rezumat
- Pregătiți-vă cu pregătirea modernă a datelor!
- Pregătiți-vă datele de învățare automată în câteva minute
- Aduceți tehnici moderne de pregătire a datelor la Proiectele dvs. de învățare automată
Prezentare generală a tutorialului
Acest tutorial este împărțit în trei părți; acestea sunt:
- Tehnica de căutare în grilă pentru pregătirea datelor
- Set de date și performanță de referință
- Set de date de clasificare a vinului
- Performanța modelului de referință
- Abordare de căutare în grilă pentru pregătirea datelor
Tehnica de căutare în grilă pentru pregătirea datelor
Pregătirea datelor poate fi o provocare.
Abordarea care este cel mai adesea prescrisă și urmată este aceea de a analiza setul de date, de a revizui cerințele algoritmilor și de a transforma datele brute pentru a satisface cât mai bine așteptările algoritmilor.
Acest lucru poate fi eficient, dar este, de asemenea, lent și poate necesita o expertiză profundă în ceea ce privește analiza datelor și algoritmii de învățare automată.
O abordare alternativă este de a trata pregătirea variabilelor de intrare ca pe un hiperparametru al conductei de modelare și de a o regla împreună cu alegerea algoritmului și a configurațiilor algoritmului.
Aceasta ar putea fi o transformare a datelor care „nu ar trebui să funcționeze” sau „nu ar trebui să fie adecvată pentru algoritm”, dar care are ca rezultat o performanță bună sau excelentă. Alternativ, ar putea fi absența unei transformări de date pentru o variabilă de intrare care este considerată „absolut necesară”, dar care are ca rezultat o performanță bună sau excelentă.
Acest lucru poate fi realizat prin proiectarea unei căutări în grilă a tehnicilor de pregătire a datelor și/sau a secvențelor de tehnici de pregătire a datelor în conducte. Acest lucru poate implica evaluarea fiecăruia pe un singur algoritm de învățare automată ales sau pe o suită de algoritmi de învățare automată.
Beneficiul acestei abordări este că întotdeauna rezultă sugestii de conducte de modelare care dau rezultate relative bune. Cel mai important este că poate scoate la iveală soluțiile neevidente și neintuitive pentru practicieni, fără a fi nevoie de o expertiză profundă.
Puteți explora această abordare a pregătirii datelor cu un exemplu prelucrat.
Înainte de a ne scufunda într-un exemplu prelucrat, haideți mai întâi să selectăm un set de date standard și să dezvoltăm o linie de bază în ceea ce privește performanța.
Vreți să începeți cu pregătirea datelor?
Faceți acum cursul meu rapid gratuit de 7 zile prin e-mail (cu cod de exemplu).
Click pentru a vă înscrie și pentru a obține, de asemenea, o versiune gratuită a cursului în format PDF Ebook.
Download Your FREE Mini-Course
Dataset and Performance Baseline
În această secțiune, vom selecta mai întâi un set de date standard de învățare automată și vom stabili o bază de referință în ceea ce privește performanța pe acest set de date. Acest lucru va oferi contextul pentru explorarea metodei de căutare în grilă a pregătirii datelor în secțiunea următoare.
Set de date de clasificare a vinului
Vom folosi setul de date de clasificare a vinului.
Acest set de date are 13 variabile de intrare care descriu compoziția chimică a mostrelor de vin și necesită ca vinul să fie clasificat ca fiind unul dintre cele trei tipuri.
Puteți afla mai multe despre setul de date aici:
- Wine Dataset (wine.csv)
- Wine Dataset Description (wine.names)
Nu este nevoie să descărcați setul de date, deoarece îl vom descărca automat ca parte a exemplelor noastre lucrate.
Deschideți setul de date și analizați datele brute. Primele câteva rânduri de date sunt listate mai jos.
Vezi că este o problemă de modelare predictivă de clasificare multiclasă cu variabile de intrare numerice, fiecare dintre ele având scale diferite.
Exemplul de mai jos încarcă setul de date și îl împarte în coloanele de intrare și ieșire, apoi rezumă array-urile de date.
Executând exemplul, putem vedea că setul de date a fost încărcat corect și că există 179 de rânduri de date cu 13 variabile de intrare și o singură variabilă țintă.
1
|
(178, 13) (178,)
|
În continuare, să evaluăm un model pe acest set de date și să stabilim o bază de referință în ceea ce privește performanța.
Baseline Model Performance
Potem stabili o linie de bază în ceea ce privește performanța pe sarcina de clasificare a vinului prin evaluarea unui model pe datele de intrare brute.
În acest caz, vom evalua un model de regresie logistică.
În primul rând, putem defini o funcție pentru a încărca setul de date și pentru a efectua o pregătire minimă a datelor pentru a ne asigura că datele de intrare sunt numerice și că ținta este codificată cu etichete.
Vom evalua modelul folosind standardul de aur al validării încrucișate stratificate repetate k-fold cu 10 pliuri și trei repetări.
Apoi putem apela funcția pentru a încărca setul de date, a defini modelul nostru, apoi a-l evalua, raportând precizia medie și abaterea standard.
Corelând toate acestea, exemplul complet de evaluare a unui model de regresie logistică pe setul de date brut de clasificare a vinului este listat mai jos.
Executarea exemplului evaluează performanța modelului și raportează precizia medie și abaterea standard a clasificării.
Nota: Rezultatele dvs. pot varia, având în vedere natura stocastică a algoritmului sau a procedurii de evaluare, sau diferențele de precizie numerică. Luați în considerare rularea exemplului de câteva ori și comparați rezultatul mediu.
În acest caz, putem observa că modelul de regresie logistică ajustat pe datele brute de intrare a obținut o precizie medie de clasificare de aproximativ 95,3 la sută, oferind o linie de bază în ceea ce privește performanța.
1
|
Precizie: 0.953 (0.048)
|
În continuare, să explorăm dacă putem îmbunătăți performanța folosind abordarea bazată pe căutarea în grilă pentru pregătirea datelor.
Abordarea căutării în grilă pentru pregătirea datelor
În această secțiune, putem explora dacă putem îmbunătăți performanța folosind abordarea căutării în grilă pentru pregătirea datelor.
Primul pas este de a defini o serie de conducte de modelare pentru a fi evaluate, unde fiecare conductă definește una (sau mai multe) tehnici de pregătire a datelor și se termină cu un model care ia datele transformate ca intrare.
Vom defini o funcție pentru a crea aceste conducte ca o listă de tupluri, unde fiecare tuplu definește numele scurt pentru conductă și conducta în sine. Vom evalua o serie de metode diferite de scalare a datelor (de exemplu, MinMaxScaler și StandardScaler), transformări de distribuție (QuantileTransformer și KBinsDiscretizer), precum și transformări de reducere a dimensionalității (PCA și SVD).
Apoi putem apela această funcție pentru a obține lista de transformări, apoi să enumerăm fiecare dintre ele, evaluându-le și raportând performanța pe parcurs.
La sfârșitul rulării, putem crea un grafic box and whisker pentru fiecare set de scoruri și compara vizual distribuțiile rezultatelor.
1
2
3
4
|
…
# reprezentați grafic rezultatul
pyplot.boxplot(results, labels=names, showmeans=True) pyplot.show()
|
Corelând toate acestea, exemplul complet al tehnicilor de pregătire a datelor de căutare în grilă pe setul de date de clasificare a vinurilor este prezentat mai jos.
Executarea exemplului evaluează performanța fiecărei conducte și raportează precizia medie și abaterea standard a clasificării.
Nota: Rezultatele dumneavoastră pot varia având în vedere natura stocastică a algoritmului sau a procedurii de evaluare sau diferențele de precizie numerică. Luați în considerare rularea exemplului de câteva ori și comparați rezultatul mediu.
În acest caz, putem observa că standardizarea variabilelor de intrare și utilizarea unei transformări cuantice obțin ambele cel mai bun rezultat, cu o precizie de clasificare de aproximativ 98.7 la sută, o îmbunătățire față de linia de bază fără pregătirea datelor care a obținut o acuratețe de clasificare de 95,3 la sută.
Puteți adăuga propriile conducte de modelare la funcția get_pipelines() și să comparați rezultatul acestora.
Puteți obține rezultate mai bune?
Dă-mi de știre în comentariile de mai jos.
1
2
3
4
5
6
|
>norm: 0.976 (0.031)
>std: 0.987 (0.023)
>quan: 0.987 (0.023)
>kbins: 0.968 (0.045)
>pca: 0.963 (0.039)
>svd: 0.963 (0.039)
>svd: 0,953 (0,048)
|
Se creează o figură care prezintă diagramele box and whisker care rezumă distribuția scorurilor de precizie a clasificării pentru fiecare tehnică de pregătire a datelor. Se poate observa că distribuția scorurilor pentru transformările de standardizare și cuantile sunt compacte și foarte asemănătoare și au un outlier. Putem vedea că răspândirea scorurilor pentru celelalte transformări este mai mare și înclinată în jos.
Rezultatele pot sugera că standardizarea setului de date este probabil un pas important în pregătirea datelor și transformările conexe, cum ar fi transformarea cuantică, și poate chiar și transformarea de putere poate oferi beneficii dacă este combinată cu standardizarea, făcând una sau mai multe variabile de intrare mai gaussiene.
Box and Whisker Plot of Classification Accuracy for Different Data Transforms on the Wine Classification Dataset
De asemenea, putem explora secvențe de transformări pentru a vedea dacă acestea pot oferi o creștere a performanței.
De exemplu, am putea dori să aplicăm selecția caracteristicilor RFE după transformarea de standardizare pentru a vedea dacă se pot utiliza aceleași rezultate sau rezultate mai bune cu mai puține variabile de intrare (de ex.g. mai puțină complexitate).
Am putea dori, de asemenea, să vedem dacă o transformare de putere precedată de o transformare de scalare a datelor poate obține performanțe bune pe setul de date, așa cum credem că ar putea, având în vedere succesul transformării cuantilelor.
Funcția get_pipelines() actualizată cu secvențe de transformări este furnizată mai jos.
Corelând toate acestea, exemplul complet este prezentat mai jos.
Executarea exemplului evaluează performanța fiecărei conducte și raportează precizia de clasificare medie și abaterea standard.
Nota: Rezultatele dumneavoastră pot varia având în vedere natura stocastică a algoritmului sau a procedurii de evaluare, sau diferențele de precizie numerică. Luați în considerare rularea exemplului de câteva ori și comparați rezultatul mediu.
În acest caz, putem observa că standardizarea cu selectarea caracteristicilor oferă o creștere suplimentară a acurateței de la 98,7 la 98,9 la sută, deși scalarea datelor și transformarea puterii nu oferă niciun beneficiu suplimentar față de transformarea cuantilă.
1
2
|
>std: 0.989 (0,022)
>putere: 0,987 (0.023)
|
Se creează o figură care prezintă diagramele box and whisker care rezumă distribuția scorurilor de acuratețe a clasificării pentru fiecare tehnică de pregătire a datelor.
Se poate observa că distribuția rezultatelor pentru ambele conducte de transformări este compactă, cu o răspândire foarte mică în afară de outlier.
Box and Whisker Plot of Classification Accuracy for Different Sequences of Data Transforms on the Wine Classification Dataset
Further Reading
Această secțiune oferă mai multe resurse pe această temă, dacă doriți să aprofundați.
Cărți
- Feature Engineering and Selection, 2019.
- Feature Engineering for Machine Learning, 2018.
APIs
- sklearn.pipeline.Pipeline.Pipeline API.
Rezumat
În acest tutorial, ați descoperit cum să utilizați o abordare de căutare în grilă pentru pregătirea datelor cu date tabulare.
În mod specific, ați învățat:
- Cercetarea în grilă oferă o abordare alternativă pentru pregătirea datelor pentru date tabulare, în care transformările sunt încercate ca hiperparametri ai conductei de modelare.
- Cum să utilizați metoda de căutare în grilă pentru pregătirea datelor pentru a îmbunătăți performanța modelului față de o linie de bază pentru un set de date de clasificare standard.
- Cum să căutați în grilă secvențe de metode de pregătire a datelor pentru a îmbunătăți și mai mult performanța modelului.
Aveți întrebări?
Puneți întrebările dvs. în comentariile de mai jos și voi face tot posibilul să vă răspund.
Pregătiți-vă cu pregătirea modernă a datelor!
Pregătiți-vă datele de învățare automată în câteva minute
…cu doar câteva linii de cod python
Descoperiți cum în noul meu Ebook:
Data Preparation for Machine Learning
Acesta oferă tutoriale de auto-studiu cu cod complet de lucru pe:
Feature Selection, RFE, Data Cleaning, Data Transforms, Data Scaling, Dimensionality Reduction, și multe altele….
Aduceți tehnici moderne de pregătire a datelor la
Proiectele dvs. de învățare automată
Vezi ce este înăuntru
Tweet Share Share