Evalml: 기쀀선이 0인 일뢀 λͺ©ν‘œμ˜ 경우 "기쀀선보닀 λ‚˜μ€ λΉ„μœ¨"은 nanμž…λ‹ˆλ‹€.

에 λ§Œλ“  2020λ…„ 11μ›” 20일  Β·  9μ½”λ©˜νŠΈ  Β·  좜처: alteryx/evalml

{'F1': nan,
 'MCC Binary': nan,
 'Log Loss Binary': 93.29789549298991,
 'AUC': 58.36492736629537,
 'Precision': nan,
 'Balanced Accuracy Binary': 63.46659876071641,
 'Accuracy Binary': 12.876088314169193}

evalml μ—μ„œ 이 문제λ₯Ό μž¬ν˜„ν•˜λŠ” Jupyter λ…ΈνŠΈλΆμ„ λ§Œλ“€κ³  Slack의 μŠ€λ ˆλ“œμ— κ΄€λ ¨ 데이터 파일과 ν•¨κ»˜ μ²¨λΆ€ν–ˆμŠ΅λ‹ˆλ‹€.

enhancement

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

μ’‹λ‹€. :-)

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

μž¬μƒκΈ°

import evalml
import pandas as pd
X = pd.read_csv('~/Downloads/fraud_500_data.csv').drop(['id', 'expiration_date'], axis=1)
y = X.pop('fraud')
automl = evalml.automl.AutoMLSearch(problem_type="binary", objective="f1")
automl.search(X, y)
# note that all percent_better_than_baseline values are nan in the rankings table
print(automl.rankings)
# can also check the scores of any pipeline other than the baseline pipeline, which should have id 0
print(automl.results['pipeline_results'][1]['percent_better_than_baseline_all_objectives'])

λ°μ΄ν„°μ„ΈνŠΈλŠ” μ—¬κΈ°

@dsherry @rpeck 베이슀라인 νŒŒμ΄ν”„λΌμΈμ΄ NaN( F1 , MCCBinary , Precision )을 μ‚¬μš©ν•˜μ—¬ λͺ©ν‘œμ—μ„œ 0점을 λ°›κΈ° λ•Œλ¬Έμ— μ΄λŠ” μ˜ˆμƒλœ λ™μž‘μž…λ‹ˆλ‹€. 이 λ°©λ²•μ—μ„œ 0으둜 λ‚˜λˆ„κΈ°λ₯Ό λ¬΄ν•œλŒ€ λ˜λŠ” μ—†μŒμœΌλ‘œ μ„€μ •ν•˜λŠ” 것에 λŒ€ν•œ λ…Όμ˜κ°€ μžˆμ—ˆμ§€λ§Œ 기쀀선이 λͺ¨λ“  λͺ©ν‘œμ—μ„œ κ°€λŠ₯ν•œ μ΅œμ•…μ˜ 점수λ₯Ό κΈ°λ‘ν•˜λ©΄ "νΌμ„ΌνŠΈ 더 μ’‹μŒ"을 λΉ„κ΅ν•˜κΈ° λ•Œλ¬Έμ— NaN보닀 더 λ‚«λ‹€κ³  κ²°μ •ν•œ 적이 μ—†μŠ΅λ‹ˆλ‹€. λͺ©μ μ€ 그닀지 쒋지 μ•ŠμœΌλ©° None, NaN λ˜λŠ” λ¬΄ν•œλŒ€λ‘œ 전달할 수 μžˆμŠ΅λ‹ˆλ‹€.

즉, NaN보닀 μ΄λŸ¬ν•œ μ˜΅μ…˜ 쀑 ν•˜λ‚˜λ₯Ό 선택해야 ν•˜λŠ” λ‹€λ₯Έ μ΄μœ κ°€ μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€!

@freddyaboulton μ•„, 말이 λ˜λ„€μš”! 기쀀이 0인 λͺ©ν‘œλ₯Ό κ±΄λ„ˆλ›°λ„λ‘ ν…ŒμŠ€νŠΈλ₯Ό λ³€κ²½ν•˜κ² μŠ΅λ‹ˆλ‹€. κ°μ‚¬ν•©λ‹ˆλ‹€!

