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
numpy als np importieren
import matplotlib.pyplot als plt
Pandas als pd importieren
Datensatz = pd.read_csv('50_Startups.csv')
X = dataset.iloc[:,:-1].values
y = dataset.iloc[:,4].values
drucken (Datensatz)
aus sklearn.preprocessing importieren OneHotEncoder
aus sklearn.compose importieren ColumnTransformer
ct = ColumnTransformer([("Land", OneHotEncoder(), [3])], Rest = 'Passthrough')
X = ct.fit_transform(X)
X = X[:, 1:]
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)
aus sklearn.linear_model import LinearRegression
Regressor = LinearRegression()
regressor.fit(X_train, y_train)
y_pred = regressor.predict(X_test)
importiere statsmodels.api als sm
X= np.append(arr = np.ones((50,1)).astype(int), values = X, Achse =1)
X_opt = X[:,[0,1,2,3,4,5]]
regressor_OLS = sm.OLS(y,X_opt).fit()
regressor_OLS.summary()
```python
numpy als np importieren
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
Spyder 4.0.0
1.17.4 3.7.3 (Standard, 24. April 2019, 15:29:51) [MSC v.1915 64 Bit (AMD64)]
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
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