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)