μ΄λ κ² νλ©΄ νΉμ μ€λ₯λ κ²½κ³ κ° μλ κΈ°λ₯μ νλ‘κ·Έλλ° λ°©μμΌλ‘ μ½κ² μλ³ν μ μμ΅λλ€.
μ½κ°μ νμ₯: λ€λ₯Έ νλ‘κ·Έλλ° λ°©μμ νμν λ° κ΅μ νλ₯Ό νμ±ννλ €λ©΄ EvalMLμ΄ μ§κΈ λ°ννλ λ©μμ§μ ν¨κ» νμνλμ§ μμ μ 보λ₯Ό λ°ννλ κ²μ΄ μ’μ΅λλ€. λ€μκ³Ό κ°μ κ²:
{
"message": "Warning: too many null values present in column 'foobar'",
"check": "NullCheck",
"code": "TOO_MANY_NULLS",
"detail": {
"level": "warning",
"columns": ["foobar"]
}
}
μ΄λ κ² νλ©΄ code
λ₯Ό κ΅μ ν λ¬Έμμ΄μ λ€μ μ°κ²°νμ¬ κ²°κ³Όμ λν΄ μΈμ΄ λ
립μ νμμ μνν μ μμ΅λλ€. κ·Έλ¦¬κ³ μΈλΆ μ 보μμ μ¬μ©ν μ μλ λ©νλ°μ΄ν°λ₯Ό μ¬μ©νλ©΄ ν΄λΉ μ 보λ₯Ό ꡬ쑰νλ λ°©μμΌλ‘ νμλλ λ©μμ§λ‘ μ νμ μΌλ‘ λ€μ νμνν μ μμ΅λλ€.
λν λ°νλλ μ€μ μ½λμμ κ²μ¬λ₯Ό λΆλ¦¬νλ©΄ λ¨μΌ κ²μ¬ μΈμ€ν΄μ€μμ μμ±λλ λ€μν κΆμ₯ μ¬ν/μ€λ₯/κ²½κ³ μΈνΈλ₯Ό κ°μ§ μ μλ κ²μ¬λ₯Ό μ€κ³ν μ μμ΅λλ€.
@BoopBoopBeepBoop κ°μ¬ν©λλ€. λλ κ·Έ μ μμ μ’μνλ€.
"μ½λ"κ° μ΄κ±°νμ΄κ±°λ λ°μ΄ν° κ²μ¬ λ΄λΆ μ΄λκ°μ μ μλ λ¬Έμμ΄μΌ κ²μΌλ‘ μμνμλκΉ?
λ΄κ° μ μν μ μλ ν κ°μ§ μ‘°μ μ ꡬ쑰λ₯Ό νννκ² μ μ§νλ κ²μ λλ€.
{
"message": "Warning: too many null values present in column 'foobar'",
"code": "TOO_MANY_NULLS",
"level": "warning",
"columns": ["foobar"]
}
μ¬κΈ°μ μ°λ¦¬λ JSONμ κ΄μ μμ μ΄μΌκΈ°νκ³ μμ§λ§ μ μκ°μλ μ΄λ¬ν κ° νλκ° DataCheckWarning
/ DataCheckError
κ°μ²΄μ μ°κ²°λμ΄μΌ νλ€κ³ μκ°ν©λλ€.
κ·Έκ²μ 곡νν©λλ€. detail
κ° "λ³Έμ§μ μΌλ‘ μ§λ"μΈ κ²μ²λΌ κ±°κΈ°μ ν΄λΉ μμλ₯Ό μΆκ°νμ΅λλ€. κ·Έλ¬λ κ·Έκ²λ€μ μλ§λ λͺ¨λ κ²μ¬μ μ‘΄μ¬νκΈ° λλ¬Έμ μ’μ μλ μλλλ€ ...
κΈ°λ³Έμ μΌλ‘ "λ©μμ§λ³" κΈ°μ€μΌλ‘ μ‘΄μ¬νλ μΆκ° λ©νλ°μ΄ν°λ₯Ό λ©μμ§μ ν¬ν¨ν΄μΌ νλ μν©μ΄ μμ΅λκΉ? λ΄κ° μ΄μ μ λ³Έ μλ νΉμ κ°μ μλ‘ νΈμΆνκ±°λ λ©μμ§μ λμ νν/μνμ νμννκ±°λ μ΄μ μ μ¬ν κ²μ
λλ€. μΌλ°μ μΌλ‘ detail
(λλ λ€λ₯Έ μ΄λ¦ μ ν) μ§λλ₯Ό μ¬μ©νλ©΄ μ΄μ μ΄ μμ΅λλ€.
"μ½λ"κ° μ΄κ±°νμ΄κ±°λ λ°μ΄ν° κ²μ¬ λ΄λΆ μ΄λκ°μ μ μλ λ¬Έμμ΄μΌ κ²μΌλ‘ μμνμλκΉ?
μμ λκΈ°λ§μ λ°λ λΏμ λλ€ - κ·Έκ²μ΄ μ¬λ κ³³μ π€·
"μ½λ"κ° μ΄κ±°νμ΄κ±°λ λ°μ΄ν° κ²μ¬ λ΄λΆ μ΄λκ°μ μ μλ λ¬Έμμ΄μΌ κ²μΌλ‘ μμνμλκΉ?
μμ λκΈ°λ§μ λ°λ λΏμ λλ€ - κ·Έκ²μ΄ μ¬λ κ³³μ π€·
λͺ¨λ κ²μ΄ λμΌνλ€λ©΄ μ΄κ±° νμ μ νΈνλ€κ³ μκ°ν©λλ€. μ°λ¦¬λ νμ¬ μμ μ μΌλΆλ‘ μ€νν κ²μ¬λ₯Ό κ²°μ νκΈ° μν΄ μ체 λ¬Έμμ΄μ μ μνκ³ μμΌλ©° EvalMLκ³Ό μΌμΉνλ μ΄κ±°νμ μ¬μ©νμ¬ μ체μ μΌλ‘ μμ±νλ λμ νμ©νλ κ²μ΄ μ’μ κ²μ λλ€.
μ΄μ ν¨κ» @BoopBoopBeepBoop μ΄ μΈλΆ μ¬νκ³Ό ν¨κ» μΈκΈν λ΄μ©μ λν΄ μ΄λ€ μ νμ μ€λ₯κ° λ°μνλμ§ μλ κ²μ΄ λμμ΄ λ μ μμ΅λλ€. μλ₯Ό λ€μ΄ ID μ΄ κ²μ¬μμ EvalMLμ μ΄ μ΄λ¦μ "id"κ° μλμ§ λλ κ°μ΄ N% κ³ μ νμ§ νμΈν©λλ€. μ μλ₯Ό κ±Έλ¬λ΄κ±°λ λ€λ₯΄κ² νννκΈ°λ₯Ό μν μ μμΌλ―λ‘ μ΄ μμ€μ μΈλΆμ±μ λ μΈλΆνλ μ΄κ±°νμ ν΅ν΄ λλ μμμ μ€λͺ ν μΈλΆ ꡬ쑰μ μ μ¬ν κ²μ ν΅ν΄ μ μ©ν μ μμ΅λλ€.
@dsherry @freddyaboulton κ³Ό λ°©κΈ λ
Όμνμ΅λλ€: κ²½κ³ λ° μ€λ₯ λͺ©λ‘ λμ μ¬μ μ λ°ννλλ‘ λ°μ΄ν° κ²μ¬ APIλ₯Ό μ
λ°μ΄νΈνκΈ° μν΄ https://github.com/alteryx/evalml/pull/1444 λ₯Ό μ¬λ Έμ΅λλ€. μ΄ λ¬Έμ λ₯Ό μΌλμ λκ³ errors
λ° warnings
κ° μμ±μΈ DataCheckResults
λ₯Ό λ°ννλλ‘ PRμ μ
λ°μ΄νΈνκ³ to_json
λ©μλλ₯Ό μΆκ°ν©λλ€. @BoopBoopBeepBoop μ΄ μ μν κ²μ²λΌ JSON νμμ λ©μμ§λ₯Ό λ°νν ν΄λμ€μ λν΄ μ΅μνμ μ λ³΄λ‘ μ§κΈμ λ©μμ§μ μμ€λ§ μ 곡ν©λλ€.
μ΄ λ¬Έμ λ JSON μΆλ ₯μ λ λ§μ νλ(μ: "μ½λ") μΆκ°λ₯Ό μΆμ νκΈ° μν΄ κ³μ μ΄λ € μμ΅λλ€.
@angela97lin κ°μ¬ν©λλ€!
μ΅μ μ μμ λ€μκ³Ό κ°μ΅λλ€.
DataCheck.validate
λ° DataChecks.validate
λ₯Ό μ
λ°μ΄νΈνμ¬ λ λ€ λ€μ νμμ λ°νν©λλ€.{'errors': [...], 'warnings': [...]}
μμ κ° νλͺ©μ νμμ λλ€.
{
"message": "Warning: too many null values present in column 'foobar'",
"code": "TOO_MANY_NULLS",
"level": "warning",
"columns": ["foobar"]
}
DataCheckMessageCode
μ code
νλλ₯Ό μ±μ°κΈ° μν΄ DataCheckMessageCode
μ΄κ±°νμ μ μν©λλ€.DataCheckMessage
, DataCheckError
λ° DataCheckWarning
ν΄λμ€λ₯Ό μμ ν©λλ€.μ°λ¦¬κ° μ΄κ²μ ꡬμΆνκΈ° μ μ μ΄λ€ λ°λ/μκ²¬μ΄ μμ΅λκΉ? @tyler3991 @Cmancuso @BoopBoopBeepBoop @angela97lin @freddyaboulton
( @angela97lin @freddyaboulton DataCheckResults
ν΄λμ€λ₯Ό μ¬μ©νμ¬ μ΄ μ μμ λ²μ μ μ
λ ₯νκΈ° μμν λ€μ, λ€λ₯Έ ν΄λμ€λ₯Ό μ μνλ λμ μμμ JSON-ified dictλ₯Ό λ°ννκΈ°λ§ νλ©΄ λ©λλ€. κΈ°λ₯μ μΌλ‘ λλ±νμ§λ§ κ·Έλ μ§ μμ΅λλ€. ν΄λμ€λ₯Ό μ¬μ©νλ κ²μ΄ λ κ°λ¨ν©λλ€. κ²°κ³Ό ν΄λμ€κ° μννλ λͺ¨λ κ²°κ³Όλ λμΌν μ 보λ₯Ό μ μ§νκ³ λ€λ₯Έ κΈ°λ₯μ μΆκ°νμ§ μλ κ²μ
λλ€. λμ μκ°μ΄λΌκ³ μκ°νλ©΄ LMKμ
λλ€.)
μ΄ RE PR #1444μ λν΄ @angela97linκ³Ό λννμ΅λλ€ . κ·Έλ
κ° λ΄λΆμ μΌλ‘ DataCheckMessage
ν΄λμ€λ₯Ό μ μ§νλλ‘ μ νν μ μλ€λ μ μ μ μΈνκ³ μμ κ³νμ λ³κ²½λμ§ μμμ΅λλ€. κ·Έλ¬λ validate
λ μμ μ μλ JSON κ°λ₯ dictsλ₯Ό λ°νν©λλ€.
( @angela97lin μ°λ¦¬κ° λ°©κΈ λ Όμν λ΄μ©κ³Ό μΌμΉνμ§ μμΌλ©΄ μ λ₯Ό μμ νμμμ€!)
@angela97linμΌλ‘ μ΄κ²μ μ‘°μ νμμμ€. μ΅μ :
{
"message": "Warning: too many null values present in column 'foobar'",
"code": "TOO_MANY_NULLS",
"data_check_name": "HighlyNullDataCheck",
"level": "warning",
"details": {
"columns": ["foobar"]
}
}
μ¬κΈ°μ "details" ν€λ λ°μ΄ν° κ²μ¬μμ λ°ννλ €λ λͺ¨λ μ 보λ₯Ό 보μ ν μ μμ΅λλ€. κ·Έλ¦¬κ³ ν¬ν¨ν λ΄μ©μ΄ μμΌλ©΄ μλ΅ν©λλ€.
κ²μ¬μ μ€ν¨ν μ΄μ ν¬ν¨νλλ‘ λ€μ λ°μ΄ν° κ²μ¬λ₯Ό μ λ°μ΄νΈν΄μΌ ν©λλ€. λμ null, ID λ° λμ λμΆ. λ€λ₯Έ λ°μ΄ν° κ²μ¬λ μ λ°μ΄νΈνλ©΄ 보λμ€ :)
μ΄κ²μ κΈ°λ³Έμ μΌλ‘ @BoopBoopBeepBoopμ΄ μ μν κ²μ λλ€! β¨ @Cmancuso
κ°μ₯ μ μ©ν λκΈ
@angela97linμΌλ‘ μ΄κ²μ μ‘°μ νμμμ€. μ΅μ :
μ¬κΈ°μ "details" ν€λ λ°μ΄ν° κ²μ¬μμ λ°ννλ €λ λͺ¨λ μ 보λ₯Ό 보μ ν μ μμ΅λλ€. κ·Έλ¦¬κ³ ν¬ν¨ν λ΄μ©μ΄ μμΌλ©΄ μλ΅ν©λλ€.
κ²μ¬μ μ€ν¨ν μ΄μ ν¬ν¨νλλ‘ λ€μ λ°μ΄ν° κ²μ¬λ₯Ό μ λ°μ΄νΈν΄μΌ ν©λλ€. λμ null, ID λ° λμ λμΆ. λ€λ₯Έ λ°μ΄ν° κ²μ¬λ μ λ°μ΄νΈνλ©΄ 보λμ€ :)
μ΄κ²μ κΈ°λ³Έμ μΌλ‘ @BoopBoopBeepBoopμ΄ μ μν κ²μ λλ€! β¨ @Cmancuso