Scikit-learn: μ œμ•ˆ: 벌점 μ—†λŠ” λ‘œμ§€μŠ€ν‹± νšŒκ·€μ— λŒ€ν•œ 지원 μΆ”κ°€

에 λ§Œλ“  2016λ…„ 04μ›” 30일  Β·  34μ½”λ©˜νŠΈ  Β·  좜처: scikit-learn/scikit-learn

LinearRegression λŠ” 벌점 μ—†λŠ” OLSλ₯Ό μ œκ³΅ν•˜κ³  SGDClassifier λ₯Ό μ§€μ›ν•˜λŠ” loss="log" λŠ” penalty="none" 도 μ§€μ›ν•©λ‹ˆλ‹€. 당신이 ν‰λ²”ν•œ ꡬ식 unpenalized λ‘œμ§€μŠ€ν‹± νšŒκ·€λ₯Ό μ›ν•˜λŠ” 경우, 당신은 μ„€μ •ν•˜μ—¬ κ°€μ§œλ‘œμ΄ C μ—μ„œ LogisticRegression λ§Žμ€ 수의, λ˜λŠ” μ‚¬μš© Logit μ—μ„œ statsmodels λŒ€μ‹ μ—.

Documentation Easy

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

μ •κ·œν™” 없이 λ‘œμ§€μŠ€ν‹± νšŒκ·€λ₯Ό μˆ˜ν–‰ν•˜λ €λŠ” 이유λ₯Ό 묻고 μžˆμŠ΅λ‹ˆκΉŒ? (1) λ•Œλ•Œλ‘œ ν‘œλ³Έμ€ μ •κ·œν™”λ‘œ 아무것도 μ‚΄ 수 μ—†λŠ” κΈ°λŠ₯의 μˆ˜μ— λΉ„λ‘€ν•˜μ—¬ μΆ©λΆ„νžˆ 크고 (2) 예츑 정확도λ₯Ό μ΅œλŒ€ν™”ν•˜λŠ” κ²ƒκ³ΌλŠ” λŒ€μ‘°μ μœΌλ‘œ κ°€μž₯ μ ν•©ν•œ κ³„μˆ˜κ°€ 관심이 μžˆλŠ” κ²½μš°κ°€ 있기 λ•Œλ¬Έμž…λ‹ˆλ‹€.

λͺ¨λ“  34 λŒ“κΈ€

LogisticRegression의 Cλ₯Ό 큰 숫자둜 μ„€μ •ν•˜μ—¬ κ°€μ§œλ‘œ λ§Œλ“€μ–΄μ•Ό ν•©λ‹ˆλ‹€.

κ·Έ μ ‘κ·Ό λ°©μ‹μ˜ λ¬Έμ œμ μ€ λ¬΄μ—‡μž…λ‹ˆκΉŒ?

벌점 μ—†λŠ” λ‘œμ§€μŠ€ν‹± νšŒκ·€λ₯Ό 직접 κ΅¬ν˜„ν•˜λŠ” 것보닀 μ •ν™•ν•˜μ§€ μ•Šκ³  λŠλ¦¬λ‹€κ³  κ°€μ •ν–ˆμŠ΅λ‹ˆλ‹€. λ‚΄κ°€ 잘λͺ»?

λ‹€μŒκ³Ό 같이 C λ„ˆλ¬΄ λ†’κ²Œ μ„€μ •ν•˜λ©΄ LogisticRegression.fit κ°€ μ€‘λ‹¨λ©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 이것이 버그인지 64λΉ„νŠΈ μ»΄ν“¨ν„°μ—μ„œ μ•Œκ³ λ¦¬μ¦˜κ³Ό κ΅¬ν˜„μ˜ κ³ μœ ν•œ 속성인지 λͺ¨λ₯΄κ² μŠ΅λ‹ˆλ‹€.

import numpy as np
from sklearn.linear_model import LogisticRegression

x = np.matrix([0, 0, 0, 0,  1, 1, 1, 1]).T
y =           [1, 0, 0, 0,  1, 1, 1, 0]

m = LogisticRegression(C = 1e200)
m.fit(x, y)
print m.intercept_, m.coef_

λ‹€μŒκ³Ό 같이 Cλ₯Ό λ„ˆλ¬΄ λ†’κ²Œ μ„€μ •ν•˜λ©΄ LogisticRegression.fit이 μ€‘λ‹¨λ©λ‹ˆλ‹€.

