Numpy: dsTypeError: ufunc 'isfinite' wird für die Eingabetypen nicht unterstützt, und die Eingaben konnten gemäß der Umwandlungsregel ''safe'' nicht sicher in einen unterstützten Typ umgewandelt werden

Erstellt am 27. Dez. 2019  ·  6Kommentare  ·  Quelle: numpy/numpy

Ich führe ein Programm auf Python aus und versuche, Statistikausgaben aus einem Array zu generieren.
Die Codezeile:
regressor_OLS = sm.OLS(y,X_opt).fit()
wird ein ausführlicher Fehler angegeben.

Das ist der Code

Multiple lineare Regression

Bibliotheken importieren

numpy als np importieren
import matplotlib.pyplot als plt
Pandas als pd importieren

Importieren des Datensatzes

Datensatz = pd.read_csv('50_Startups.csv')

Erhalten der unabhängigen Variablen

X = dataset.iloc[:,:-1].values
y = dataset.iloc[:,4].values
drucken (Datensatz)

Kategorische Daten codieren

Codieren der unabhängigen Variablen

aus sklearn.preprocessing importieren OneHotEncoder
aus sklearn.compose importieren ColumnTransformer
ct = ColumnTransformer([("Land", OneHotEncoder(), [3])], Rest = 'Passthrough')
X = ct.fit_transform(X)

Vermeidung der Dummy-Variablenfalle

X = X[:, 1:]

Aufteilen des Datensatzes in den Trainingssatz und den Testsatz

aus sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state =0)

Anpassen des multiplen linearen Regressionsmodells an den Trainingssatz

aus sklearn.linear_model import LinearRegression
Regressor = LinearRegression()
regressor.fit(X_train, y_train)

Vorhersage der Testsatzergebnisse

y_pred = regressor.predict(X_test)

Aufbau des optimalen Modells mit Rückwärtselimination

importiere statsmodels.api als sm

Spalten von 1 . hinzufügen

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

Mehrfaches lineares Regressionsmodell --- OLS

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

Codebeispiel reproduzieren:

```python
numpy als np importieren

Fehlermeldung:

ufunc 'isfinite' wird für die Eingabetypen nicht unterstützt, und die Eingaben konnten gemäß der Casting-Regel ''safe'' nicht sicher in einen der unterstützten Typen umgewandelt werden.

Datei "C:UsersmoranaDocumentsAIUDEMYMaschinelles Lernen A-ZTeil 2 - RegressionSection 5 - Multiple Linear Regressionmultiple linear regression.py", Zeile 46, in
regressor_OLS = sm.OLS(y,X_opt).fit()

Datei "C:UsersmoranaAppDataLocalContinuumanaconda3libsite-packagesstatsmodelsregressionlinear_model.py", Zeile 838, in __init__
hasconst=hasconst, **kwargs)

Datei "C:UsersmoranaAppDataLocalContinuumanaconda3libsite-packagesstatsmodelsregressionlinear_model.py", Zeile 684, in __init__
Gewichte=Gewichte, hasconst=hasconst, **kwargs)

Datei "C:UsersmoranaAppDataLocalContinuumanaconda3libsite-packagesstatsmodelsregressionlinear_model.py", Zeile 196, in __init__
super(Regressionsmodell, self).__init__(endog, exog, **kwargs)

Datei "C:UsersmoranaAppDataLocalContinuumanaconda3libsite-packagesstatsmodelsbasemodel.py", Zeile 216, in __init__
super(LikelihoodModel, self).__init__(endog, exog, **kwargs)

Datei "C:UsersmoranaAppDataLocalContinuumanaconda3libsite-packagesstatsmodelsbasemodel.py", Zeile 68, in __init__
**kwarg)

Datei "C:UsersmoranaAppDataLocalContinuumanaconda3libsite-packagesstatsmodelsbasemodel.py", Zeile 91, in _handle_data
data = handle_data(endog, exog, fehlt, hasconst, **kwargs)

Datei "C:UsersmoranaAppDataLocalContinuumanaconda3libsite-packagesstatsmodelsbasedata.py", Zeile 635, in handle_data
**kwarg)

Datei "C:UsersmoranaAppDataLocalContinuumanaconda3libsite-packagesstatsmodelsbasedata.py", Zeile 80, in __init__
self._handle_constant(hasconst)

Datei "C:UsersmoranaAppDataLocalContinuumanaconda3libsite-packagesstatsmodelsbasedata.py", Zeile 125, in _handle_constant
wenn nicht np.isfinite(ptp_).all():

TypeError: ufunc 'isfinite' wird für die Eingabetypen nicht unterstützt und die Eingaben konnten gemäß der Casting-Regel ''safe'' nicht sicher in einen unterstützten Typ umgewandelt werden

Numpy/Python-Versionsinformationen:

Spyder 4.0.0
1.17.4 3.7.3 (Standard, 24. April 2019, 15:29:51) [MSC v.1915 64 Bit (AMD64)]

Hilfreichster Kommentar

Hey!
Ihr X_opt-Array hat einen dtype-Objekttyp und dies kann zu einem Fehler führen. Versuchen Sie, es in Float zu ändern. Zum Beispiel können Sie dies verwenden:
X= np.append(arr = np.ones((50,1)).astype(int), values ​​= X, Achse =1)
X_opt = X[:,[0,1,2,3,4,5]]
X_opt = np.array(X_opt, dtype=float)

Viel Spaß :D

Alle 6 Kommentare

Hey!
Ihr X_opt-Array hat einen dtype-Objekttyp und dies kann zu einem Fehler führen. Versuchen Sie, es in Float zu ändern. Zum Beispiel können Sie dies verwenden:
X= np.append(arr = np.ones((50,1)).astype(int), values ​​= X, Achse =1)
X_opt = X[:,[0,1,2,3,4,5]]
X_opt = np.array(X_opt, dtype=float)

Viel Spaß :D

Danke @filip-stolinski für deine Lösung

@filip-stolinski Vielen Dank für Ihre Lösung. Es funktioniert definitiv

Schließen. Bitte öffnen Sie bei Bedarf erneut oder eröffnen Sie eine neue Ausgabe.

Danke @filip-stolinski

Danke

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

toddrjen picture toddrjen  ·  4Kommentare

Foadsf picture Foadsf  ·  3Kommentare

Levstyle picture Levstyle  ·  3Kommentare

marcocaccin picture marcocaccin  ·  4Kommentare

navytux picture navytux  ·  4Kommentare