Numpy: dsTypeError: ufunc 'isfinite' tidak didukung untuk tipe input, dan input tidak dapat dipaksakan dengan aman ke tipe yang didukung sesuai dengan aturan casting ''safe''

Dibuat pada 27 Des 2019  ·  6Komentar  ·  Sumber: numpy/numpy

Saya menjalankan program dengan Python dan saya mencoba menghasilkan output statistik dari sebuah array.
Baris kode:
regressor_OLS = sm.OLS(y,X_opt).fit()
diberikan kesalahan yang rumit.

Ini kodenya

Regresi Linier Berganda

Mengimpor Perpustakaan

impor numpy sebagai np
impor matplotlib.pyplot sebagai plt
impor panda sebagai pd

mengimpor kumpulan data

kumpulan data = pd.read_csv('50_Startups.csv')

Mendapatkan variabel bebas

X = dataset.iloc[:,:-1].values
y = dataset.iloc[:,4].nilai
cetak (kumpulan data)

Mengkodekan data kategoris

Mengkodekan Variabel Independen

dari sklearn.preprocessing impor OneHotEncoder
dari sklearn.compose impor ColumnTransformer
ct = ColumnTransformer([("Negara", OneHotEncoder(), [3])], sisa = 'passthrough')
X = ct.fit_transform(X)

Menghindari Perangkap Variabel Dummy

X = X[:, 1:]

Memisahkan dataset menjadi Training set dan Test set

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

Memasang Model Regresi Linier Berganda ke Set Pelatihan

dari sklearn.linear_model impor LinearRegression
regresi = LinierRegresi()
regressor.fit(X_train, y_train)

Memprediksi hasil set Tes

y_pred = regressor.predict(X_test)

Membangun Model Optimal menggunakan Eliminasi Mundur

impor statsmodels.api sebagai sm

Tambahkan kolom 1

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

Model Regresi Linier Berganda --- OLS

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

Contoh kode reproduksi:

```python
impor numpy sebagai np

Pesan eror:

ufunc 'isfinite' tidak didukung untuk tipe input, dan input tidak dapat dipaksakan dengan aman ke tipe yang didukung sesuai dengan aturan casting ''safe''

File "C:UsersmoranaDocumentsAIUDEMYMachine Learning A-ZBagian 2 - RegresiBagian 5 - Regresi Linier BergandaRegresi Linier Berganda.py", baris 46, in
regressor_OLS = sm.OLS(y,X_opt).fit()

File "C:UsersmoranaAppDataLocalContinuumanaconda3libsite-packagesstatsmodelsregressionlinear_model.py", baris 838, di __init__
hasconst=hasconst, **kwargs)

File "C:UsersmoranaAppDataLocalContinuumanaconda3libsite-packagesstatsmodelsregressionlinear_model.py", baris 684, di __init__
bobot=bobot, hasconst=hasconst, **kwargs)

File "C:UsersmoranaAppDataLocalContinuumanaconda3libsite-packagesstatsmodelsregressionlinear_model.py", baris 196, di __init__
super(RegressionModel, self).__init__(endog, exog, **kwargs)

File "C:UsersmoranaAppDataLocalContinuumanaconda3libsite-packagesstatsmodelsbasemodel.py", baris 216, di __init__
super(Model Kemungkinan, diri).__init__(endog, exog, **kwargs)

File "C:UsersmoranaAppDataLocalContinuumanaconda3libsite-packagesstatsmodelsbasemodel.py", baris 68, di __init__
**kwargs)

File "C:UsersmoranaAppDataLocalContinuumanaconda3libsite-packagesstatsmodelsbasemodel.py", baris 91, di _handle_data
data = handle_data(endog, exog, hilang, hasconst, **kwargs)

File "C:UsersmoranaAppDataLocalContinuumanaconda3libsite-packagesstatsmodelsbasedata.py", baris 635, di handle_data
**kwargs)

File "C:UsersmoranaAppDataLocalContinuumanaconda3libsite-packagesstatsmodelsbasedata.py", baris 80, di __init__
self._handle_constant(hasconst)

File "C:UsersmoranaAppDataLocalContinuumanaconda3libsite-packagesstatsmodelsbasedata.py", baris 125, di _handle_constant
jika tidak np.isfinite(ptp_).all():

TypeError: ufunc 'isfinite' tidak didukung untuk tipe input, dan input tidak dapat dipaksakan dengan aman ke tipe yang didukung sesuai dengan aturan casting ''safe''

Informasi versi Numpy/Python:

Spyder 4.0.0
1.17.4 3.7.3 (default, 24 Apr 2019, 15:29:51) [MSC v.1915 64 bit (AMD64)]

Komentar yang paling membantu

Hai!
Array X_opt Anda memiliki dtype objek dan ini mungkin menyebabkan kesalahan. Coba ganti jadi float. Misalnya Anda dapat menggunakan ini:
X= np.append(arr = np.ones((50,1)).astype(int), nilai = X, sumbu =1)
X_opt = X[:,[0,1,2,3,4,5]]
X_opt = np.array(X_opt, dtype=float)

Selamat bersenang-senang :D

Semua 6 komentar

Hai!
Array X_opt Anda memiliki dtype objek dan ini mungkin menyebabkan kesalahan. Coba ganti jadi float. Misalnya Anda dapat menggunakan ini:
X= np.append(arr = np.ones((50,1)).astype(int), nilai = X, sumbu =1)
X_opt = X[:,[0,1,2,3,4,5]]
X_opt = np.array(X_opt, dtype=float)

Selamat bersenang-senang :D

Terima kasih @filip-stolinski atas solusi Anda

@filip-stolinski Terima kasih banyak atas solusi Anda. Ini pasti Bekerja

Penutupan. Silakan buka kembali atau buka edisi baru jika diperlukan.

Terima kasih @filip-stolinski

Terima kasih

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

manuels picture manuels  ·  3Komentar

dmvianna picture dmvianna  ·  4Komentar

MorBilly picture MorBilly  ·  4Komentar

astrofrog picture astrofrog  ·  4Komentar

Levstyle picture Levstyle  ·  3Komentar