train_test_split train test_size test sklearn scikit model_selection learn cross scikit-learn sklearn-pandas

scikit learn - train - TypeError: tipo sin ajuste



train_test_split() python (2)

Otra opción más corta para cortar el marco de datos de pandas es:

data.ix[:,:1]

Escribí un pequeño fragmento de código para hacer una regresión lineal usando sklearn.

Creé un archivo csv de 2 columnas (nombres de columnas X, Y con algunos números) y cuando leo el archivo veo que el contenido se lee correctamente, como se muestra a continuación.

Sin embargo, estoy obteniendo un error de "tipo de ajuste inmanejable" cuando trato de referirme a una columna usando los comandos datafile[:,:] o datafile[:,-1] etc.

Y cuando trato de usar X como respuesta, Y como predictor en la regresión lineal de sklearn, obtengo un error de valor como se muestra a continuación.

Busqué en línea, pero no pude descifrar cuál es el problema con mi código o archivo. Por favor ayuda.

import pandas as pd datafile=pd.read_csv(''samplelinear.csv'') datafile X Y 0 0 1.440000 1 1 33.220000 . . . print datafile.__class__ <class ''pandas.core.frame.DataFrame''> datafile[:,:] TypeError: unhashable type datafile[:,:1] TypeError: unhashable type from sklearn.linear_model import LinearRegression model=LinearRegression() model.fit(datafile.X,datafile.Y) ValueError: Found arrays with inconsistent numbers of samples: [ 1 14]


Si desea utilizar la sintaxis de sector para seleccionar un marco de datos, debe usar

data.iloc[:,:1]

Para su segundo problema, la entrada X necesita ser una matriz, no un vector, de modo que incluya más columnas o use la sintaxis:

model.fit(pd.DataFrame(datafile.X), datafile.Y)