5
che sto cercando di eseguire questo codice: (merito va a Greg)dati suddivisione in prova e in treno, facendo un modello di regressione logistica in panda
import pandas as pd
from sklearn.cross_validation import train_test_split
import statsmodels.api as sm
quality = pd.read_csv("https://courses.edx.org/c4x/MITx/15.071x/asset/quality.csv")
train, test = train_test_split(quality, train_size=0.75, random_state=1)
qualityTrain = pd.DataFrame(train, columns=quality.columns)
qualityTest = pd.DataFrame(test, columns=quality.columns)
qualityTrain['PoorCare'] = qualityTrain['PoorCare'].astype(int)
cols = ['OfficeVisits', 'Narcotics']
x = qualityTrain[cols]
x = sm.add_constant(x)
y = qualityTrain['PoorCare']
model = sm.Logit(y, x).fit()
model.summary()
Ma sto ottenendo:
AttributeError: 'int' object has no attribute 'exp'
sulla penultima riga. Ciò è chiaramente introdotto campionando i dati (train_test_split), perché il modello si adatta perfettamente all'intero dataset non modificato.
Come risolvere il problema?
Grazie. Ma è strano che non sia in grado di adattarsi ai dati interi, no? – alkamid
nell'esecuzione dell'esempio: 'train_test_split' restituisce una matrice di oggetto dtype. La versione principale di statsmodels ora solleva un'eccezione se uno degli array è un oggetto 'object' dtype. – user333700