Numpy: dsTypeError:ufunc'isfinite 'は入力タイプでサポートされておらず、キャストルール' 'safe' 'に従って、サポートされているタイプに入力を安全に強制変換できませんでした

作成日 2019年12月27日  ·  6コメント  ·  ソース: numpy/numpy

Pythonでプログラムを実行していて、配列から統計出力を生成しようとしています。
コード行:
regressor_OLS = sm.OLS(y、X_opt).fit()
手の込んだエラーが発生します。

これはコードです

重回帰

ライブラリのインポート

numpyをnpとしてインポートします
matplotlib.pyplotをpltとしてインポートします
パンダをpdとしてインポートする

データセットのインポート

データセット= pd.read_csv( '50_Startups.csv')

独立変数の取得

X = dataset.iloc [:、:-1] .values
y = dataset.iloc [:、4] .values
印刷(データセット)

カテゴリデータのエンコード

独立変数のエンコード

sklearn.preprocessingからインポートOneHotEncoder
sklearn.composeからimportColumnTransformer
ct = ColumnTransformer([( "Country"、OneHotEncoder()、[3])]、remainder = 'パススルー')
X = ct.fit_transform(X)

ダミー可変トラップの回避

X = X [:、1:]

データセットをトレーニングセットとテストセットに分割する

sklearn.model_selectionからimporttrain_test_split
X_train、X_test、y_train、y_test = train_test_split(X、y、test_size = 0.2、random_state = 0)

複数の線形回帰モデルをトレーニングセットに適合させる

sklearn.linear_modelからimportLinearRegression
regressor = LinearRegression()
regressor.fit(X_train、y_train)

テストセットの結果の予測

y_pred = regressor.predict(X_test)

バックワードエリミネーションを使用した最適モデルの構築

statsmodels.apiをsmとしてインポートします

1の列を追加します

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

多重線形回帰モデル--- OLS

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

コード例の再現:

`` `python
numpyをnpとしてインポートします

エラーメッセージ:

ufunc'isfinite 'は入力タイプでサポートされておらず、キャストルール' 'safe' 'に従って、サポートされているタイプに入力を安全に強制変換できませんでした。

ファイル「C:UsersmoranaDocumentsAIUDEMYMachineLearning A-ZPart 2-RegressionSection 5-Multiple Linear Regressionmultiple linearregression.py」、46行目
regressor_OLS = sm.OLS(y、X_opt).fit()

ファイル "C:UsersmoranaAppDataLocalContinuumanaconda3libsite-packagesstatsmodelsregressionlinear_model.py"、行838、__ init__
hasconst = hasconst、** kwargs)

ファイル「C:UsersmoranaAppDataLocalContinuumanaconda3libsite-packagesstatsmodelsregressionlinear_model.py」、684行目、__ init__
weights = weights、hasconst = hasconst、** kwargs)

ファイル "C:UsersmoranaAppDataLocalContinuumanaconda3libsite-packagesstatsmodelsregressionlinear_model.py"、行196、__ init__
super(RegressionModel、self).__ init __(endog、exog、** kwargs)

ファイル "C:UsersmoranaAppDataLocalContinuumanaconda3libsite-packagesstatsmodelsbasemodel.py"、行216、__ init__
super(LikelihoodModel、self).__ init __(endog、exog、** kwargs)

ファイル「C:UsersmoranaAppDataLocalContinuumanaconda3libsite-packagesstatsmodelsbasemodel.py」、68行目、__ init__
** kwargs)

ファイル "C:UsersmoranaAppDataLocalContinuumanaconda3libsite-packagesstatsmodelsbasemodel.py"、行91、_handle_data
data = handle_data(endog、exog、missing、hasconst、** kwargs)

ファイル「C:UsersmoranaAppDataLocalContinuumanaconda3libsite-packagesstatsmodelsbasedata.py」、635行目、handle_data
** kwargs)

ファイル「C:UsersmoranaAppDataLocalContinuumanaconda3libsite-packagesstatsmodelsbasedata.py」、80行目、__ init__
self._handle_constant(hasconst)

ファイル "C:UsersmoranaAppDataLocalContinuumanaconda3libsite-packagesstatsmodelsbasedata.py"、行125、_handle_constant
np.isfinite(ptp _)。all()でない場合:

TypeError:ufunc'isfinite 'は入力タイプでサポートされておらず、キャストルール' 'safe' 'に従って、サポートされているタイプに入力を安全に強制変換できませんでした

Numpy / Pythonのバージョン情報:

Spyder 4.0.0
1.17.4 3.7.3(デフォルト、2019年4月24日、15:29:51)[MSC v.1915 64ビット(AMD64)]

最も参考になるコメント

おい!
X_opt配列にオブジェクトのdtypeがあり、これがエラーの原因である可能性があります。 フロートに変更してみてください。 たとえば、これを使用できます。
X = np.append(arr = np.ones((50,1))。astype(int)、values = X、axis = 1)
X_opt = X [:、[0,1,2,3,4,5]]
X_opt = np.array(X_opt、dtype = float)

楽しんでください:D

全てのコメント6件

おい!
X_opt配列にオブジェクトのdtypeがあり、これがエラーの原因である可能性があります。 フロートに変更してみてください。 たとえば、これを使用できます。
X = np.append(arr = np.ones((50,1))。astype(int)、values = X、axis = 1)
X_opt = X [:、[0,1,2,3,4,5]]
X_opt = np.array(X_opt、dtype = float)

楽しんでください:D

あなたの解決策をありがとう@ filip-stolinski

@ filip-stolinskiソリューションをありがとうございました。 それは間違いなく機能します

閉鎖。 必要に応じて、再度開くか、新しい問題を開いてください。

ありがとう@ filip-stolinski

ありがとう

このページは役に立ちましたか?
0 / 5 - 0 評価