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๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ
pandas๋ฅผ pd๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ

๋ฐ์ดํ„ฐ์„ธํŠธ ๊ฐ€์ ธ์˜ค๊ธฐ

๋ฐ์ดํ„ฐ ์„ธํŠธ = pd.read_csv('50_Startups.csv')

๋…๋ฆฝ ๋ณ€์ˆ˜ ์–ป๊ธฐ

X = ๋ฐ์ดํ„ฐ์„ธํŠธ.iloc[:,:-1].๊ฐ’
y = ๋ฐ์ดํ„ฐ์„ธํŠธ.iloc[:,4].๊ฐ’
์ธ์‡„(๋ฐ์ดํ„ฐ ์„ธํŠธ)

๋ฒ”์ฃผํ˜• ๋ฐ์ดํ„ฐ ์ธ์ฝ”๋”ฉ

๋…๋ฆฝ ๋ณ€์ˆ˜ ์ธ์ฝ”๋”ฉ

sklearn.preprocessing ๊ฐ€์ ธ์˜ค๊ธฐ OneHotEncoder์—์„œ
sklearn.compose์—์„œ ColumnTransformer ๊ฐ€์ ธ์˜ค๊ธฐ
ct = ColumnTransformer([("๊ตญ๊ฐ€", OneHotEncoder(), [3])], ๋‚˜๋จธ์ง€ = 'ํ†ต๊ณผ')
X = ct.fit_transform(X)

๋”๋ฏธ ๋ณ€์ˆ˜ ํ•จ์ • ํ”ผํ•˜๊ธฐ

X = X[:, 1:]

๋ฐ์ดํ„ฐ ์„ธํŠธ๋ฅผ ํ›ˆ๋ จ ์„ธํŠธ์™€ ํ…Œ์ŠคํŠธ ์„ธํŠธ๋กœ ๋ถ„ํ• 

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)

๋‹ค์ค‘ ์„ ํ˜• ํšŒ๊ท€ ๋ชจ๋ธ์„ ํ›ˆ๋ จ ์„ธํŠธ์— ํ”ผํŒ…ํ•˜๊ธฐ

sklearn.linear_model์—์„œ LinearRegression ๊ฐ€์ ธ์˜ค๊ธฐ
ํšŒ๊ท€์ž = LinearRegression()
regressor.fit(X_train, y_train)

ํ…Œ์ŠคํŠธ ์„ธํŠธ ๊ฒฐ๊ณผ ์˜ˆ์ธก

y_pred = regressor.predict(X_test)

Backward Elimination์„ ์‚ฌ์šฉํ•˜์—ฌ ์ตœ์ ์˜ ๋ชจ๋ธ ๊ตฌ์ถ•

statsmodels.api๋ฅผ sm์œผ๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ

1์˜ ์—ด ์ถ”๊ฐ€

X= np.append(arr = np.ones((50,1)).astype(int), ๊ฐ’ = X, ์ถ• =1)
X_opt = X[:,[0,1,2,3,4,5]]

๋‹ค์ค‘ ์„ ํ˜• ํšŒ๊ท€ ๋ชจ๋ธ --- OLS

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

์žฌํ˜„ ์ฝ”๋“œ ์˜ˆ:

```ํŒŒ์ด์ฌ
numpy๋ฅผ np๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ

์—๋Ÿฌ ๋ฉ”์‹œ์ง€:

ufunc 'isfinite'๋Š” ์ž…๋ ฅ ์œ ํ˜•์— ๋Œ€ํ•ด ์ง€์›๋˜์ง€ ์•Š์œผ๋ฉฐ ์ž…๋ ฅ์€ ์บ์ŠคํŒ… ๊ทœ์น™ ''safe''์— ๋”ฐ๋ผ ์ง€์›๋˜๋Š” ์œ ํ˜•์œผ๋กœ ์•ˆ์ „ํ•˜๊ฒŒ ๊ฐ•์ œ ๋ณ€ํ™˜๋  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

ํŒŒ์ผ "C:UsersmoranaDocumentsAIUDEMYMachine Learning A-ZPart 2 - RegressionSection 5 - Multiple Linear Regressionmultiple linear regression.py", ๋ผ์ธ 46, in
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=๊ฐ€์ค‘์น˜, 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__
**์ฝฐ๋ฅด๊ทธ)

ํŒŒ์ผ "C:UsersmoranaAppDataLocalContinuumanaconda3libsite-packagesstatsmodelsbasemodel.py", 91ํ–‰, _handle_data
๋ฐ์ดํ„ฐ = ํ•ธ๋“ค_๋ฐ์ดํ„ฐ(endog, exog, ๋ˆ„๋ฝ, hasconst, **kwargs)

ํŒŒ์ผ "C:UsersmoranaAppDataLocalContinuumanaconda3libsite-packagesstatsmodelsbasedata.py", 635ํ–‰, handle_data
**์ฝฐ๋ฅด๊ทธ)

ํŒŒ์ผ "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 ๋ฒ„์ „ ์ •๋ณด:

์ŠคํŒŒ์ด๋” 4.0.0
1.17.4 3.7.3(๊ธฐ๋ณธ๊ฐ’, 2019๋…„ 4์›” 24์ผ, 15:29:51) [MSC v.1915 64๋น„ํŠธ(AMD64)]

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์ด๋ด!
X_opt ๋ฐฐ์—ด์— dtype ๊ฐœ์ฒด๊ฐ€ ์žˆ์œผ๋ฉฐ ์ด๋กœ ์ธํ•ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. float๋กœ ๋ฐ”๊ฟ”๋ณด์„ธ์š”. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
X= np.append(arr = np.ones((50,1)).astype(int), ๊ฐ’ = X, ์ถ• =1)
X_opt = X[:,[0,1,2,3,4,5]]
X_opt = np.array(X_opt, dtype=float)

์ฆ๊ฒ๊ฒŒ ๋ณด๋‚ด์„ธ์š” :D

๋ชจ๋“  6 ๋Œ“๊ธ€

์ด๋ด!
X_opt ๋ฐฐ์—ด์— dtype ๊ฐœ์ฒด๊ฐ€ ์žˆ์œผ๋ฉฐ ์ด๋กœ ์ธํ•ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. float๋กœ ๋ฐ”๊ฟ”๋ณด์„ธ์š”. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
X= np.append(arr = np.ones((50,1)).astype(int), ๊ฐ’ = X, ์ถ• =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 ๋“ฑ๊ธ‰