@freddyaboulton κ°μ‚¬ν•©λ‹ˆλ‹€! @rpeck μ–΄μ œ 당신이 λ‚˜μ—κ²Œ 그것에 λŒ€ν•΄ λ¬Όμ—ˆμ„ λ•Œ λ‚΄κ°€ 이것을 μž‘μ§€ λͺ»ν•΄μ„œ μ£„μ†‘ν•©λ‹ˆλ‹€.

이 문제λ₯Ό ν† λ‘ ν•  수 μžˆλ„λ‘ μ—΄μ–΄ λ‘‘λ‹ˆλ‹€. 이 경우 λ™μž‘μ„ λ³€κ²½ν•΄μ•Ό ν•©λ‹ˆκΉŒ?

@freddyaboulton λ”°λΌμ„œ F1, MCCBinary 및 Precision은 λͺ¨λ‘ 크면 클수둝 μ’‹μœΌλ©° [-1, 1](corr) λ˜λŠ” [0, 1] λ²”μœ„λ‘œ μ œν•œλ©λ‹ˆλ‹€. pct κ°œμ„  impl을 λ³€κ²½ν•˜μ—¬ 0과의 μ ˆλŒ€ 차이λ₯Ό κ³„μ‚°ν•˜κ³  이λ₯Ό pct κ°œμ„ μœΌλ‘œ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆκΉŒ? 그리고 그것이 ν˜„μž¬ μš°λ¦¬κ°€ ν•˜κ³  μžˆλŠ” 일이라면 기쀀선이 0인 경우 ν•΄λ‹Ή μ§€ν‘œμ— λŒ€ν•΄ nan pct κ°œμ„ μ΄ λ°œμƒν•˜μ§€ μ•Šμ„ κ²ƒμž…λ‹ˆλ‹€.

@dsherry μš°λ¦¬λŠ” 섀계 λ‹¨κ³„μ—μ„œ [0, 1] κ²½κ³„μ˜ λͺ©ν‘œμ— λŒ€ν•œ μ ˆλŒ€μ°¨ 계산을 μ œμ•ˆν–ˆμ§€λ§Œ 두 가지 λ‹€λ₯Έ 계산이 ν˜Όλž€μŠ€λŸ¬μšΈ 것이라고 κ²°μ •ν–ˆμŠ΅λ‹ˆλ‹€. 즉, 베이슀라인 νŒŒμ΄ν”„λΌμΈμ΄ ν•΄λ‹Ή λͺ©ν‘œμ—μ„œ 거의 0점을 받도둝 μ„€κ³„λ˜μ—ˆλ‹€λŠ” 점을 κ°μ•ˆν•  λ•Œ μž¬κ³ ν•΄μ•Ό ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. μš°λ¦¬κ°€ 처음 κ·Έ 결정을 내렸을 λ•Œ μš°λ¦¬λŠ” 1μ°¨ λͺ©ν‘œ(νšŒκ·€λ₯Ό μ œμ™Έν•˜κ³  μ΄λŸ¬ν•œ μ œν•œλœ λͺ©ν‘œ 쀑 ν•˜λ‚˜κ°€ μ•„λ‹˜)에 λŒ€ν•΄ 더 λ‚˜μ€ λ°±λΆ„μœ¨μ„ κ³„μ‚°ν•˜κ³  μžˆμ—ˆλ‹€λŠ” 점에 μ£Όλͺ©ν•  κ°€μΉ˜κ°€ μžˆμŠ΅λ‹ˆλ‹€.

μ ˆλŒ€ 차이λ₯Ό κ³„μ‚°ν•˜λŠ” κ²½μš°μ—λ„ Nan/None/inf λ‚˜λˆ„κΈ° λ™μž‘μ„ λ³€κ²½ν•˜λŠ” 것을 κ³ λ €ν•  수 μžˆμŠ΅λ‹ˆλ‹€. ν•œ 가지 ν₯미둜운 μ‚¬λ‘€λŠ” R2 μž…λ‹ˆλ‹€. λŒ€λΆ€λΆ„μ˜ 경우 [0, 1]μ΄μ§€λ§Œ κΈ°μˆ μ μœΌλ‘œλŠ” (-inf, 1]이기 λ•Œλ¬Έμž…λ‹ˆλ‹€. λ”°λΌμ„œ μ ˆλŒ€ 차이λ₯Ό κ³„μ‚°ν•˜λŠ” 것은 μˆ˜ν•™μ μœΌλ‘œ κ±΄μ „ν•˜μ§€ μ•Šμ„ 수 μžˆμ§€λ§Œ νšŒκ·€μ˜ κΈ°λ³Έ λͺ©ν‘œμ΄κΈ° λ•Œλ¬Έμ— , μš°λ¦¬λŠ” λ§Žμ€ 기쀀선이 0점을 받을 κ²ƒμœΌλ‘œ μ˜ˆμƒν•΄μ•Ό ν•©λ‹ˆλ‹€.