예, 이것은 Cκ°€ 클 λ•Œ λ¬Έμ œκ°€ 잘λͺ» 제기되기 λ•Œλ¬Έμ— μ˜ˆμƒλ˜λŠ” κ²ƒμž…λ‹ˆλ‹€. 반볡적인 μ†”λ²„λŠ” 잘λͺ»λœ 문제둜 인해 λŠλ¦½λ‹ˆλ‹€.

κ·€ν•˜μ˜ μ˜ˆμ—μ„œ μ•Œκ³ λ¦¬μ¦˜μ€ μ›ν•˜λŠ” ν—ˆμš© μ˜€μ°¨μ— λ„λ‹¬ν•˜λŠ” 데 μ˜μ›νžˆ κ±Έλ¦½λ‹ˆλ‹€. tol λ₯Ό λŠ˜λ¦¬κ±°λ‚˜ max_iter ν•˜λ“œμ½”λ“œν•΄μ•Ό ν•©λ‹ˆλ‹€.

@mblondel "반볡 솔버"에 λŒ€ν•œ λŒ€μ•ˆμ΄ μžˆμŠ΅λ‹ˆκΉŒ?
μ •κ·œν™”λ˜μ§€ μ•Šμ€ μ˜΅μ…˜μ„ μ •ν™•νžˆ 얻지 λͺ»ν•  κ²ƒμž…λ‹ˆλ‹€. κ·Έλ ‡μ£ ?

@Kodiologist μ™œ 이것을 μ›ν•˜μ‹­λ‹ˆκΉŒ?

μ •κ·œν™” 없이 λ‘œμ§€μŠ€ν‹± νšŒκ·€λ₯Ό μˆ˜ν–‰ν•˜λ €λŠ” 이유λ₯Ό 묻고 μžˆμŠ΅λ‹ˆκΉŒ? (1) λ•Œλ•Œλ‘œ ν‘œλ³Έμ€ μ •κ·œν™”λ‘œ 아무것도 μ‚΄ 수 μ—†λŠ” κΈ°λŠ₯의 μˆ˜μ— λΉ„λ‘€ν•˜μ—¬ μΆ©λΆ„νžˆ 크고 (2) 예츑 정확도λ₯Ό μ΅œλŒ€ν™”ν•˜λŠ” κ²ƒκ³ΌλŠ” λŒ€μ‘°μ μœΌλ‘œ κ°€μž₯ μ ν•©ν•œ κ³„μˆ˜κ°€ 관심이 μžˆλŠ” κ²½μš°κ°€ 있기 λ•Œλ¬Έμž…λ‹ˆλ‹€.

λ„€, 그게 제 μ§ˆλ¬Έμ΄μ—ˆμŠ΅λ‹ˆλ‹€.

(1) 사싀이 μ•„λ‹ˆλ‹€. 그것은 항상 λ‹Ήμ‹ μ—κ²Œ 더 λΉ λ₯Έ 해결사λ₯Ό μ‚΄ κ²ƒμž…λ‹ˆλ‹€.

(2) μ‹€μ œλ‘œ scikit-learn의 초점이 μ•„λ‹Œ 톡계 λΆ„μ„μ˜ μ˜μ—­μ— 더 κ°€κΉμŠ΅λ‹ˆλ‹€. 이것을 μΆ”κ°€ν•  수 μžˆμ„ 것 κ°™μ§€λ§Œ μ–΄λ–€ 솔버λ₯Ό μ‚¬μš©ν• μ§€ λͺ¨λ₯΄κ² μŠ΅λ‹ˆλ‹€. λΉ„ν†΅κ³„ν•™μžλ‘œμ„œ, μ•½κ°„μ˜ μ •κ·œν™”λ‘œ λ³€ν™”ν•˜λŠ” κ³„μˆ˜κ°€ μ–Όλ§ˆλ‚˜ 쒋은지 κΆκΈˆν•©λ‹ˆλ‹€.

