λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

ν•˜λ£¨κ³΅λΆ€

제 23μž₯πŸ“•ML_λ‘œμ§€μŠ€ν‹± νšŒκ·€(Logistic Regression)πŸ“•

πŸ˜Šλ‘œμ§€μŠ€ν‹± νšŒκ·€λž€??

λ‘œμ§€μŠ€ν‹± νšŒκ·€(Logistic Regression)λŠ” 데이터가 μ–΄λ–€ 범주에 속할 ν™•λ₯ μ„ 0~1 μ‚¬μ΄μ˜ κ°’μœΌλ‘œ μ˜ˆμΈ‘ν•˜κ³  κ·Έ ν™•λ₯ μ— 따라 κ°€λŠ₯성이 더 높은 범주에 μ†ν•˜λŠ” κ²ƒμœΌλ‘œ λΆ„λ₯˜ν•΄μ£ΌλŠ” 지도 ν•™μŠ΅ μ•Œκ³ λ¦¬μ¦˜μ΄λ‹€.

 

μ„ ν˜• νšŒκ·€λ₯Ό μ΄ν•΄ν–ˆλ‹€λ©΄ κ°€μž₯ μ΄ν•΄ν•˜κΈ° μ‰¬μš΄ κ°œλ…μ΄λ‹€

μ„ ν˜•νšŒκ·€ - λ‘œμ§€μŠ€ν‹±νšŒκ·€ 순으둜 ν•™μŠ΅μ„ ν•˜λŠ”κ²Œ νš¨μœ¨μ μ΄λ‹€

2개의 κ·Έλ£Ή,범주쀑에 ν•˜λ‚˜μ— μ†ν•œλ‹€κ³  κ²°μ •μ§“λŠ”κ²ƒμ„ 2μ§„λΆ„λ₯˜ λΌκ³ ν•œλ‹€.

λŒ€ν‘œμ μΈ μ˜ˆμ‹œλ‘œ μ„±λ³„, 성곡 μ—¬λΆ€, 합격/λΆˆν•©κ²©, μ–‘μ„±/μŒμ„± 등이 μžˆλ‹€.

https://kmbeach.tistory.com/36

 

제 22μž₯πŸ“•ML_μ„ ν˜•νšŒκ·€(Linear Regression)πŸ“•

πŸ€” μ„ ν˜• νšŒκ·€λž€ 무엇인가? β–Ά λ…λ¦½λ³€μˆ˜μ™€ μ’…μ†λ³€μˆ˜ 간에 μ§μ„ μ‹μ˜ ν˜•νƒœκ°€ μžˆμŒμ„(μ„ ν˜•κ΄€κ³„λΌκ³  함) κ°€μ •ν•˜μ—¬ 졜적의 선을 κ·Έμ–΄ μ˜ˆμΈ‘μ„ ν•˜κΈ° μœ„ν•œ 방법 β–Ά λ¨Έμ‹ λŸ¬λ‹μ—μ„œλŠ” Loss(손싀) 을 μ΅œμ†Œν™”ν•˜

kmbeach.tistory.com

λ˜ν•œ μ„ ν˜•νšŒκ·€μ™€ λ‘œμ§€μŠ€ν‹± νšŒκ·€μ˜ 차이점을 λΈ”λ‘œκΉ… ν–ˆμ—ˆμ§€λ§Œ λ‹€μ‹œ κ°•μ‘°ν•œλ‹€. 맀우 μ€‘μš”ν•˜λ‹€.

 

μ„ ν˜•/λ‘œμ§€μŠ€ν‹± νšŒκ·€μ˜ 차이점

μ„ ν˜• νšŒκ·€ ν™•λ₯ κ°’이 -∞ ~ ∞둜 λ»—μ–΄λ‚˜κ°€λŠ” 일직선이닀, μ •κ·œλΆ„ν¬, 연속값을 μ˜ˆμΈ‘μ‹œ μ‚¬μš©
λ‘œμ§€μŠ€ν‹± νšŒκ·€ ν™•λ₯ κ°’이 0~1 μ‚¬μ΄μ˜ μ»€λΈŒν˜•νƒœλ₯Ό κ·Έλ¦°λ‹€, 이항뢄포, μ‹€μ§ˆμ μœΌλ‘œ λΆ„λ₯˜μ— 가깝닀, λΆˆμ—°μ†κ°’μ„ μ˜ˆμΈ‘ν•˜λŠ”λ° μ‚¬μš©

μ„ ν˜•νšŒκ·€λŠ” μ„ μœΌλ‘œ λ»—μ–΄λ‚˜κ°€κΈ° λ•Œλ¬Έμ— κ·ΈλŒ€λ‘œ λ¬΄ν•œμœΌλ‘œ 이어져 μ •ν™•ν•œ μ˜ˆμΈ‘μ€ μ–΄λ ΅λ‹€.