μš”μ•½ν•˜μžλ©΄, μš°λ¦¬κ°€ λ§Œλ“€ 수 μžˆλŠ” 두 가지 독립적인 λ³€κ²½ 사항이 μžˆμ–΄ λ„€ 가지 κ°€λŠ₯ν•œ κ²°κ³Όλ₯Ό 얻을 수 μžˆμŠ΅λ‹ˆλ‹€.

  1. [0, 1]에 경계λ₯Ό λ‘” λͺ©ν‘œμ— λŒ€ν•œ μ ˆλŒ€ 차이λ₯Ό κ³„μ‚°ν•˜μ§€ λ§ˆμ‹­μ‹œμ˜€. 0으둜 λ‚˜λˆ„λ©΄ Nanμž…λ‹ˆλ‹€. ν˜„μž¬ 행동.
  2. [0, 1]에 경계λ₯Ό λ‘” λͺ©ν‘œμ— λŒ€ν•œ μ ˆλŒ€ 차이λ₯Ό κ³„μ‚°ν•˜μ§€ λ§ˆμ‹­μ‹œμ˜€. 0으둜 λ‚˜λˆ„λŠ” 것은 infμž…λ‹ˆλ‹€.
  3. [0, 1]에 경계λ₯Ό λ‘” λͺ©ν‘œμ— λŒ€ν•œ μ ˆλŒ€ 차이λ₯Ό κ³„μ‚°ν•©λ‹ˆλ‹€. 0으둜 λ‚˜λˆ„λŠ” 것은 Nanμž…λ‹ˆλ‹€.
  4. [0, 1]에 경계λ₯Ό λ‘” λͺ©ν‘œμ— λŒ€ν•œ μ ˆλŒ€ 차이λ₯Ό κ³„μ‚°ν•©λ‹ˆλ‹€. 0으둜 λ‚˜λˆ„λŠ” 것은 infμž…λ‹ˆλ‹€.

0으둜 λ‚˜λˆŒ λ•Œ NaN을 λ°˜ν™˜ν•˜λŠ” 것을 μ„ ν˜Έν•˜μ§€λ§Œ NaN을 λ³Ό λ•Œ μ‚¬μš©μžμ˜ 직감 λ°˜μ‘μ€ automlμ—μ„œ 무언가가 κ³ μž₯λ‚œ κ²ƒμœΌλ‘œ κ°€μ •ν•˜λŠ” κ²ƒμ΄μ—ˆμŠ΅λ‹ˆλ‹€. infλ₯Ό λ°˜ν™˜ν•˜λ©΄ 아무 것도 μ†μƒλ˜μ§€ μ•Šμ•˜μœΌλ©° νŒŒμ΄ν”„λΌμΈμ΄ μ‹€μ œλ‘œ 기쀀선보닀 λ‚«λ‹€λŠ” 것을 더 λͺ…ν™•ν•˜κ²Œ μ•Œ 수 μžˆλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.

그러면 μ˜΅μ…˜ 2와 4κ°€ λ‚¨μŠ΅λ‹ˆλ‹€.

