표(Excel/CSV) 데이터로 수치 예측(회귀) 또는 범주 예측(분류) 모델을 학습하고(ml_train.py), 새 데이터를 예측하고(ml_predict.py), Word로 ML 결과 보고서(ml_report.py)를 만든다. 데이터 정제, 5개 모델 경쟁, 버전 관리, 입력 경고를 도구가 자동 처리하므로 명령 1회 실행 후 JSON 결과만 읽으면 된다. 예측 모델 만들기, 성능 개선, 새 조건 예측값 계산, 결과 보고서 요청 시 사용.
Resources
8Install
npx skillscat add sein-oh/ai-work/ml-kit Install via the SkillsCat registry.
SKILL.md
ml-kit 스킬
꼭 지킬 규칙
- 명령은 아래 템플릿을 그대로 쓰고
<...>부분만 바꾼다. 옵션을 지어내지 않는다. - 명령은 1번만 실행한다. 결과는 출력의 마지막 1줄 JSON만 읽는다.
[PROGRESS]줄은 무시한다. - JSON의
agent_directive첫 단어로 다음 행동을 정한다 (맨 아래 표). - 같은 명령을 다시 실행하지 않는다. 결과 파일을 다시 열어 확인하지 않는다.
- 파일 경로는
file:///C:/...링크로 보고한다. 이모지를 쓰지 않는다. - 학습은 몇 분 걸릴 수 있다. 명령 실행 도구에 시간 제한 옵션이 있으면 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단계: 성능 개선
goal_met이true이면 개선을 멈추고 5단계 보고서로 간다.goal_met이false이면next_commands[0].command를 글자 그대로 실행한다. 명령을 직접 만들지 않는다.- 새 결과의
delta_score(양수=좋아짐)를 알린다. - 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를 그대로 알린다. |