계산이 제 μž₯점이 μ•„λ‹ˆκΈ° λ•Œλ¬Έμ— (1)에 λŒ€ν•΄ 많이 말할 수 μ—†μŠ΅λ‹ˆλ‹€. (2)의 경우 톡계에 λŒ€ν•œ λ°°κ²½ 지식을 κ°–μΆ˜ 데이터 λΆ„μ„κ°€μž…λ‹ˆλ‹€. scikit-learn이 전톡적인 λ¨Έμ‹  λŸ¬λ‹μ— μ΄ˆμ μ„ λ§žμΆ˜λ‹€λŠ” 것을 μ•Œκ³  μžˆμ§€λ§Œ, 제 μƒκ°μ—λŠ” ν˜„μž¬λ‘œμ„œλŠ” 데이터 뢄석을 μœ„ν•œ 졜고의 Python νŒ¨ν‚€μ§€μ΄λ©° 자체적으둜 _λ„ˆλ¬΄_ μ œν•œν•˜μ§€ μ•ŠλŠ” 것이 도움이 될 것이라고 μƒκ°ν•©λ‹ˆλ‹€. (λ‚˜λŠ” λ˜ν•œ Larry Wassermanκ³Ό Andrew Gelman을 따라 톡계와 기계 ν•™μŠ΅μ΄ 더 많이 μ„žμ΄λ©΄ μƒν˜Έ 이읡이 될 것이라고 μƒκ°ν•˜μ§€λ§Œ, 그것은 자체적인 벌레 캔이라고 μƒκ°ν•©λ‹ˆλ‹€.) λͺ¨λ“  κ³„μˆ˜λŠ” μ •κ·œν™”μ™€ ν•¨κ»˜ λ³€κ²½λ©λ‹ˆλ‹€. 그것이 λ°”λ‘œ μ •κ·œν™”κ°€ ν•˜λŠ” μΌμž…λ‹ˆλ‹€.

μ €λŠ” μ •κ·œν™” 없이 솔버λ₯Ό μΆ”κ°€ν•˜λŠ” 것에 λ°˜λŒ€ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 무엇이 쒋은지 확인할 수 μžˆμŠ΅λ‹ˆκΉŒ? μ•„λ‹ˆλ©΄ κ·Έλƒ₯ λ³΄μ„κΈˆμ„ λ‚΄κ³  l-bfgsλ₯Ό μ‚¬μš©ν•˜κ³  μƒνƒœκ°€ 쒋지 μ•Šμ€μ§€ 미리 확인할 수 μžˆμŠ΅λ‹ˆκΉŒ?

예, λͺ¨λ“  κ³„μˆ˜λŠ” μ •κ·œν™”μ— 따라 λ³€κ²½λ©λ‹ˆλ‹€. λ‚˜μ€‘μ— κ·Έλ“€κ³Ό ν•¨κ»˜ 무엇을 ν•˜κ³  싢은지 μ†”μ§νžˆ κΆκΈˆν•©λ‹ˆλ‹€.

이봐,
이 μ£Όμ œμ— λŒ€ν•œ μƒνƒœλŠ” λ¬΄μ—‡μž…λ‹ˆκΉŒ? λ‚˜λŠ” 벌점 μ—†λŠ” λ‘œμ§€μŠ€ν‹± νšŒκ·€μ— μ •λ§λ‘œ 관심이 μžˆμŠ΅λ‹ˆλ‹€. 이런 μ‹μœΌλ‘œ p-값은 ν†΅κ³„μ μœΌλ‘œ μ˜λ―Έν•˜λŠ” λ°”κ°€ λ©λ‹ˆλ‹€. 그렇지 μ•ŠμœΌλ©΄ κ·ΈλŸ¬ν•œ μ‚¬μš© 사둀에 λŒ€ν•΄ R 😒λ₯Ό 계속 μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€...
감사 ν•΄μš”,
μ•Œλ ‰μŠ€

μ•„λ‹ˆλ©΄ κ΅­κ°€ λͺ¨λΈ?

κ΅¬ν˜„ν•˜κΈ° μœ„ν•΄ μ–΄λ–€ 솔버λ₯Ό μ œμ•ˆν•©λ‹ˆκΉŒ? 그것은 μš°λ¦¬κ°€ 이미 C -> infty둜 가지고 μžˆλŠ” 솔버와 μ–΄λ–»κ²Œ λ‹€λ¦…λ‹ˆκΉŒ?

κ΅¬ν˜„ν•˜κΈ° μœ„ν•΄ μ–΄λ–€ 솔버λ₯Ό μ œμ•ˆν•©λ‹ˆκΉŒ? 그것은 μš°λ¦¬κ°€ 이미 C -> infty둜 가지고 μžˆλŠ” 솔버와 μ–΄λ–»κ²Œ λ‹€λ¦…λ‹ˆκΉŒ?

