Duomenų normalizavimas „Python“

Normalization Data Python



Duomenų normalizavimas yra technika, padedanti greičiau gauti rezultatą, nes mašina turi apdoroti mažesnį duomenų diapazoną. Normalizavimas nėra lengva užduotis, nes visi jūsų rezultatai priklauso nuo jūsų normalizavimo metodo pasirinkimo. Taigi, jei pasirinkote neteisingą duomenų normalizavimo metodą, galite gauti kažką kitokio, nei tikėjotės.

Normalizavimas taip pat priklauso nuo duomenų tipo, pvz., Vaizdų, teksto, skaitinių ir tt. Taigi, kiekvienas duomenų tipas normalizuojamas skirtingai. Taigi, šiame straipsnyje mes sutelkiame dėmesį į skaitmeninius duomenis.







1 metodas: „Sklearn“ naudojimas

Sklearn metodas yra labai žinomas metodas normalizuoti duomenis.





Langelio numeryje [83] : Importuojame visas reikalingas bibliotekas, „NumPy“ ir „sklearn“. Matote, kad išankstinį apdorojimą importuojame iš paties sklearno. Štai kodėl tai yra sklearno normalizavimo metodas.





Langelio numeryje [84] : Sukūrėme „NumPy“ masyvą, kurio sveikojo skaičiaus reikšmė yra nevienoda.

Langelio numeryje [85] : Iš išankstinio apdorojimo iškvietėme normalizavimo metodą ir perdavėme numpy_array, kurį ką tik sukūrėme kaip parametrą.



Langelio numeryje [86] : Iš rezultatų matome, kad visi mūsų sveikųjų skaičių duomenys dabar yra normalizuoti nuo 0 iki 1.

2 metodas: normalizuokite tam tikrą duomenų rinkinio stulpelį naudodami sklearn

Taip pat galime normalizuoti tam tikrą duomenų rinkinio stulpelį. Šiuo klausimu mes ketiname apie tai diskutuoti.


Langelio numeryje [87] : Importuojame bibliotekos pandas ir sklearn.

Langelio numeryje [88] : Sukūrėme netikrą CSV failą ir dabar įkeliame tą CSV failą naudodami pandų (read_csv) paketą.

Langelio numeryje [89] : Spausdiname tą CSV failą, kurį neseniai įkėlėme.

Langelio numeryje [90] : Mes skaitome konkretų CSV failo stulpelį naudodami np. masyvą ir išsaugokite rezultatą „value_array“.

Langelio numeryje [92] , iškvietėme normalizavimo metodą iš išankstinio apdorojimo ir perdavėme parametrą value_array.

3 metodas: konvertuokite į normalizavimą nenaudodami stulpelių masyvui (naudodami sklearn)

Ankstesniame 2 metode aptarėme, kaip į konkretų CSV failo stulpelį galėtume normalizuoti. Tačiau kartais mums reikia normalizuoti visą duomenų rinkinį, tada galime naudoti žemiau pateiktą metodą, kai normalizuojame visą duomenų rinkinį, bet ne pagal stulpelį (ašis = 0). Jei paminėsime ašį = 1, tai normalizuos iš eilės. Ašis = 1 pagal numatytuosius nustatymus.


Langelio numeryje [93] : Importuojame bibliotekos pandas ir sklearn.

Langelio numeryje [94] : Sukūrėme netikrą CSV failą (demo_numeric.csv) ir dabar įkeliame tą CSV failą naudodami pandos (read_csv) paketą.

Langelio numeryje [95] : Spausdiname tą CSV failą, kurį neseniai įkėlėme.

Langelio numeryje [96] : Dabar perduodame visą CSV failą kartu su dar viena papildoma parametro ašimi = 0, kuri bibliotekai pasakė, kad vartotojas norėjo normalizuoti visą duomenų rinkinį stulpelio atžvilgiu.

Langelio numeryje [97] , spausdiname rezultatą ir normalizuojame duomenis, kurių vertė yra nuo 0 iki 1.

4 metodas: „MinMaxScaler“ () naudojimas

„Sklearn“ taip pat pateikia kitą normalizavimo metodą, kurį pavadinome „MinMaxScalar“. Tai taip pat labai populiarus metodas, nes juo lengva naudotis.


Langelio numeryje [98] : Importuojame visus reikalingus paketus.

Langelio numeryje [99] : Sukūrėme netikrą CSV failą (demo_numeric.csv) ir dabar įkeliame tą CSV failą naudodami pandos (read_csv) paketą.

Langelio numeryje [100] : Spausdiname tą CSV failą, kurį neseniai įkėlėme.