κ·Έλž˜μ„œ μ»€λΈŒν˜•νƒœμ˜ λ‘œμ§€μŠ€ν‹± νšŒκ·€λ₯Ό μ‚¬μš©ν•˜λŠ” 것이닀.


πŸ’―ν•΅μ‹¬

ν†΅κ³„μ˜ˆμΈ‘μ’…λ₯˜

1) 수치예츑 : 평가방법 : MSE, MAE, RMSE

2) λΆ„λ₯˜μ˜ˆμΈ‘ : 평가방법 : Accuracy(정확도), Precision(정밀도), Recall(μž¬ν˜„μœ¨, 민감도)

  • λ‘œμ§€μŠ€ν‹± νšŒκ·€λŠ” λΆ„λ₯˜μ˜ˆμΈ‘에 ν•΄λ‹Ήν•œλ‹€.

λ§Œμ•½μ— μ’…μ†λ³€μˆ˜κ°€ 두 κ°€μ§€ κ°’λ§Œ κ°–λŠ” 경우 μ„ ν˜•νšŒκ·€λͺ¨λΈμ„ μ μš©ν•˜λ©΄ λ¬Έμ œ λ°œμƒ

1) 잘 μ ν•©ν•˜μ§€ μ•ŠλŠ” μ„ ν˜•νšŒκ·€μ˜ 좔정식이 λ„μΆœλœλ‹€.

2) Y 좔정값이 0보닀 μž‘κ±°λ‚˜ 1보닀 큰 값을 κ°€μ§ˆ 수 μžˆλŠ” λ¬Έμ œκ°€ 생긴닀.

μ˜ˆμΈ‘ν™•λ₯ μ΄ μ„€λͺ…λ³€μˆ˜μ˜ κ°’μ˜ 증감에 따라 μ¦κ°ν•˜κ³ , 0κ³Ό 1μ‚¬μ΄μ˜ 값을 κ°–λŠ” ν™•λ₯ κ°’μœΌλ‘œ μ „ν™˜ν•΄μ•Ό ν•œλ‹€.

 

μ’…μ†λ³€μˆ˜μ˜ 값은 0 λ˜λŠ” 1 : 이뢄법적인 상황을 λͺ¨λΈλ§

μ’…μ†λ³€μˆ˜μ˜ 값은 μ‘°κ±΄λΆ€ν™•λ₯ λ₯Ό 톡해 κ³„μ‚°ν•˜μ—¬ 예츑


πŸ”ŽλΌμ΄λΈŒλŸ¬λ¦¬

from sklearn.linear_model import LogisticRegression
model = LogisticRegression()

ν›ˆλ ¨μ…‹,ν…ŒμŠ€νŠΈμ…‹ λΆ„리
from sklearn.model_selection import train_test_split

λ…λ¦½λ³€μˆ˜ μ§€μ •
X, y = (df_train2.drop(columns=['λ…λ¦½λ³€μˆ˜']), df_train2.λ…λ¦½λ³€μˆ˜)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state = 100)
model.fit(X_train, y_train)

λͺ¨λΈ ν‰κ°€ (λ‘œμ§€μŠ€ν‹± νšŒκ·€ -> λΆ„λ₯˜λ¬Έμ œ)
from sklearn.metrics import accuracy_score
accuracy_score(y_test, pred)

νšŒκ·€κ³„μˆ˜
model.coef_

νšŒκ·€κ³„μˆ˜ μ‹œλ¦¬μ¦ˆλ³„ μ‹œκ°ν™”
pd.options.display.float_format = '{:.4f}'.format
pd.Series(model.coef_[0], index = X.columns)

 


πŸ‘‍πŸ—¨ μ‹œκ°ν™”

μ„ ν˜•νšŒκ·€μ˜ ν•œκ³„λ‘œμΈν•˜μ—¬ λ‘œμ§€μŠ€ν‹±μ„ μ μš©ν•˜λŠ” λŒ€ν‘œμ  μ˜ˆμ‹œμΈ

κ³΅λΆ€μ‹œκ°„κ³Ό 합격λ₯ μ— κ΄€ν•œ νšŒκ·€λΆ„μ„

μ‹œκ°ν™”λŠ”plot = 1차적으둜 λ¨Όμ € 확인

sns.heatmap(df_train.corr(), cmap='coolwarm', vmin=-1, vmax=1, annot=True)

β†ͺ 히트맡으둜 보면 보기 νŽΈν•˜κ²Œ λ‹€λ₯Έ μƒκ΄€κ³„μˆ˜λ₯Ό λ³Όμˆ˜μžˆλ‹€

좜처 :https://hleecaster.com/