아이디어λ₯Ό μ–»μœΌλ €λ©΄ R λ˜λŠ” statsmodelsλ₯Ό μ‚΄νŽ΄λ³΄μ‹­μ‹œμ˜€. λ‚˜λŠ” κ·Έλ“€μ˜ 방법에 μ΅μˆ™ν•˜μ§€ μ•Šμ§€λ§Œ ν•©λ¦¬μ μœΌλ‘œ λΉ λ₯΄λ©° μ •κ·œν™”λ₯Ό μ „ν˜€ μ‚¬μš©ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

예, ν–‰λ ¬ λ°˜μ „μ— QR μ•Œκ³ λ¦¬μ¦˜μ„ μ‚¬μš©ν•˜λŠ” 경우 statsmodels도 μž‘μ—…μ„ μˆ˜ν–‰ν•©λ‹ˆλ‹€. λ‚΄ μ‚¬μš© μ‚¬λ‘€λŠ” λͺ¨λΈ 해석 κ°€λŠ₯성에 κ΄€ν•œ κ²ƒμž…λ‹ˆλ‹€. μ„±λŠ₯을 μœ„ν•΄ λ‚˜λŠ” ν™•μ‹€νžˆ μ •κ·œν™”λ₯Ό μ‚¬μš©ν•  κ²ƒμž…λ‹ˆλ‹€.

μƒˆλ‘œμš΄ 솔버λ₯Ό μΆ”κ°€ν•  ν•„μš”κ°€ μ—†λ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€... λ‘œμ§€μŠ€ν‹± νšŒκ·€λŠ” λ‹«νžŒ ν˜•μ‹ μ†”λ£¨μ…˜μ„ 즐기지 μ•ŠμŠ΅λ‹ˆλ‹€. 즉, statsmodel도 μΌμ’…μ˜ 반볡 솔버λ₯Ό μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€(λ‚΄ 좔츑은 반볡적으둜 μž¬κ°€μ€‘λœ μ΅œμ†Œ μ œκ³±μ΄μ§€λ§Œ, ν™•μΈν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€). C=np.inf (λ˜λŠ” λ™λ“±ν•˜κ²Œ alpha=0 ) 섀정은 μ›μΉ™μ μœΌλ‘œ ν˜„μž¬ μ†”λ²„μ—μ„œ μž‘λ™ν•΄μ•Ό ν•©λ‹ˆλ‹€. 이 μ„€μ •μ—μ„œλŠ” liblinearκ°€ μ‹€μ œλ‘œ 맀우 느릴 수 μžˆμœΌλ―€λ‘œ L-BFGS λ˜λŠ” Newton-CG μ†”λ²„λ‘œ μ „ν™˜ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€. solver="auto" μ˜΅μ…˜μ„ μΆ”κ°€ν•˜κ³  C=np.inf λ˜λŠ” 이에 μƒμ‘ν•˜λŠ” penalty="none" 경우 μžλ™μœΌλ‘œ 이듀 쀑 ν•˜λ‚˜λ‘œ μ „ν™˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

#10001 fwiwμ—μ„œ κΈ°λ³Έ 솔버λ₯Ό lbfgs둜 λ³€κ²½ν•©λ‹ˆλ‹€.

μ €μ²˜λŸΌ λΉ„μ •κ·œ λ‘œμ§€μŠ€ν‹± νšŒκ·€λ₯Ό μ›ν•˜λŠ” μ‚¬λžŒλ“€μ„ μœ„ν•΄. λ‚˜λŠ” statsmodelsλ₯Ό μ‚¬μš©ν•˜κ³  SKLearn APIλ₯Ό λͺ¨λ°©ν•˜λŠ” 래퍼 클래슀λ₯Ό λ§Œλ“œλŠ” κ²ƒμœΌλ‘œ μ •μ°©ν•΄μ•Ό ν–ˆμŠ΅λ‹ˆλ‹€.

