Panākumi a mašīnmācīšanās algoritms lielā mērā ir atkarīgs no modelī ievadīto datu kvalitātes. Reālās pasaules dati bieži ir netīri, un tajos ir novirzes, trūkstošas vērtības, nepareizi datu tipi, neatbilstošas funkcijas vai nestandarta dati. Jebkura no tiem klātbūtne neļaus mašīnmācīšanās modelim pareizi mācīties. Šī iemesla dēļ neapstrādātu datu pārveidošana noderīgā formātā ir būtisks mašīnmācīšanās procesa posms. Viena metode, ar kuru jūs saskarsities vairākas reizes, kad notiek datu priekšapstrāde normalizācija .
Datu normalizēšana ir ierasta mašīnmācīšanās prakse, kas sastāv no pārveidošanas ciparu kolonnas uz a kopējā mērogā. Mašīnmācībā dažas funkciju vērtības vairākas reizes atšķiras no citām. Liekšanas procesā dominēs funkcijas ar augstākām vērtībām. Tomēr tas nenozīmē, ka šie mainīgie ir svarīgāki, lai prognozētu modeļa iznākumu. ** Datu normalizēšana ** pārveido daudzlīmeņu datus tādā pašā mērogā. Pēc normalizācijas visiem mainīgajiem ir a līdzīga ietekme modeli, uzlabojot mācību algoritma stabilitāti un veiktspēju.
Ir vairāki normalizācijas metodes statistikā. Šajā rakstā mēs apskatīsim vissvarīgākos:
avast antivīrusu konta pieteikšanās
- Maksimālā absolūtā mērogošana
- Min-max funkcijas mērogošana
- Z-score metode
- Spēcīga mērogošana
Turklāt mēs paskaidrosim, kā tos īstenot Pandas un Scikit-Learn .
Tātad, sāksim
Šajā datu rāmī ir ievades (neatkarīgi mainīgie) a vairāku regresijas modelis lai prognozētu lietotas automašīnas cenu: (1) odometra rādījums (km) un (2) degvielas ekonomija (km/l). Šajā rakstā mēs izmantojam nelielu datu kopu mācību nolūkos. Tomēr reālajā pasaulē izmantotās datu kopas būs daudz lielākas.
import pandas as pd # data frame containing the odometer reading (km) and the fuel economy (km/l) of second-hand cars df_cars = pd.DataFrame([[120000, 11], [250000, 11.5], [175000, 15.8], [350000, 17], [400000, 10]], columns=['odometer_reading', 'fuel_economy']) df_cars view raw data_normalization.py hosted with ❤ by GitHub
Kā redzat, odometra rādījumi svārstās no 120000 līdz 400000, bet degvielas ekonomija ir no 10 līdz 17. vairākkārtēja lineāra regresija Modelis augstākas vērtības dēļ svarīgāk novērtēs odometra rādījumu mainīgo nekā degvielas ekonomijas atribūts. Tomēr tas nenozīmē, ka odometra rādījuma atribūts ir svarīgāks kā prognozētājs. Lai atrisinātu šo problēmu, mums ir ** jā normalizē ** abu mainīgo vērtības. ❤️
selēns izpilda javascript python
The maksimālā absolūtā mērogošana maina katru funkciju no -1 līdz 1 katru novērojumu dalot ar tā maksimālo absolūto vērtību.
Mēs varam piemērot maksimālā absolūtā mērogošana iekšā Pandas izmantojot .max () un . (Sadaļa) metodes, kā parādīts zemāk.
safemars crypto kā nopirkt
Alternatīvi, mēs varam izmantot Scikit-mācīties bibliotēka, lai aprēķinātu maksimālā absolūtā mērogošana . Pirmkārt, mēs izveidojam abs_scaler ar MaxAbsScaler klase. Pēc tam mēs izmantojam piemērota metode lai uzzinātu nepieciešamos parametrus datu mērogošanai ( maksimālā absolūtā vērtība no katras funkcijas). Visbeidzot, mēs pārveidojam datus, izmantojot šos parametrus.
# apply the maximum absolute scaling in Pandas using the .abs() and .max() methods def maximum_absolute_scaling(df): # copy the dataframe df_scaled = df.copy() # apply maximum absolute scaling for column in df_scaled.columns: df_scaled[column] = df_scaled[column] / df_scaled[column].abs().max() return df_scaled # call the maximum_absolute_scaling function df_cars_scaled = maximum_absolute_scaling(df_cars) df_cars_scaled view raw maximum_absolute_scaling.py hosted with ❤ by GitHub
Kā jūs varat novērot, mēs iegūstam tādus pašus rezultātus, izmantojot Pandas un Scikit-mācīties . Nākamajā diagrammā parādīti pārveidotie dati pēc maksimālās absolūtās mērogošanas.
#datu zinātne #programmēšana #dziļa mācīšanās
virzienā uz datascience.com
Datu normalizēšana, izmantojot Pandas un Scikit-Learn
Pilns ceļvedis datu kopu tīrīšanai - 1. daļa. Mašīnmācīšanās algoritma panākumi lielā mērā ir atkarīgi no modelī ievadīto datu kvalitātes.