"νΌμ„ΌνŠΈ ν–₯상"에 λŒ€ν•΄ 두 가지 λ‹€λ₯Έ 계산을 μ‚¬μš©ν•˜λ©΄ 각 νŒŒμ΄ν”„λΌμΈμ— λŒ€ν•΄ μ‹€μ œλ‘œ κ³„μ‚°λ˜λŠ” λ‚΄μš©μ„ μ‚¬μš©μžμ—κ²Œ μ „λ‹¬ν•˜κΈ°κ°€ 더 μ–΄λ €μ›Œμ§ˆ 것이라고 μƒκ°ν•©λ‹ˆλ‹€. 즉, 우리의 베이슀라인 νŒŒμ΄ν”„λΌμΈμ€ 특히 λΆˆκ· ν˜• 문제(λͺ¨λ“œλ₯Ό μ˜ˆμΈ‘ν•¨)μ—μ„œ λ§Žμ€ λͺ©ν‘œ(R2, F1, MCC)에 λŒ€ν•΄ 0점을 얻도둝 μ„€κ³„λ˜μ—ˆμŠ΅λ‹ˆλ‹€. λͺ¨λ“  νŒŒμ΄ν”„λΌμΈμ΄ 기쀀선보닀 "λ¬΄ν•œ" 더 λ‚˜μ„ 것이기 λ•Œλ¬Έμ— "νΌμ„ΌνŠΈ ν–₯상" κΈ°λŠ₯이 κ°€μž₯ ν˜„μ‹€μ μΈ λ¬Έμ œμ— 그닀지 μœ μš©ν•˜μ§€ μ•Šκ²Œ λ§Œλ“­λ‹ˆλ‹€.

λ‚˜λŠ” μ˜΅μ…˜ 4에 λŒ€ν•΄ 55%, μ˜΅μ…˜ 2에 λŒ€ν•΄ 45%λ₯Ό κΈ°λŒ€ν•˜κ³  μžˆλ‹€κ³  μƒκ°ν•˜μ§€λ§Œ λ³€κ²½ν•˜κΈ° 전에 λ‹€λ₯Έ 관점을 λ“£κ³  μ‹ΆμŠ΅λ‹ˆλ‹€!

였늘 μŠ€νƒ λ“œμ—…μ—μ„œ μš°λ¦¬λŠ” "기쀀보닀 λ‚˜μ€ pct" λ™μž‘μ„ μ—…λ°μ΄νŠΈν•  μ‹œκ°„μ„ κ²°μ •ν–ˆμŠ΅λ‹ˆλ‹€. μœ„μ˜ μ˜΅μ…˜ 2와 4λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.

  • 경계가 μ—†λŠ” λͺ©ν‘œ(MSE, 둜그 손싀 λ“±)에 μƒλŒ€μ  차이 μ‚¬μš©
  • 경계가 [0, 1]인 λŒ€λ¬Όλ Œμ¦ˆ(AUC, R2 λ“±)에 μ ˆλŒ€μ°¨ μ‚¬μš©
  • ν”Όμ–΄μŠ¨ 상관 관계([-1, 1])와 같은 극단적인 경우λ₯Ό μ²˜λ¦¬ν•΄μ•Ό ν•©λ‹ˆλ‹€.
  • 0으둜 λ‚˜λˆ„κΈ° 였λ₯˜κ°€ μžˆλŠ” 경우 nan inf λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.

@freddyaboulton 이것이 μš°λ¦¬κ°€ λ…Όμ˜ν•œ 것과 μΌμΉ˜ν•©λ‹ˆκΉŒ?

μ’‹λ‹€. :-)

μΆ”κ°€: λ‚˜λŠ” κ·Έ 결정에 λ™μ˜ν•©λ‹ˆλ‹€. IMO, λ©”νŠΈλ¦­μ΄ [보톡, 적어도] 0..1이면 0μ—μ„œ 0.2둜 μ΄λ™ν•˜λ©΄ μˆ˜ν•™μ μœΌλ‘œλŠ” 그렇지 μ•Šλ”λΌλ„ 20% κ°œμ„ μ²˜λŸΌ λŠκ»΄μ§‘λ‹ˆλ‹€. μ–΄λ–€ λ©΄μ—μ„œ 이것은 μˆ˜λŸ‰μ˜ log λ₯Ό μ·¨ν•˜μ§€λ§Œ 0의 log λ₯Ό μ·¨ν•˜μ§€ μ•Šλ„λ‘ λ¨Όμ € 1을 μΆ”κ°€ν•˜λŠ” λͺ¨λ“  곡식을 μƒκ°λ‚˜κ²Œ ν•©λ‹ˆλ‹€. :slightly_smiling_face:

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