이에 λŒ€ν•œ μ—…λ°μ΄νŠΈκ°€ μžˆμŠ΅λ‹ˆκΉŒ? 이것은 μ‚¬λžŒλ“€μ—κ²Œ scikit-learn을 기꺼이 μΆ”μ²œν•˜λŠ” 데 큰 λ°©ν•΄ μš”μ†Œμž…λ‹ˆλ‹€. λ˜ν•œ scikit-learn이 기본적으둜 μ •κ·œν™”λ₯Ό μˆ˜ν–‰ν•˜κ³  λΉ„ν™œμ„±ν™”ν•  방법이 μ—†λ‹€λŠ” 사싀이 λ‹€λ₯Έ λΌμ΄λΈŒλŸ¬λ¦¬μ—μ„œ 온 μ‚¬λžŒλ“€μ—κ²Œ μ „ν˜€ λΆ„λͺ… ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

@shermstats λŠ” 이에 λŒ€ν•œ λ¬Έμ„œλ₯Ό κ°œμ„ ν•˜λŠ” 방법을 μ œμ•ˆν•©λ‹ˆκΉŒ? 맀우 λͺ…ν™•ν•˜μ§€ μ•Šμ„ 수 μžˆλ‹€λŠ” 데 λ™μ˜ν•©λ‹ˆλ‹€.
l-bfgsλŠ” C=np.inf ν•©λ‹ˆκΉŒ?

C=np.inf 지정할 수 μžˆμ§€λ§Œ C=large value 와 λ™μΌν•œ κ²°κ³Όλ₯Ό 얻을 수 μžˆμŠ΅λ‹ˆλ‹€. λ‚΄κ°€ μ‹œλ„ν•œ μ˜ˆμ—μ„œλŠ” statsmodel보닀 더 잘 λ§žμ•˜κ³  statsmodel은 λŒ€λΆ€λΆ„μ˜ λ‹€λ₯Έ μž„μ˜ μ‹œλ“œμ™€ μˆ˜λ ΄ν•˜μ§€ λͺ»ν–ˆμŠ΅λ‹ˆλ‹€.

from sklearn.datasets import make_classification
from sklearn.linear_model import LogisticRegression
import statsmodels.api as sm

X, y = make_classification(random_state=2)
lr = LogisticRegression(C=np.inf, solver='lbfgs').fit(X, y)


logit = sm.Logit(y, X)
res = logit.fit()
Optimization terminated successfully.
         Current function value: 0.167162
         Iterations 10
from sklearn.metrics import log_loss
log_loss(y, lr.predict_proba(X))
log_loss(y, res.predict(X))
0.16197793224715606
0.16716164149746823

λ”°λΌμ„œ Cλ₯Ό 크게 μ„€μ •ν•˜κ±°λ‚˜ np.inf둜 μ„€μ •ν•˜μ—¬ 벌점 μ—†λŠ” λͺ¨λΈμ„ 얻을 수 μžˆμŒμ„ λ¬Έμ„œν™”ν•΄μ•Ό ν•œλ‹€κ³  μ£Όμž₯ν•©λ‹ˆλ‹€.

docstring 및 μ‚¬μš©μž κ°€μ΄λ“œμ— μΆ”κ°€ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.
"LogisticRegression λͺ¨λΈμ€ 기본적으둜 νŒ¨λ„ν‹°κ°€ μ μš©λ©λ‹ˆλ‹€. C=np.inf 및 solver='lbfgs'λ₯Ό μ„€μ •ν•˜μ—¬ νŒ¨λ„ν‹° μ—†λŠ” λͺ¨λΈμ„ 얻을 수 μžˆμŠ΅λ‹ˆλ‹€."

statsmodel보닀 더 잘 λ§žμ•˜κ³  statsmodel은 λŒ€λΆ€λΆ„μ˜ λ‹€λ₯Έ μž„μ˜ μ‹œλ“œμ™€ μˆ˜λ ΄ν•˜μ§€ λͺ»ν–ˆμŠ΅λ‹ˆλ‹€.

R의 glm λŠ” 더 μ„±μˆ™ν•˜κ³  더 λ‚˜μ€ 비ꡐλ₯Ό μœ„ν•΄ λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€.

docstring 및 μ‚¬μš©μž κ°€μ΄λ“œμ— μΆ”κ°€ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.
"LogisticRegression λͺ¨λΈμ€ 기본적으둜 νŒ¨λ„ν‹°κ°€ μ μš©λ©λ‹ˆλ‹€. C=np.inf 및 solver='lbfgs'λ₯Ό μ„€μ •ν•˜μ—¬ νŒ¨λ„ν‹° μ—†λŠ” λͺ¨λΈμ„ 얻을 수 μžˆμŠ΅λ‹ˆλ‹€."

