νκ·λΆμμ΄λ
νκ·λΆμμ λ
립λ³μμ μ’
μλ³μμ κ΄κ³λ₯Ό μΆμ νλ ν΅κ³λΆμμ΄λ€.
μλ₯Ό λ€μ΄μ, κ° μ§λ§λ€ μλ²μ§μ μλ€μ ν€λ₯Ό μ‘°μ¬ν΄μ μλ²μ§μ ν€κ° μλ€μ ν€μ μΌλ§νΌμ μν₯μ λ―Έμ³€λμ§ μ‘°μ¬λ₯Ό νλ€κ³ νμ.
μ΄ λ, μλ²μ§μ ν€λ₯Ό xλΌκ³ νκ³ μλ€μ ν€λ₯Ό yλΌκ³ ν μ μλ€. κ·Έλ¦¬κ³ xμ yμ κ΄κ³λ₯Ό μΆμ μ, μ΄λμ λμ μ€μ°¨κ° λ°μνλ€.
μ΄ μ€μ°¨λ₯Ό λ°μν΄μ xμ yκ° μΌλ§λ§νΌ κ΄λ ¨μ΄ μλμ§λ₯Ό μ°Ύλ κ²μ νκ·λΆμμ΄λΌκ³ νλ€
μ¦, xμ yμ¬μ΄μ κ΄κ³λ₯Ό ν¨μμμΌλ‘ λνλ΄κ³ μ΄λ¬ν μμ ν΅ν΄μ yλ₯Ό μμΈ‘νλ κ²μ΄λ€.
λ¨μ μ ν νκ·λΆμ
νκ·μλ λ€μν λ°©λ²μ΄ μμΌλ©° κ·Έ μ€ μ ννκ·λΆμμ΄ μ μΌ κ°λ¨νλ€.
λ¨μ μ ν νκ·λΆμμ μ λ ₯λ³μ Xμ μΆλ ₯λ³μ Yκ° μ νμ μΈ κ΄κ³μ μμ λ μ¬μ©κ°λ₯ν λΆμ λ°©λ²μ΄λ€.
μ΄λ xμ yμ¬μ΄λ μ ν 1μ°¨ ν¨μλ‘ νν ν μ μλ€.
νκ·μμ μλμ κ°μ΄ λνλΌ μ μλ€.
μ¬κΈ°μ λ² ν0λ μ νΈ, λ² ν1μ κΈ°μΈκΈ°μ΄λ©° κ° λ² νλ€μ νκ·κ³μ(coefficients)λΌκ³ λΆλ₯Έλ€
νκ·λΆμμ μ
λ ₯ λ°μ΄ν° Xμ μΆλ ₯λ³μ Yμ κ΄κ³λ₯Ό μΆμ νμ¬ μ°λ¦¬κ° μμ§ λͺ»νλ x(μλ‘μ΄ μ
λ ₯ λ°μ΄ν°)μ λν μΆλ ₯ κ°μΈ Yλ₯Ό μμΈ‘νκΈ° μν¨μ΄λ€. κ·Έλ κΈ°μ Xμ Yλ₯Ό ν΅ν΄ νκ· μμ μΆμ ν΄μΌ νλ€.
νκ· μμ μΆμ νλ λ°©λ²μ νκ·κ³μμ xμ yμ κ°μ λ£μΌλ©΄μ νμ΅μ μν€λλ°, μμ°¨(μ€μ κ° - μΆμ ν κ°)κ° μ΅μκ° λκ² λ§λ€λ©΄ λλ€.
μ¦ μ°λ¦¬μκ² μ£Όμ΄μ§ Xλ°μ΄ν°μ Yλ°μ΄ν°κ° μμ λ Xλ°μ΄ν°λ₯Ό ν΅ν΄μ μμλ‘ Yκ°μΈ Yνμ μΆμ ν΄λ³΄κ³ μ΄λ₯Ό μ€μ Yκ°κ³Ό λΉκ΅νλ©΄μ κ·Έ μ€μ°¨λ₯Ό μ€μ¬λκ°λ©΄ λλ κ²μ΄λ€.
μ΄λ μμ°¨λ λ¨μν κ° Xλ€μ μμ°¨μ ν©μ 0μΌλ‘ λ§λλ κ²μ΄ μλλΌ, μμ°¨μ κ°μ μ κ³±νμ¬ κ·Έ κ°μ΄ μ΅μκ° λκ² λ§λ λ€.
κ·Έλ¦¬κ³ μ΄λ° μμ°¨μ μ κ³±ν©μ SSE(Error Sum of Squares)λΌκ³ νλ©° μλμ κ°μ μμΌλ‘ ννν μ μλ€.
*ei = μ€μ κ° - μΆμ ν κ°
νκ·λΆμμ μ νλ νκ°
SSE μ¦ μ€μ κ°κ³Ό μ°λ¦¬κ° μΆμ ν κ°μ μ°¨μ΄μΈ μμ°¨κ° μμμλ‘ μ νλκ° λλ€.
νκ·λΆμμ μ νλλ₯Ό νκ°νκΈ° μν κ²μ λ°©λ² μ€ νλλ‘λ R-Squaredκ° μλ€.
R2λ 0~1 μ¬μ΄μ κ°μ κ°μ§λ©°, 1μ κ°κΉμΈ μλ‘ μ ννκ· λͺ¨νμ μ€λͺ λ ₯μ΄ λλ€λ κ²μ μλ―Ένλ€.
μ€λͺ λ ₯μ΄ λλ€λ κ²μ, Yμ μ΄ λ³λμ Xλ‘ μΌλ§λ μ μ€λͺ νλλ κ²μ΄λ€.
R2λ μλμ κ°μ μμΌλ‘ μ€λͺ κ°λ₯νλ€.
SST : μ€μ κ° - yνκ·
SSE : μ€μ κ° - μμΈ‘κ°
SSR : μμΈ‘κ° - yνκ·
λ¨μ μ ν νκ·λΆμ μ€μ΅
sklearnμ datasetsμ€ Bostonλ°μ΄ν°λ₯Ό μ΄μ©νμ¬ CRIM λ³μλ‘ PRICE κ°μ μμΈ‘νλ μ ν νκ·λΆμ λͺ¨λΈ λ§λ€κΈ°
-λ°μ΄ν° μ€λΉ
#νμν λͺ¨λ λΆλ¬μ€κΈ°
import pandas as pd
import numpy as np
from sklearn import datasets
#λ°μ΄ν° λΆλ¬μ€κΈ°
boston = datasets.load_boston()
#λ°μ΄ν° νμΈ
print(boston.DESCR)
#dataframeμΌλ‘
boston_df = pd.DataFrame(boston.data, columns = boston.feature_names)
boston_df.head()
boston_df["PRICE"] = pd.DataFrame(boston.target)
boston_df.info()
-νκ·λΆμ
import statsmodels.api as sm
price = boston_df[["PRICE"]]
crim = boston_df[["CRIM"]]
#μμν μΆκ°νκΈ°
crim1 = sm.add_constant(crim, has_constant='add')
crim1
#νκ·
reg = sm.OLS(price, crim1)
fitted_model = reg.fit()
fitted_model.summary()
-νκ·μ κ³μ°
print(fitted_model.params)
#νλ ¬λ‘ μμΈ‘ν κ°
np.dot(crim1, fitted_model.params)
#ν¨μλ‘ μμΈ‘ν κ°
pred=fitted_model.predict(crim1)
pred
#ν¨μλ‘ μμΈ‘ν κ°κ³Ό νλ ¬λ‘ μμΈ‘ν κ°μ μ°¨μ΄
pred-np.dot(crim1, fitted_model.params)
-μκ°ν
import matplotlib.pyplot as plt
#λ°μ΄ν°μ νκ·μμ ν΅ν μμΈ‘κ° λΉκ΅
plt.scatter(crim, price, label = "data")
plt.plot(crim, pred, label = "result")
plt.legend()
plt.show()
#μμ°¨νμΈ
fitted_model.resid.plot()
plt.xlabel("residual_number")
plt.show()
'μΈκ³΅μ§λ₯ π > λ¨Έμ λ¬λ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
λ¨Έμ λ¬λ λ²μ£Όν μλ£ μ μ²λ¦¬ (0) | 2022.11.27 |
---|---|
λ¨Έμ λ¬λμ κ³Όμ κ³Ό λ°μ΄ν° μ μ²λ¦¬ (0) | 2022.11.26 |
λ¨Έμ λ¬λ κ°μ - λ¨Έμ λ¬λμ΄λ (1) | 2022.11.26 |
νκ· - λ€μ€κ³΅μ μ± (0) | 2021.08.19 |
[λ¨Έμ λ¬λ] νκ· - λ€μ€ μ ν νκ·λΆμ (0) | 2021.07.29 |