빅이시 작업형2 기초 - 케이스 1~3 관련 문의
안녕하세요. 빅이시 강의 수강 및 코드 관련 문의 드립니다.
'추천' 파트와 달리 '기초'에는 랜덤 포레스트 모델로(만) 예측하는 코드가 구현되어 있음을 확인했습니다.
기초 케이스에도 LightGBM으로도 예측하는 코드를 추가 가능하실까요?
추천(1~3) 코드에서 LightGBM 부분을 추출하여 기초 코드를
'# 2_1. 머신러닝 학습 및 예측(랜덤포레스트)'
'# 2_2. 머신러닝 학습 및 예측(LightGBM)'
'# 3_1. 결과 파일 생성(랜덤포레스트)'
'# 3_2. 결과 파일 생성(LightGBM)'
이렇게 코드를 자체적으로 이식(?)하고 이원화하여 수정해보려고 했는데 재대로 한 게 맞는지 확신이 없어 문의드립니다ㅠㅜ
답변 6
0
'기초 1'은 전체적으로 코드를 나열해 보았고, '기초2', '기초 3'은 #2_1, #2_2 & #3_1, #3_2 부분만(나머지 '기초 1'과 동일=>생략) 작성해 보았습니다. 주요 변경내용은 아래과 같습니다.
1. LightGBM 모델의 경우 #1 단계에서 특수문자 제거 코드 추가
2. #2 및 #3에서 model_rf, model_lg & p_rf, p_lg 로 변수명을 이원화(구분)
나름 맞게 추려낸 것 같지만 혹시 누락되거나 보완할 부분이 있는지 피드백을 요청 드립니다.
(기존의 주석은 가독성 편의 상 필요한 부분만 남겼습니다.)
감사합니다.
0
[기초] 케이스3. 회귀, 모든 평가지표
* 변경사항 : 변수명 - model에서 model_rf, model_lg / p에서 p_rf, p_lg
# 2_1. 머신러닝 학습 및 예측 (랜덤포레스트)
from sklearn.ensemble import RandomForestRegressor
model_rf = RandomForestRegressor()
model_rf.fit(train, target)
p_rf = model_rf.predict(test)
# 2_2. 머신러닝 학습 및 예측 (LightGBM)
import lightgbm as lgb
model_lg = lgb.LGBMRegressor(random_state=0, verbose=-1)
model_lg.fit(train, target)
p_lg = model_lg.predict(test)
# 3_1. 결과 파일 생성 (랜덤포레스트)
submit = pd.DataFrame({'pred': p_rf})
submit.to_csv("result.csv", index=False) # 파일 생성
# 3_2. 결과 파일 생성 (LightGBM)
submit = pd.DataFrame({'pred': p_lg})
submit.to_csv("result.csv", index=False) # 파일 생성 (※ 제출은 1개, 위 3_1과 택1)
0
[기초] 케이스2. 이진/다중 분류, ROC-AUC를 제외한 모든 평가지표(f1, accuracy 등)
* 변경사항 : 변수명 - model에서 model_rf, model_lg / p에서 p_rf, p_lg
# 2_1. 머신러닝 학습 및 예측 (랜덤포레스트)
from sklearn.ensemble import RandomForestClassifier
model_rf = RandomForestClassifier()
model_rf.fit(train, target)
p_rf = model_rf.predict(test)
# 2_2. 머신러닝 학습 및 예측 (LightGBM)
import lightgbm as lgb
model_lg = lgb.LGBMClassifier(random_state=0, verbose=-1)
model_lg.fit(train, target)
p_lg = model_lg.predict(test)
# 3_1. 결과 파일 생성 (랜덤포레스트)
submit = pd.DataFrame({'pred': p_rf})
submit.to_csv("result.csv", index=False) # 파일 생성
# 3_2. 결과 파일 생성 (LightGBM)
submit = pd.DataFrame({'pred': p_lg})
submit.to_csv("result.csv", index=False) # 파일 생성 (※ 제출은 1개, 위 3_1과 택1)0
[기초] 케이스1. 이진 분류, ROC-AUC
<기존 코드>
# 1. 데이터 전처리 (랜덤포레스트 / LightGBM 공통)
target = train.pop('TravelInsurance')
train = pd.get_dummies(train)
test = pd.get_dummies(test)
<추가 코드> ## 랜덤 포레스트 모델 선택 시 미 사용
# (LightGBM용) 컬럼명 특수문자 제거 : / 공백 등 → LightGBM 에러 방지
train.columns = train.columns.str.replace(r'[^A-Za-z0-9_가-힣]', '', regex=True)
test.columns = test.columns.str.replace(r'[^A-Za-z0-9_가-힣]', '', regex=True)
<수정 코드> ## 변수명 변경(model > model_rf, p > p_rf)
# 2_1. 머신러닝 학습 및 예측 (랜덤포레스트)
from sklearn.ensemble import RandomForestClassifier
model_rf = RandomForestClassifier()
model_rf.fit(train, target)
p_rf = model_rf.predict_proba(test) # (ROC-AUC는 확률값)
<추가 코드> ## 변수명(model_lg, p_lg)로 이원화하여 구분이 용이하게 함.)
# 2_2. 머신러닝 학습 및 예측 (LightGBM)
import lightgbm as lgb
model_lg = lgb.LGBMClassifier(random_state=0, verbose=-1)
model_lg.fit(train, target)
p_lg = model_lg.predict_proba(test) # (ROC-AUC는 확률값)
<수정 코드> ## 변수명 변경(model > model_rf, p > p_rf)
# 3_1. 결과 파일 생성 (랜덤포레스트)
submit = pd.DataFrame({'pred': p_rf[:, 1]})
submit.to_csv("result.csv", index=False) # 파일 생성
<추가 코드> ## 변수명(model_lg, p_lg)로 이원화하여 구분이 용이하게 함.)
# 3_2. 결과 파일 생성 (LightGBM)
submit = pd.DataFrame({'pred': p_lg[:, 1]})
submit.to_csv("result.csv", index=False) # 파일 생성 (※ 제출은 1개, 위 3_1과 택1)
<기존 코드>
# 체크 (샘플과 비슷한지 확인)
print(submit.head())0
잘하고 계십니다. !!!
랜덤포레스트에 random_state=0 추가해서 시드값 고정하는 것이 좋습니다.
다만 검증 데이터를 분리해 검증하지 않는다면
랜덤포레스트와 라이트지비엠 둘다 학습 및 예측할 필요가 없습니다.
예측하더라도 비교할 수 없기 때문이에요!
검증하지 않을 것이라면 바로 라이트지비엠만 추천드리고
검증한다면 데이터 분리하고 검증 단계가 필요합니다.
0
시간관계 상 검증[추천] 생략하고 [기초]로 진행하고자 합니다.
직전 회차에서 랜.포 모델로 했을때 30점이 나와 이번에는 보다 정확도가 높은 LightGBM 모델로 진행 예정입니다.
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다. 초코님.
빅데이터 분석기사 실기 강의에서 LightGBM을 사용한 예측 코드 추가에 대한 질문 감사드립니다!
LightGBM은 랜덤 포레스트와 함께 사용될 수 있는 강력한 머신러닝 모델입니다. 기초 케이스에 LightGBM을 추가하고자 하는 취지에 대해 도움이 될 수 있도록 간단한 설명을 드리겠습니다.
LightGBM의 도입:
- 기초 케이스에 LightGBM 모델을 추가하고자 하시는 계획은 매우 좋습니다. LightGBM은 높은 예측 성능과 빠른 학습 속도를 자랑하기 때문에, 다양한 데이터셋에서 랜덤포레스트와 함께 사용하여 비교 분석을 통해 성능을 최적화할 수 있습니다.
- 기초 케이스에 LightGBM 모델을 추가하고자 하시는 계획은 매우 좋습니다. LightGBM은 높은 예측 성능과 빠른 학습 속도를 자랑하기 때문에, 다양한 데이터셋에서 랜덤포레스트와 함께 사용하여 비교 분석을 통해 성능을 최적화할 수 있습니다.
코드 이식 방법:
- ’# 2_1. 머신러닝 학습 및 예측(랜덤포레스트)’ 부분 코드를 참고하여, 아래와 같은 형식으로 LightGBM 코드를 추가하시면 됩니다:
”`python
from lightgbm import LGBMClassifier, LGBMRegressor
model_lgb = LGBMClassifier() if is_classification else LGBMRegressor()
model_lgb.fit(X_train, y_train)
y_pred_lgb = model_lgb.predict(X_test)
“`- ’# 2_1. 머신러닝 학습 및 예측(랜덤포레스트)’ 부분 코드를 참고하여, 아래와 같은 형식으로 LightGBM 코드를 추가하시면 됩니다:
결과 파일 생성:
- 결과 파일 생성 부분에서도 ‘# 3_2. 결과 파일 생성(LightGBM)‘으로 확장하여 랜덤 포레스트 예측 결과와 함께 저장하시면, 비교 분석에 유리합니다.
- 결과 파일 생성 부분에서도 ‘# 3_2. 결과 파일 생성(LightGBM)‘으로 확장하여 랜덤 포레스트 예측 결과와 함께 저장하시면, 비교 분석에 유리합니다.
검증:
- 코드는 잘 작성된 것 같습니다만, 모델이 잘 학습되었는지 성능 평가를 통해 확인해보시길 추천합니다. 학습 후 평가 지표(예: 분류 문제의 경우 정확도, 회귀 문제의 경우 RMSE)를 확인하세요.
- 코드는 잘 작성된 것 같습니다만, 모델이 잘 학습되었는지 성능 평가를 통해 확인해보시길 추천합니다. 학습 후 평가 지표(예: 분류 문제의 경우 정확도, 회귀 문제의 경우 RMSE)를 확인하세요.
아래 링크에서 유사한 질문과 답변을 확인하실 수 있습니다. 이 답변들을 참고하시면 더욱 도움이 될 것입니다:
LightGBM을 적절히 적용하여 좋은 결과를 얻으시길 바랍니다! 추가적으로 궁금한 점이 있으시면 더 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
수강연장요청 문의
0
17
1
아무래도 다음 시험 연장은 어렵겠죠?
0
60
2
빅분기 12회 결과 관련 문의
0
79
1
책이랑 강의랑 순서나 예제가 다른것 같네요
0
65
2
수강연장 문의
0
71
2
재검토 요청 방법 좀 알려주셔요...-.-;;
0
93
2
12회 실기 질문(작업형 2)
0
79
2
뒤로가기 버튼 같은 것이 있나요?
0
53
1
강의 연장 문의
0
79
2
출력값 질문
0
58
2
수업노트가 어디에 있나요?
0
49
1
실기시험 제출관련
0
212
3
6.20 작업형 2 과적합
0
209
3
코딩팡 장업형2 베이스 라인 인코딩 종류 질문
0
71
2
로지스틱회귀, 회귀
0
60
2
회귀 문제를 풀때 질문입니다.
0
68
1
불균형 처리 후 성능이 더 낮아졌다면,
0
78
2
실기 체험 제2유형 에러 문의
0
77
1
LIGHTGBM 으로 하면 pred값이 소수점 6자리까지 나오는게 맞나요
0
67
2
3번문제 등분산 가정
0
59
2
작업형3 target 형 변환 질문
0
48
2
[작업형1] 연습문제 섹션1 ~ 10 의 section4
0
65
3
원핫인코딩과 레이블 인코딩에서 concat
0
70
2
제2유형 질문입니다.
0
58
2