penalty = "none" a la SGDClassifier ν—ˆμš©μ„ μΆ”κ°€ν•˜μ§€ μ•ŠμœΌμ‹œκ² μŠ΅λ‹ˆκΉŒ?

@Kodiologist μ €λŠ” penalty="none" λ₯Ό μΆ”κ°€ν•˜λŠ” 것에 λ°˜λŒ€ν•˜μ§€ μ•Šμ§€λ§Œ 쀑볡 μ˜΅μ…˜μ„ μΆ”κ°€ν•˜λ©΄ μ–΄λ–€ 이점이 μžˆλŠ”μ§€ 잘 λͺ¨λ₯΄κ² μŠ΅λ‹ˆλ‹€.
그리고 λ‚˜λŠ” μš°λ¦¬κ°€ glm과의 비ꡐλ₯Ό ν™˜μ˜ν•œλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. λ‚˜λŠ” glm에 λŒ€ν•΄ 잘 μ•Œμ§€ λͺ»ν•˜λ―€λ‘œ μ•„λ§ˆλ„ 비ꡐλ₯Ό μˆ˜ν–‰ν•˜κΈ°μ— 쒋은 μ‚¬λžŒμ΄ 아닐 κ²ƒμž…λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ μš°λ¦¬λŠ” 둜그 손싀을 μ΅œμ ν™”ν•˜κ³  μžˆμœΌλ―€λ‘œ μ‹€μ œλ‘œ 차이가 μ—†μ–΄μ•Ό ν•©λ‹ˆλ‹€. μ–΄μ©Œλ©΄ 그듀은 λ‹€λ₯Έ 솔버λ₯Ό κ΅¬ν˜„ν•˜λ―€λ‘œ λ²€μΉ˜λ§ˆν¬κ°€ 있으면 쒋을 κ²ƒμž…λ‹ˆλ‹€.

penalty="none" 좔가에 λ°˜λŒ€ν•˜μ§€ μ•Šμ§€λ§Œ 쀑볡 μ˜΅μ…˜μ„ μΆ”κ°€ν•  λ•Œμ˜ 이점이 무엇인지 잘 λͺ¨λ₯΄κ² μŠ΅λ‹ˆλ‹€.

  1. 벌점 μ—†λŠ” λͺ¨λΈμ„ μ–»λŠ” 방법이 더 λͺ…ν™•ν•΄μ§‘λ‹ˆλ‹€.
  2. 벌점 μ—†λŠ” λͺ¨λΈμ„ μ‚¬μš©ν•˜λŠ” μ½”λ“œκ°€ 무엇을 ν•˜λ €κ³  ν•˜λŠ”μ§€ λ…μžμ—κ²Œ 더 λͺ…ν™•ν•΄μ§‘λ‹ˆλ‹€.
  3. 이λ₯Ό 톡해 sklearn은 ν–₯ν›„ μ‚¬λžŒλ“€μ˜ μ½”λ“œλ₯Ό μ†μƒμ‹œν‚€μ§€ μ•Šκ³  λΉ„μ •κ·œν™”λœ λͺ¨λΈμ˜ κ΅¬ν˜„μ„ λ³€κ²½ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

그것이 발견 κ°€λŠ₯성에 μΆ”κ°€λœλ‹€κ³  μƒκ°λ˜λ©΄ μΆ”κ°€ν•  수 있으며 3은 μœ νš¨ν•œ ν¬μΈνŠΈμž…λ‹ˆλ‹€(비둝 μ‚¬μš©ν•˜μ§€ μ•Šκ³  μ‹€μ œλ‘œ λ³€κ²½ν•  μˆ˜λŠ” μ—†μ§€λ§Œ μ†”λ²„μ˜ ν˜„μž¬ λ³€κ²½ 사항을 μ°Έμ‘°ν•˜μ‹­μ‹œμ˜€).
PR을 λ³΄λ‚΄μ‹œκ² μŠ΅λ‹ˆκΉŒ?

λ‚˜λŠ” 그것을 μœ„ν•œ λ‘₯κ·Ό tuitsκ°€ μ—†μŠ΅λ‹ˆλ‹€; 죄솑 ν•΄μš”.

