Queste sono solo funzioni di convenienza che ricadono naturalmente nel modo in cui queste due librerie tendono a fare le cose, rispettivamente. Il primo "condensa" le informazioni cambiando le cose in numeri interi, e il secondo "espande" le dimensioni permettendo (eventualmente) un accesso più conveniente.
sklearn.preprocessing.LabelEncoder
trasforma semplicemente i dati, da qualunque dominio, in modo che il suo dominio è 0, ..., k - 1, dove k è il numero di classi.
Così, per esempio
["paris", "paris", "tokyo", "amsterdam"]
potrebbe diventare
[0, 0, 1, 2]
pandas.get_dummies
prende anche una serie di elementi di qualche dominio, ma si espande in un dataframe cui colonne corrispondono alle voci nella serie, e i valori sono 0 o 1 a seconda di ciò che erano originariamente. Così, per esempio, lo stesso
["paris", "paris", "tokyo", "amsterdam"]
sarebbe diventato un dataframe con le etichette
["paris", "tokyo", "amsterdam"]
e la cui "paris"
entrata sarebbe la serie
[1, 1, 0, 0]
Il vantaggio principale del il primo metodo è che conserva lo spazio. Al contrario, codificare le cose come numeri interi potrebbe dare l'impressione (a te o ad un algoritmo di apprendimento automatico) che l'ordine significhi qualcosa. "Amsterdam" è più vicino a "tokyo" che a "paris" solo per la codifica intera? probabilmente no. La seconda rappresentazione è un po 'più chiara su questo.
L'equivalente di 'get_dummies' è [' OneHotEncoder'] (http://scikit-learn.org/stable/modules/generated/sklearn.preelaborazione.OneHotEncoder.html) a proposito. – ayhan