Domanda

sto lavorando sul set di dati con un sacco di NA valori con sklearn e pandas.DataFrame. Ho implementato diverse strategie di imputazione per le diverse colonne dei nomi delle colonne a base dataframe. Per esempio AN predittore 'var1' io imputo con 0 di e per 'var2' con media.

Quando provo ad attraversare convalidare il mio modello usando train_test_split mi restituisce un nparray che non ha i nomi delle colonne. Come posso imputare valori mancanti in questo nparray?

P.S. Io non imputare valori nel set di dati originale mancante prima di sciogliersi di proposito in modo continuo a insiemi di test e validazione a parte.

È stato utile?

Soluzione

Si può solo lanciare la vostra nparray dal retro train_test_split in un panda dataframe in modo da poter effettuare la sua stessa strategia. Questo è molto comune a quello che faccio quando si tratta di panda e scikit. Ad esempio,

 a = train_test_split
 new_df = pd.DataFrame(a)

Altri suggerimenti

Dal link che hai menzionato nel commento, i trenini e di test dovrebbe essere sotto forma di un dataframe se avete seguito la prima spiegazione.

In questo caso, si potrebbe fare qualcosa di simile:

df[variable] = df[variable].fillna(df[variable].median())

Sono disponibili opzioni su cosa per riempire i valori N / A con, controllare il link. http://pandas.pydata.org/pandas-docs/stable/missing_data.html

Se avete seguito la seconda spiegazione, utilizzando la convalida incrociata di sklearn, è possibile implementare il suggerimento di mike1886 di trasformare le matrici in dataframes e quindi utilizzare l'opzione fillna.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
scroll top