@Kodiologist 적어도 당신은 λ‚˜μ—κ²Œ λ‚΄κ°€ λͺ°λžλ˜ κ΄€μš©κ΅¬λ₯Ό κ°€λ₯΄μ³μ£Όμ—ˆμŠ΅λ‹ˆλ‹€ ;)

λ”°λΌμ„œ κΈ°κ³ μžμ—κ²Œ μ—΄λ € μžˆμŠ΅λ‹ˆλ‹€. penalty='none' λ₯Ό μ˜΅μ…˜μœΌλ‘œ μΆ”κ°€ν•˜μ‹­μ‹œμ˜€. λ˜ν•œ κ°€λŠ₯ν•œ 솔버가 이것을 μ§€μ›ν•˜λŠ”μ§€ ν™•μΈν•˜κ³ (liblinearλŠ” 그렇지 μ•Šμ„ 수 있음) ν•΄λ‹Ή μ†”λ²„λ‘œ μ œν•œν•©λ‹ˆλ‹€.

docstring 및 μ‚¬μš©μž κ°€μ΄λ“œμ— μΆ”κ°€ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.
"LogisticRegression λͺ¨λΈμ€ 기본적으둜 νŒ¨λ„ν‹°κ°€ μ μš©λ©λ‹ˆλ‹€. C=np.inf 및 solver='lbfgs'λ₯Ό μ„€μ •ν•˜μ—¬ νŒ¨λ„ν‹° μ—†λŠ” λͺ¨λΈμ„ 얻을 수 μžˆμŠ΅λ‹ˆλ‹€."

이것은 λ‚˜μ—κ²Œ ν•©λ¦¬μ μœΌλ‘œ λ“€λ¦°λ‹€. λ˜ν•œ λ‹€λ₯Έ 기계 ν•™μŠ΅ λ˜λŠ” 데이터 뢄석 ν™˜κ²½μ—μ„œ 온 μ‚¬λžŒλ“€μ—κ²Œ ν•©λ²•μ μœΌλ‘œ λ†€λΌμš΄ 것이기 λ•Œλ¬Έμ— 첫 번째 λ¬Έμž₯을 ꡡ게 ν‘œμ‹œν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.

@shermstats κ·Έλž˜μ„œ @Kodiologist은 μΆ”κ°€ μ œμ•ˆ penalty="none" 단지에 λŒ€ν•œ 별칭이 될 것이닀, μ’€ 더 λͺ…μ‹œ 적으둜 λ§Œλ“€ C=np.inf . 이런 μ‹μœΌλ‘œ 이것을 더 λͺ…ν™•νžˆ ν•˜λŠ” 것이 λ‚˜μ—κ²ŒλŠ” μ˜λ―Έκ°€ μžˆμŠ΅λ‹ˆλ‹€. 그것에 λŒ€ν•œ 생각이 μžˆμŠ΅λ‹ˆκΉŒ?
그러면 λ¬Έμ„œμ— μžˆλŠ” λ‚΄μš©μΌ κ²ƒμž…λ‹ˆλ‹€. 그리고 λ‚˜λŠ” λŒ€λ‹΄ν•œ 것이 쒋은 생각일 수 μžˆλ‹€λŠ” 데 λ™μ˜ν•©λ‹ˆλ‹€.
ML λ°°κ²½ 지식이 μžˆλŠ” μ‚¬λžŒμ—κ²ŒλŠ” 이것이 (μ•„λ§ˆλ„?) μ˜ˆμƒλ˜λŠ” 일이라고 μƒκ°ν•©λ‹ˆλ‹€. 톡계 λ°°κ²½ 지식이 μžˆλŠ” μ‚¬λžŒμ—κ²ŒλŠ” 이것이 맀우 λ†€λΌμš΄ μΌμž…λ‹ˆλ‹€.

