J'exécute un programme sur Python et j'essaie de générer des sorties de statistiques à partir d'un tableau.
La ligne de code :
regressor_OLS = sm.OLS(y,X_opt).fit()
reçoit une erreur élaborée.
C'est le code
importer numpy en tant que np
importer matplotlib.pyplot en tant que plt
importer des pandas au format pd
ensemble de données = pd.read_csv('50_Startups.csv')
X = dataset.iloc[:,:-1].values
y = dataset.iloc[:,4].values
imprimer (jeu de données)
de sklearn.preprocessing importer OneHotEncoder
à partir de sklearn.compose importer ColumnTransformer
ct = ColumnTransformer([("Pays", OneHotEncoder(), [3])], reste = 'passthrough')
X = ct.fit_transform(X)
X = X[:, 1:]
de sklearn.model_selection importer train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state =0)
à partir de sklearn.linear_model importer LinearRegression
régresseur = LinearRegression()
regressor.fit(X_train, y_train)
y_pred = regressor.predict(X_test)
importer statsmodels.api en tant que sm
X= np.append(arr = np.ones((50,1)).astype(int), valeurs = X, axe =1)
X_opt = X[:,[0,1,2,3,4,5]]
regressor_OLS = sm.OLS(y,X_opt).fit()
regressor_OLS.summary()
```python
importer numpy en tant que np
ufunc 'isfinite' n'est pas pris en charge pour les types d'entrée, et les entrées n'ont pas pu être forcées en toute sécurité vers des types pris en charge selon la règle de casting ''safe''
Fichier "C:UsersmoranaDocumentsAIUDEMYMachine Learning A-ZPart 2 - RegressionSection 5 - Multiple Linear Regressionmultiple linear regression.py", ligne 46, in
regressor_OLS = sm.OLS(y,X_opt).fit()
Fichier "C:UsersmoranaAppDataLocalContinuumanaconda3libsite-packagesstatsmodelsregressionlinear_model.py", ligne 838, dans __init__
hasconst=hasconst, **kwargs)
Fichier "C:UsersmoranaAppDataLocalContinuumanaconda3libsite-packagesstatsmodelsregressionlinear_model.py", ligne 684, dans __init__
poids=poids, hasconst=hasconst, **kwargs)
Fichier "C:UsersmoranaAppDataLocalContinuumanaconda3libsite-packagesstatsmodelsregressionlinear_model.py", ligne 196, dans __init__
super(RegressionModel, self).__init__(endog, exog, **kwargs)
Fichier "C:UsersmoranaAppDataLocalContinuumanaconda3libsite-packagesstatsmodelsbasemodel.py", ligne 216, dans __init__
super(LikelihoodModel, self).__init__(endog, exog, **kwargs)
Fichier "C:UsersmoranaAppDataLocalContinuumanaconda3libsite-packagesstatsmodelsbasemodel.py", ligne 68, dans __init__
**kwargs)
Fichier "C:UsersmoranaAppDataLocalContinuumanaconda3libsite-packagesstatsmodelsbasemodel.py", ligne 91, dans _handle_data
data = handle_data(endog, exog, missing, hasconst, **kwargs)
Fichier "C:UsersmoranaAppDataLocalContinuumanaconda3libsite-packagesstatsmodelsbasedata.py", ligne 635, dans handle_data
**kwargs)
Fichier "C:UsersmoranaAppDataLocalContinuumanaconda3libsite-packagesstatsmodelsbasedata.py", ligne 80, dans __init__
self._handle_constant(hasconst)
Fichier "C:UsersmoranaAppDataLocalContinuumanaconda3libsite-packagesstatsmodelsbasedata.py", ligne 125, dans _handle_constant
sinon np.isfinite(ptp_).all() :
TypeError : ufunc 'isfinite' n'est pas pris en charge pour les types d'entrée, et les entrées n'ont pas pu être forcées en toute sécurité vers des types pris en charge conformément à la règle de casting ''safe''
Spyder 4.0.0
1.17.4 3.7.3 (par défaut, 24 avril 2019, 15:29:51) [MSC v.1915 64 bits (AMD64)]
Hey!
Votre tableau X_opt a un dtype d'objet et cela peut provoquer une erreur. Essayez de le changer en flottant. Par exemple, vous pouvez utiliser ceci :
X= np.append(arr = np.ones((50,1)).astype(int), valeurs = X, axe =1)
X_opt = X[:,[0,1,2,3,4,5]]
X_opt = np.array(X_opt, dtype=float)
Amusez-vous bien :D
Merci @filip-stolinski pour votre solution
@filip-stolinski Merci beaucoup pour votre solution. Cela fonctionne certainement
Fermeture. Veuillez rouvrir ou ouvrir un nouveau problème si nécessaire.
Merci @filip-stolinski
Merci
Commentaire le plus utile
Hey!
Votre tableau X_opt a un dtype d'objet et cela peut provoquer une erreur. Essayez de le changer en flottant. Par exemple, vous pouvez utiliser ceci :
X= np.append(arr = np.ones((50,1)).astype(int), valeurs = X, axe =1)
X_opt = X[:,[0,1,2,3,4,5]]
X_opt = np.array(X_opt, dtype=float)
Amusez-vous bien :D