Sein-Oh

ml-kit

표(Excel/CSV) 데이터로 수치 예측(회귀) 또는 범주 예측(분류) 모델을 학습하고(ml_train.py), 새 데이터를 예측하고(ml_predict.py), Word로 ML 결과 보고서(ml_report.py)를 만든다. 데이터 정제, 5개 모델 경쟁, 버전 관리, 입력 경고를 도구가 자동 처리하므로 명령 1회 실행 후 JSON 결과만 읽으면 된다. 예측 모델 만들기, 성능 개선, 새 조건 예측값 계산, 결과 보고서 요청 시 사용.

Sein-Oh 0 1 Updated 2h ago

Resources

8
GitHub

Install

npx skillscat add sein-oh/ai-work/ml-kit

Install via the SkillsCat registry.

SKILL.md

ml-kit 스킬

꼭 지킬 규칙

  1. 명령은 아래 템플릿을 그대로 쓰고 <...> 부분만 바꾼다. 옵션을 지어내지 않는다.
  2. 명령은 1번만 실행한다. 결과는 출력의 마지막 1줄 JSON만 읽는다. [PROGRESS] 줄은 무시한다.
  3. JSON의 agent_directive 첫 단어로 다음 행동을 정한다 (맨 아래 표).
  4. 같은 명령을 다시 실행하지 않는다. 결과 파일을 다시 열어 확인하지 않는다.
  5. 파일 경로는 file:///C:/... 링크로 보고한다. 이모지를 쓰지 않는다.
  6. 학습은 몇 분 걸릴 수 있다. 명령 실행 도구에 시간 제한 옵션이 있으면 600초 이상으로 준다.

<SKILL_DIR> = 이 SKILL.md가 있는 폴더의 절대 경로.

1단계: 무엇을 할지 고르기

사용자 요청 할 일
"모델 만들어줘", "예측 모델 학습" 2단계 학습
"성능 올려봐", "다시 해봐" 3단계 개선
"이 조건이면 얼마야?", "새 데이터 예측" 4단계 예측
"보고서 만들어줘" 5단계 보고서

2단계: 학습

타겟이 숫자(수율, 온도, 강도)면 회귀, 글자나 등급(양품/불량, A/B/C)이면 분류다. 모르면 사용자에게 묻는다.

회귀:

python "<SKILL_DIR>\ml_train.py" -f "<데이터파일>" -x "<피처1>,<피처2>,<피처3>" -y "<타겟>" --desc "<데이터 설명 한 줄>"

분류:

python "<SKILL_DIR>\ml_train.py" -f "<데이터파일>" -x "<피처1>,<피처2>,<피처3>" -y "<타겟>" --task classification --desc "<데이터 설명 한 줄>"

필요할 때만 덧붙이는 옵션:

상황 덧붙일 옵션
엑셀 위쪽에 제목/단위 행이 있다 (예: 4행이 머리글, 5행이 단위) --header-row 4 --unit-row 5
분류에서 놓치면 안 되는 값이 있다 (예: 불량) --positive-class 불량
숫자로 된 코드(101, 102)를 종류로 다뤄야 한다 --dtypes "설비코드:str"
피처가 10개 이상이다 한 줄에 하나씩 쓴 features.txt를 만들고 -x "features.txt"
  • 컬럼명의 단위는 빼도 된다 (반응온도 = 반응온도(°C)).
  • 날짜 컬럼과 글자 컬럼(라인, 설비)도 -x에 그대로 넣는다.

결과 JSON에서 사용자에게 알릴 것: version, mean_val_score(1에 가까울수록 좋음), recommendations의 첫 문장.
다음 단계를 위해 기억할 것: version_dir, goal_met, next_commands.

3단계: 성능 개선

  1. goal_met이 true이면 개선을 멈추고 5단계 보고서로 간다.
  2. goal_met이 false이면 next_commands[0].command를 글자 그대로 실행한다. 명령을 직접 만들지 않는다.
  3. 새 결과의 delta_score(양수=좋아짐)를 알린다.
  4. 1~3을 최대 5번 반복한다.

needs_input이 true인 명령에는 <새데이터.xlsx> 같은 자리표시자가 있다. 사용자가 준 실제 경로로 바꿔 실행하고, 경로를 모르면 먼저 묻는다.

4단계: 예측

한 건:

python "<SKILL_DIR>\ml_predict.py" -m "<version_dir>" -i "<피처1>=<값>,<피처2>=<값>,<피처3>=<값>"

파일 전체:

python "<SKILL_DIR>\ml_predict.py" -m "<version_dir>" -f "<새데이터파일>"
  • <version_dir>은 학습 결과 JSON의 version_dir 값을 그대로 쓴다.
  • 알릴 것: 한 건이면 predictions_summary.<타겟>.predictions, 회귀는 intervals(90% 범위)도. 파일이면 output_file.
  • 아래 값이 true이면 옆의 문장을 덧붙인다:
JSON 값 덧붙일 말
drift_warning 입력값이 학습 범위를 벗어나 예측을 참고용으로만 써야 함 (extrapolation_warnings 내용 전달)
unseen_category_warning 학습 때 없던 종류가 있음 (unseen_category_warnings 내용 전달)
missing_input_warning 빈 값이 있어 기준값으로 채움 (missing_input_warnings 내용 전달)
low_confidence_warning 분류 확신도가 낮은 건이 있음 (low_confidence_warnings 내용 전달)

5단계: ML 결과 보고서 (Word)

python "<SKILL_DIR>\ml_report.py" -m "<version_dir>"
  • 알릴 것: report_file(링크), overall_verdict(적합/조건부/부적합).
  • 사용자가 보고서 문장을 직접 정해 주면, 그 문장으로 slots.json을 만들고 명령 끝에 --slots "slots.json"을 붙인다.
    형식: {"summary": "<요약 문장>", "operation": "<운영 문장>"}

결과 처리 (모든 단계 공통)

agent_directive 첫 단어 할 일
VERIFIED: 성공. preview와 위에서 정한 값을 사용자에게 알리고 끝낸다.
STOP_RETRY: 이고 message에 [추천]이 있다 [추천] 뒤의 이름으로 바꿔 1번만 다시 실행한다. 또 실패하면 message를 그대로 알린다.
STOP_RETRY: 이고 [추천]이 없다 다시 실행하지 않는다. message를 그대로 알린다.
ERROR: 다시 실행하지 않는다. message를 그대로 알린다.