μ •ν™•νžˆ! μ €λŠ” 톡계에 λŒ€ν•œ λ°°κ²½ 지식이 있고 R λ˜λŠ” 심지어 포인트 μ•€ 클릭 μΈν„°νŽ˜μ΄μŠ€μ—μ„œ 온 λ§Žμ€ 톡계 μ „λ¬Έκ°€λ“€κ³Ό ν•¨κ»˜ μΌν–ˆλŠ”λ° 이 행동은 μš°λ¦¬μ—κ²Œ 맀우 λ†€λΌμš΄ μΌμž…λ‹ˆλ‹€. μ§€κΈˆμ€ penalty=None ( "none" λŒ€ None 에 λŒ€ν•΄ ν™•μ‹€ν•˜μ§€ μ•ŠμŒ)이 쒋은 μ†”λ£¨μ…˜μ΄λΌκ³  μƒκ°ν•©λ‹ˆλ‹€. λ―Έλž˜μ—λŠ” @mblondel이 μ„€λͺ…ν•œ 문제λ₯Ό λ°©μ§€ν•˜κΈ° μœ„ν•΄ 벌점 μ—†λŠ” λ‘œμ§€μŠ€ν‹± νšŒκ·€μ— λŒ€ν•΄ μžλ™μœΌλ‘œ ν˜ΈμΆœλ˜λŠ” λ³„λ„μ˜ 솔버가 μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€.

μ£„μ†‘ν•©λ‹ˆλ‹€. μ–΄λ–€ 문제λ₯Ό λ§μ”€ν•˜μ‹œλŠ” κ±΄κ°€μš”? μš°λ¦¬λŠ” 기본적으둜 l-bfgs둜 μ „ν™˜ν•˜κ³  있으며 λˆ„κ΅°κ°€ penalty='none' μ§€μ •ν•˜λ©΄ 솔버λ₯Ό l-bfgs둜 μžλ™μœΌλ‘œ μ „ν™˜ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€(μ’…μ’… None은 더 이상 μ‚¬μš©λ˜μ§€ μ•ŠλŠ” λ§€κ°œλ³€μˆ˜μ— μ‚¬μš©ν•˜λŠ” 특수 ν† ν°μ΄μ§€λ§Œ μ€‘μ§€ν–ˆμŠ΅λ‹ˆλ‹€. μ—¬μ „νžˆ 'none'은 λ‚˜λ¨Έμ§€ λΌμ΄λΈŒλŸ¬λ¦¬μ™€ 더 일관성이 μžˆμŠ΅λ‹ˆλ‹€).
μ–΄μ¨Œλ“  solver="auto" κ°€ ν•„μš”ν•˜λ―€λ‘œ νŒ¨λ„ν‹°λ₯Ό 기반으둜 솔버λ₯Ό λ³€κ²½ν•˜λŠ” 것은 λ¬Έμ œκ°€ λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

이 문제 λŠ” λŒ€κ·œλͺ¨ C에 λŒ€ν•΄ 반볡 μ•Œκ³ λ¦¬μ¦˜μ΄ 맀우 λŠλ €μ§€λŠ” 것을 λ‚˜νƒ€λƒ…λ‹ˆλ‹€. μ €λŠ” 수치 뢄석 μ „λ¬Έκ°€λŠ” μ•„λ‹ˆμ§€λ§Œ l-bfgsκ°€ 속도가 λŠλ €μ§€λŠ” 것을 λ°©μ§€ν•œλ‹€λ©΄ μ˜¬λ°”λ₯Έ μ†”λ£¨μ…˜μ²˜λŸΌ λ“€λ¦½λ‹ˆλ‹€. penalty='none' 도 이것을 μ²˜λ¦¬ν•˜λŠ” μ˜¬λ°”λ₯Έ λ°©λ²•μ²˜λŸΌ λ“€λ¦½λ‹ˆλ‹€.

@shermstats 예, l-bfgsλ₯Ό μ‚¬μš©ν•˜λ©΄ λ¬Έμ œκ°€ λ˜μ§€ μ•ŠλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ κ΄‘λ²”μœ„ν•œ 벀치마크λ₯Ό μ‹€ν–‰ν•˜μ§€ μ•Šμ•˜μœΌλ©° μ‹œκ°„μ΄ 없을 κ²ƒμž…λ‹ˆλ‹€. 벀치마크λ₯Ό μ‹€ν–‰ν•˜λ €λŠ” μ‚¬λžŒμ΄ μžˆλ‹€λ©΄ 큰 도움이 될 κ²ƒμž…λ‹ˆλ‹€.

Penalty='none'이 ν¬ν•¨λ˜μ–΄μ•Ό ν•œλ‹€λ©΄ OLS(특히 원-ν•« 인코딩 κΈ°λŠ₯의 경우)μ—μ„œμ™€ λ™μΌν•œ 동일 μ„ ν˜• X에 λŒ€ν•œ κ²½κ³ λ₯Ό μ‚¬μš©μž κ°€μ΄λ“œμ— μΆ”κ°€ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