ML | Escalado de características – Parte 2

Feature Scaling es una técnica para estandarizar las características independientes presentes en los datos en un rango fijo. Se realiza durante el preprocesamiento de datos para manejar magnitudes, valores o unidades muy variables. Si no se realiza el escalado de características, entonces un algoritmo de aprendizaje automático tiende a sopesar los valores más altos, más altos y considera los valores más pequeños como los valores más bajos, independientemente de la unidad de los valores.

Ejemplo: si un algoritmo no utiliza el método de escalado de características, puede considerar que el valor de 3000 metros es mayor que 5 km, pero en realidad no es cierto y, en este caso, el algoritmo dará predicciones incorrectas. Por lo tanto, usamos Feature Scaling para llevar todos los valores a las mismas magnitudes y, por lo tanto, abordar este problema.

Técnicas para realizar Feature Scaling
Considere las dos más importantes:

  • Normalización mín.-máx.: esta técnica vuelve a escalar una característica o un valor de observación con un valor de distribución entre 0 y 1.
    X_{\text {new }}=\frac{X_{i}-\min (X)}{\max (x)-\min (X)}
  • Estandarización: es una técnica muy efectiva que vuelve a escalar el valor de una característica para que tenga una distribución con un valor medio de 0 y una varianza igual a 1.
    X_{\text {new }}=\frac{X_{i}-X_{\text {mean }}}{\text { Standard Deviation }}

Descargue el conjunto de datos:
vaya al enlace y descargue Data_for_Feature_Scaling.csv


Código: código de Python que explica el funcionamiento de Feature Scaling en los datos

# Python code explaining How to
# perform Feature Scaling
   
""" PART 1
    Importing Libraries """
   
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
  
# Sklearn library 
from sklearn import preprocessing
  
""" PART 2
    Importing Data """
   
data_set = pd.read_csv('C:\\Users\\dell\\Desktop\\Data_for_Feature_Scaling.csv')
data_set.head()
  
# here Features - Age and Salary columns 
# are taken using slicing
# to handle values with varying magnitude
x = data_set.iloc[:, 1:3].values
print ("\nOriginal data values : \n",  x)
  
  
""" PART 4
    Handling the missing values """
  
from sklearn import preprocessing
  
""" MIN MAX SCALER """
  
min_max_scaler = preprocessing.MinMaxScaler(feature_range =(0, 1))
  
# Scaled feature
x_after_min_max_scaler = min_max_scaler.fit_transform(x)
  
print ("\nAfter min max Scaling : \n", x_after_min_max_scaler)
  
  
""" Standardisation """
  
Standardisation = preprocessing.StandardScaler()
  
# Scaled feature
x_after_Standardisation = Standardisation.fit_transform(x)
  
print ("\nAfter Standardisation : \n", x_after_Standardisation)

Producción :

   Country  Age  Salary  Purchased
0   France   44   72000          0
1    Spain   27   48000          1
2  Germany   30   54000          0
3    Spain   38   61000          0
4  Germany   40    1000          1

Original data values : 
 [[   44 72000]
 [   27 48000]
 [   30 54000]
 [   38 61000]
 [   40  1000]
 [   35 58000]
 [   78 52000]
 [   48 79000]
 [   50 83000]
 [   37 67000]]

After min max Scaling : 
 [[ 0.33333333  0.86585366]
 [ 0.          0.57317073]
 [ 0.05882353  0.64634146]
 [ 0.21568627  0.73170732]
 [ 0.25490196  0.        ]
 [ 0.15686275  0.69512195]
 [ 1.          0.62195122]
 [ 0.41176471  0.95121951]
 [ 0.45098039  1.        ]
 [ 0.19607843  0.80487805]]

After Standardisation : 
 [[ 0.09536935  0.66527061]
 [-1.15176827 -0.43586695]
 [-0.93168516 -0.16058256]
 [-0.34479687  0.16058256]
 [-0.1980748  -2.59226136]
 [-0.56487998  0.02294037]
 [ 2.58964459 -0.25234403]
 [ 0.38881349  0.98643574]
 [ 0.53553557  1.16995867]
 [-0.41815791  0.43586695]]

Publicación traducida automáticamente

Artículo escrito por Mohit Gupta_OMG 🙂 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *