Numpy: dsTypeError : 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''

Créé le 27 déc. 2019  ·  6Commentaires  ·  Source: numpy/numpy

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

La régression linéaire multiple

Importation de bibliothèques

importer numpy en tant que np
importer matplotlib.pyplot en tant que plt
importer des pandas au format pd

importer l'ensemble de données

ensemble de données = pd.read_csv('50_Startups.csv')

Obtenir les variables indépendantes

X = dataset.iloc[:,:-1].values
y = dataset.iloc[:,4].values
imprimer (jeu de données)

Encodage des données catégorielles

Codage de la variable indépendante

de sklearn.preprocessing importer OneHotEncoder
à partir de sklearn.compose importer ColumnTransformer
ct = ColumnTransformer([("Pays", OneHotEncoder(), [3])], reste = 'passthrough')
X = ct.fit_transform(X)

Éviter le piège variable factice

X = X[:, 1:]

Diviser l'ensemble de données en l'ensemble d'entraînement et l'ensemble de test

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)

Ajustement du modèle de régression linéaire multiple à l'ensemble d'apprentissage

à partir de sklearn.linear_model importer LinearRegression
régresseur = LinearRegression()
regressor.fit(X_train, y_train)

Prédire les résultats de l'ensemble de test

y_pred = regressor.predict(X_test)

Construire le modèle optimal à l'aide de l'élimination en amont

importer statsmodels.api en tant que sm

Ajouter des colonnes de 1

X= np.append(arr = np.ones((50,1)).astype(int), valeurs = X, axe =1)
X_opt = X[:,[0,1,2,3,4,5]]

Modèle de régression linéaire multiple --- OLS

regressor_OLS = sm.OLS(y,X_opt).fit()
regressor_OLS.summary()

Exemple de code de reproduction :

```python
importer numpy en tant que np

Message d'erreur:

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''

Informations sur la version Numpy/Python :

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)]

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

Tous les 6 commentaires

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

Cette page vous a été utile?
0 / 5 - 0 notes