Evalml: AutoMLSearch get_pipeline은 항상 같은 μ΄λ¦„μ˜ νŒŒμ΄ν”„λΌμΈμ„ λ°˜ν™˜ν•©λ‹ˆλ‹€.

에 λ§Œλ“  2021λ…„ 03μ›” 02일  Β·  3μ½”λ©˜νŠΈ  Β·  좜처: alteryx/evalml

μž¬ν˜„:

from evalml.automl import AutoMLSearch
from evalml.demos import load_breast_cancer

X, y = load_breast_cancer()
automl = AutoMLSearch(X, y, problem_type="binary", max_batches=1)
automl.search()

pipelines = [automl.get_pipeline(i) for i in range(3)]
assert [p.name for p in pipelines] == ['LightGBM Classifier w/ Imputer', 'LightGBM Classifier w/ Imputer', 'LightGBM Classifier w/ Imputer']

νŒŒμ΄ν”„λΌμΈμ˜ 이름이 λͺ¨λ‘ 같을 μˆ˜λŠ” μ—†μŠ΅λ‹ˆλ‹€. μΆ”μ •μžλŠ” λ‹€λ¦…λ‹ˆλ‹€.

[p.estimator.name for p in pipelines]
['Baseline Classifier', 'Decision Tree Classifier', 'LightGBM Classifier']
bug needs design

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

λ‚˜λŠ” 이것이 #1400μ—μ„œ μœ λž˜ν•œλ‹€κ³  λ―ΏλŠ”λ‹€. λ‚˜λŠ” μš°λ¦¬κ°€ 피클에 μžˆλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€(말μž₯λ‚œ μ˜λ„). 우리의 νŒŒμ΄ν”„λΌμΈ λ””μžμΈμ€ νŒŒμ΄ν”„λΌμΈμ„ μ •μ˜ν•˜κΈ° μœ„ν•΄ 클래슀 속성을 μ„€μ •ν•˜λŠ” 것에 μ˜μ‘΄ν•©λ‹ˆλ‹€. μ΄λŠ” κ²€μƒ‰μ—μ„œμ™€ 같이 λ™μ μœΌλ‘œ μƒμ„±λœ νŒŒμ΄ν”„λΌμΈ 클래슀λ₯Ό κ°–λŠ” 데 도움이 λ©λ‹ˆλ‹€. λ¬Έμ œλŠ” μ΄λŸ¬ν•œ νŒŒμ΄ν”„λΌμΈμ„ AutoMLSearchμ—μ„œ "내보내기"ν•  수 μ—†λ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€.

λ‚΄κ°€ κ°„κ³Όν•˜κ³  μžˆλŠ” μ‰¬μš΄ μ†”λ£¨μ…˜μ΄ μžˆμ„ 수 μžˆμ§€λ§Œ 이 문제λ₯Ό μˆ˜μ •ν•˜κ³  automl νŒŒμ΄ν”„λΌμΈμ„ 피클 κ°€λŠ₯ν•˜κ²Œ μœ μ§€ν•˜λ €λ©΄ κΉŠμ€ 섀계 λ…Όμ˜κ°€ ν•„μš”ν•˜λ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.

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

μ΄λ¦„λΏλ§Œμ΄ μ•„λ‹™λ‹ˆλ‹€. ν•˜μ΄νΌνŒŒλΌλ―Έν„°(ν΄λž˜μŠ€μ— μ €μž₯된 λ‹€λ₯Έ 값이 μ˜μ‹¬λ¨)도 μ—…λ°μ΄νŠΈλ©λ‹ˆλ‹€. μ΄λŠ” GeneratedPipelineBinary 클래슀λ₯Ό μ‚¬μš©ν•˜κ³  ν•΄λ‹Ή 클래슀 λ³€μˆ˜λ₯Ό μ—…λ°μ΄νŠΈν•˜κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€. 각 νŒŒμ΄ν”„λΌμΈμ€ GeneratedPipelineBinary μ΄λ―€λ‘œ 전체 ν΄λž˜μŠ€μ— λŒ€ν•΄ μ—…λ°μ΄νŠΈν•˜κ³  λͺ¨λ“  μΈμŠ€ν„΄μŠ€μ— 영ν–₯을 λ―ΈμΉ©λ‹ˆλ‹€.

λ‚˜λŠ” 이것이 #1400μ—μ„œ μœ λž˜ν•œλ‹€κ³  λ―ΏλŠ”λ‹€. λ‚˜λŠ” μš°λ¦¬κ°€ 피클에 μžˆλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€(말μž₯λ‚œ μ˜λ„). 우리의 νŒŒμ΄ν”„λΌμΈ λ””μžμΈμ€ νŒŒμ΄ν”„λΌμΈμ„ μ •μ˜ν•˜κΈ° μœ„ν•΄ 클래슀 속성을 μ„€μ •ν•˜λŠ” 것에 μ˜μ‘΄ν•©λ‹ˆλ‹€. μ΄λŠ” κ²€μƒ‰μ—μ„œμ™€ 같이 λ™μ μœΌλ‘œ μƒμ„±λœ νŒŒμ΄ν”„λΌμΈ 클래슀λ₯Ό κ°–λŠ” 데 도움이 λ©λ‹ˆλ‹€. λ¬Έμ œλŠ” μ΄λŸ¬ν•œ νŒŒμ΄ν”„λΌμΈμ„ AutoMLSearchμ—μ„œ "내보내기"ν•  수 μ—†λ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€.

λ‚΄κ°€ κ°„κ³Όν•˜κ³  μžˆλŠ” μ‰¬μš΄ μ†”λ£¨μ…˜μ΄ μžˆμ„ 수 μžˆμ§€λ§Œ 이 문제λ₯Ό μˆ˜μ •ν•˜κ³  automl νŒŒμ΄ν”„λΌμΈμ„ 피클 κ°€λŠ₯ν•˜κ²Œ μœ μ§€ν•˜λ €λ©΄ κΉŠμ€ 섀계 λ…Όμ˜κ°€ ν•„μš”ν•˜λ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.

κ³„νš
단기: 이 λ¬Έμ œλŠ” 버그 λ™μž‘μ„ ν•΄κ²°ν•˜κΈ° μœ„ν•΄ #1400μ—μ„œ λ³€κ²½ 사항을 λ˜λŒλ¦¬λŠ” 것을 μΆ”μ ν•©λ‹ˆλ‹€. 우리의 νŒŒμ΄ν”„ 라인은 파이썬 μ§€μ›ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€ pickle ν•˜μ§€λ§Œ μ—¬μ „νžˆ μ‚¬μš©ν•˜μ—¬ 직렬화 κ°€λŠ₯ν•©λ‹ˆλ‹€ κΈ°μ‘΄ save / load κΈ°λŠ₯을 μ‚¬μš©ν•˜λŠ” cloudpickle .

μž₯기적: 되돌리기 ν›„ #1956은 python pickle μ‚¬μš©ν•˜μ—¬ evalml νŒŒμ΄ν”„λΌμΈ μ €μž₯을 지원해야 ν•˜λŠ” 방법을 μΆ”μ ν•©λ‹ˆλ‹€.

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