Langelio numeryje [101] : Iš išankstinio apdorojimo metodo iškvietėme MinMaxScalar ir sukūrėme tam objektą (min_max_Scalar). Mes nepateikėme jokių parametrų, nes turime normalizuoti duomenis nuo 0 iki 1. Bet jei norite, galite pridėti savo reikšmes, kurios bus matomos kitame metode.

Langelio numeryje [102] : Pirmiausia perskaitėme visus stulpelių pavadinimus, kad galėtume juos naudoti rezultatams rodyti. Tada iš sukurto objekto „fit_tranform“ vadiname „min_max_Scalar“ ir perduodame CSV failą.

Langelio numeryje [103] : Gauname normalizuotus rezultatus, kurie yra nuo 0 iki 1.

5 metodas: MinMaxScaler naudojimas (feature_range = (x, y))

„Sklearn“ taip pat suteikia galimybę pakeisti norimą norimą normalizuotą vertę. Pagal numatytuosius nustatymus jie normalizuoja vertę nuo 0 iki 1. Tačiau yra parametras, kurį pavadinome „feature_range“, kuris gali nustatyti normalizuotą vertę pagal mūsų reikalavimus.

Langelio numeryje [104] : Importuojame visus reikalingus paketus.

Langelio numeryje [105] : Sukūrėme netikrą CSV failą (demo_numeric.csv) ir dabar įkeliame tą CSV failą naudodami pandos (read_csv) paketą.

Langelio numeryje [106] : Spausdiname tą CSV failą, kurį neseniai įkėlėme.

Langelio numeryje [107] : Iš išankstinio apdorojimo metodo iškvietėme MinMaxScalar ir sukūrėme tam objektą (min_max_Scalar). Tačiau taip pat perduodame kitą parametrą „MinMaxScaler“ (ypatybių_dydis). Šią parametro vertę nustatome nuo 0 iki 2. Taigi dabar „MinMaxScaler“ normalizuos duomenų reikšmes nuo 0 iki 2.

Langelio numeryje [108] : Pirmiausia perskaitėme visus stulpelių pavadinimus, kad galėtume juos naudoti rezultatams rodyti. Tada iš sukurto objekto „fit_tranform“ vadiname „min_max_Scalar“ ir perduodame CSV failą.

Langelio numeryje [109] : Gauname normalizuotus rezultatus, kurie yra nuo 0 iki 2.

6 metodas: naudojant maksimalų absoliutų mastelį

Taip pat galime normalizuoti duomenis naudodami pandas. Šios funkcijos taip pat yra labai populiarios normalizuojant duomenis. Didžiausias absoliutus mastelio keitimas normalizuoja reikšmes nuo 0 iki 1. Čia taikome .max () ir .abs (), kaip parodyta žemiau:

Langelio numeryje [110] : Importuojame pandų biblioteką.

Langelio numeryje [111] : Mes sukūrėme netikrą duomenų rėmelį ir atspausdinome tą duomenų rėmelį.

Langelio numeryje [113] : Mes iškviečiame kiekvieną stulpelį ir tada padalijame stulpelio reikšmes .max () ir .abs ().

Langelio numeryje [114] : Spausdiname rezultatą ir iš jo patvirtiname, kad mūsų duomenys normalizuojasi nuo 0 iki 1.

7 metodas: naudojant „z-score“ metodą

Kitas metodas, kurį ketiname aptarti, yra „z-score“ metodas. Šis metodas konvertuoja informaciją į paskirstymą. Šis metodas apskaičiuoja kiekvieno stulpelio vidurkį, tada atima iš kiekvieno stulpelio ir galiausiai padalija jį su standartiniu nuokrypiu. Tai normalizuoja duomenis nuo -1 iki 1.

Langelio numeryje [115] : Mes sukūrėme netikrą duomenų rėmelį ir atspausdinome tą duomenų rėmelį.

Langelio numeryje [117] : Mes apskaičiuojame stulpelio vidurkį ir atimame jį iš stulpelio. Tada mes padalijame stulpelio vertę su standartiniu nuokrypiu.

Langelio numeryje [118] : Spausdiname normalizuotus duomenis nuo -1 iki 1.

Išvada: Mes matėme įvairius normalizuotus metodus. Tarp jų „sklearn“ yra labai žinomas dėl to, kad palaiko mašinų mokymąsi. Bet tai priklauso nuo vartotojo poreikių. Kartais pakanka pandos funkcijos duomenims normalizuoti. Negalime sakyti, kad yra tik aukščiau normalizavimo metodai. Yra daugybė duomenų normalizavimo metodų, kurie taip pat priklauso nuo jūsų duomenų tipo, pvz., Vaizdai, skaitmeniniai, teksto ir tt. Mes sutelkiame dėmesį į šiuos skaitmeninius duomenis ir „Python“.