66,000원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결캐글 Advanced 머신러닝 실전 박치기
train, test 병합 후 결측치 또는 이상치 처리 관련문의
안녕하세요 강사님 train, test 세트를 병합 후, 결측치 또는 이상치 처리 때 문의 드릴게 있습니다.코딩 프로세스를 보면,train,test 병합 후, TARGET isnull 인경우 app_test 로 설정하하는데만약 이 과정 전, 결측치 처리 하는데서 결측치를 처리하기 위해, dropna를 쓰게 된다면,최종적으로 test 세트 row를 제거 할 수도 있습니다(test 세트에 null이 포함 된 경우) 이는 즉, 정말 예측해야 하는 test 세트의 개수와 맞지 않는다는 뜻입니다.또는, train, test 병합 전, train 데이터에만 outlier 를 제거한 후에 test와 병합 한다면, test에는 outlier가 제거되지 않은 데이터들이 있을 수 있기 때문에,문제가 있을 것 같습니다. 강의에서는 fillna(-999) 를 하기 때문에 문제가 없다지만, 실제로 결측치나 아웃라이어는 어떻게 처리해야 하나요?
- 해결됨캐글 Advanced 머신러닝 실전 박치기
캐글데이터에서 스케일링 및 라벨인코딩(pd.factorize) 문의
안녕하세요 강사님! 강의 잘 듣고 있습니다. 캐글에 참여하고있는데, 스케일링 및 라벨인코딩(pd.factorize) 에서 막혀서 질문 드립니다. 1. 스케일링 관련 문의 데이터 전처리시, Standard Scaling을 한다 가정하였을 때, '파이썬 머신러닝 완벽 가이드' 나 기타 다른 자료를 찾아봐도, train_split 후 X_train, X_test 데이터에 대해서 스케일링을합니다. 저희 데이터에서는 아래와 같은경우에, 마지막 TARGET이 없는 테스트 데이터 셋에 어떻게 스케일링 해야하는지 궁금합니다. (제 생각엔 train_split 하기 전, apps_all 을 스케일링 하면 될 것같은데, 방법을 모르겠습니다) object_columns = apps_all.dtypes[apps_all.dtypes == 'object'].index.tolist() for column in object_columns: apps_all[column] = pd.factorize(apps_all[column])[0] apps_all_train = apps_all[~apps_all['TARGET'].isnull()] apps_all_test = apps_all[apps_all['TARGET'].isnull()] apps_all_test = apps_all_test.drop('TARGET', axis=1) from sklearn.model_selection import train_test_split ftr_app = apps_all_train.drop(['SK_ID_CURR', 'TARGET'], axis=1) target_app = apps_all_train['TARGET'] train_x, valid_x, train_y, valid_y = train_test_split(ftr_app, target_app, test_size=0.3, random_state=2020) from sklearn.preprocessing import MinMaxScaler scaler = MinMaxScaler() scaler.fit(train_x) train_x = scaler.transform(train_x) valid_x = scaler.transform(valid_x) 이렇게 하면 정말 제출해야하는 마지막 데이터(apps_all_test) 데이터에 대해서는 어떻게 스케일링을 해야하나요? 2. 위 코드에서 pd.factorize 를 하게되면 object 칼럼들이 int형 컬럼으로 바뀌게 되는데, 이 이후 스케일링을 하게되면, 라벨인코더 결과값들마저 스케일링 됩니다. 이는 뭔가 잘못됐다는 생각이 듭니다. 혹시 숫자형컬럼(int or float) 들에 대해 스케일링을 먼저하고, object 칼럼들에 대해 라벨인코딩을 해야하나요? 감사합니다.
- 해결됨캐글 Advanced 머신러닝 실전 박치기
Group by Case When을 새로 작성해보았습니다.
안녕하세요 권철민 강사님!강의 매우 유익하게 듣고 있습니다!!강사님 강의만 총 6개정도 결제했습니다 ㅎㅎ파이썬 머신러닝 부터 CNN, 딥러닝심화, 캐글까지 섭렵하려합니다!! ------------------------------------------------ 강의 하신 내용 가운데 "Group by Case When" 부분을새로 만들어 보았습니다! (올린 사진이 좀 작네요 ㅠㅠ 죄송합니다) 같은 결과를 다르게 도출하는 방법이 있음을 알아가며,이렇게 하나씩 해보는게, 매우 큰 도움이 되고 있습니다. 감사합니다!!
- 미해결캐글 Advanced 머신러닝 실전 박치기
0과 1의 분포가 비슷한 경우 질문 드립니다.
안녕하세요. 이번 강의에서 distplot으로 target값에 따른 분포도에서 비슷한 분포를 보이는 feature들이 많은 것 같습니다. 이러한 특성들은 0과 1을 분류하는데에 크게 의미가 있나요? 이러한 특성들을 넣고 성능을 계산하는게 좋은지, 의미가 크게 없다면 제외하고 성능을 계산해야 하는지 궁금합니다. 제가 가지고 있는 특성들이 9개 인데, 분류를 하고 있습니다. 제가 가진 특성들의 분포를 그려보면 거의 모든 특성들이 분포가 거의 동일한데, 이러한 상황에서는 어떠한 방법이 있을까요? 새로운 특성들을 만들어봐도 특별하게 분포가 달라짐을 보지는 못했습니다. 감사합니다.
- 미해결캐글 Advanced 머신러닝 실전 박치기
상관관계 높은 feature들에 대해 질문드립니다.
안녕하세요 선생님 :) 항상 좋은 강의 감사합니다. 다름이 아니라 상관관계가 높은 변수들을 통해 파생변수를 만들어주면, 기존의 변수들은 drop 시켜야하는건가요? 아니면 그대로 들고가는것인가요? 감사합니다
- 미해결캐글 Advanced 머신러닝 실전 박치기
Feature engineering 질문입니다
선생님 덕분에 항상 많은것을 배워갑니다. 강의를 들으면서 궁금한게 생겼는데요. LGBM 모델이 decision tree 기반으로 작동한다고 알고있습니다. 첫번째 LGBM regressor 모델을 쓰게될때 categorical 데이터와 연속형 데이터가 섞인 데이터를 받게될 경우도 다분하다고생각되는데요 .이때는 data feature engineering 을 어떤식으로 접근해야할지 모르겠습니다. 조금 범위가 넓은 질문이기도 한데요 1. 가령 연령대의 데이터가 birth_date 로 오지않고 1:(20~25) 2:(25~30) 등으로 올때는 그냥 별도의 feature_engineering 을 하지않아도 되는지??여부 2. 새로운 특징을 추출할때 범주형과 연속형 변수를 섞어서 도출할때에는 어떤식으로 해야할지?? 선생님의 의견을 듣고싶습니다( 가령 안건드는게 좋다라던지 접근방식이라던지) 3. 그리고 연속형 범주에서 LGBM 을 사용할떄는 굳이 정규화를 시켜주지않아도되는지여부도 궁금합니다.( decision tree 기반이라 굳이 안해도 된다는말을 어디서본거같긴한데 잘 모르겠습니다) 4. 특정 열이 데이터가 한쪽으로 치우져있을때 log 를 씌워 정규분포형태로 만들어줄수있다는것도 알게되었습니다(머신러닝완벽가이드) 여기서 train_data의 특정 column에('A'라고 하겠습니다) log를 적어주었을때 test_column 특정열('A')에도 log 를 취해준후 예측을 하고 predict 한결과를 그대로 사용하면 되는것이 맞는지요?? 5. 마지막으로 평가지표에 대한 질문인데요. rmse나 MAPE 등 다양한 평가지표가 존재합니다. 근데 여기서 rmse 가 무조건낮다고 쓸만한 모델인가? 에대한질문입니다. rmse 가 0.1 이여도 쓸만한 모델이 아닐수도있고 rmse가 10이여도 쓸만한 모델일수도 있다고 생각이되는데 이에대한 구분기준은 어떻게정해야할까요??? 이제 머신러닝을 배우는단계라 궁금한게 너무많아서 한번에 질문이 많아졌네요. 감사합니다.
- 미해결캐글 Advanced 머신러닝 실전 박치기
그래프 생성 함수 관련 질의드립니다.
안녕하세요. 강사님. 수업 열심히 수강하는 수강생입니다. 그래프 생성 함수 관련하여 질의드립니다. 함수 인자에 is_amt = False가 있는데, 함수 호출시 (* True가 아닌 False로 지정하면) show_column_hist_by_target(app_train, 'AMT_INCOME_TOTAL', is_amt= False) 키 오류가 나는 것 같는 것 같습니다. (바이올린 그래프에서) data = df[cond_amt] 부분에서 나는것 같은데요. 관련해서 제가 무엇을 놓치고 있는지 궁금합니다.
- 미해결캐글 Advanced 머신러닝 실전 박치기
선생님 정확도 측정에 대해서 질문있습니다..!
선생님 항상 강의 잘 듣고있습니다..! 빅데이터 전문가가 꿈인데 하루가 다르게 배우면 배울수록 부족함을 많이 느끼고 있습니다 ㅠㅠ 다름이 아니라 Home Credit Default Risk 에서 train.csv 랑 test.csv 랑 합쳐서 학습/검증용으로 나눈다음에 모델평가 했잖아요..? 그다음 to_csv로 파일변환 한다음 캐글에 올려서 한번더 평가를 하던데 이건 위에 적은 test.csv 파일과 다른 자료로 평가를 하는건가요?? 그리고 train.csv 와 test.csv 를 합치지 않고 단순히 train.csv에서 학습/검증 용으로 나눈다음에 test.csv로 평가해도 되는게 아닌가요?? 자세한 답변 부탁드립니다 항상 감사합니다..!
- 미해결캐글 Advanced 머신러닝 실전 박치기
주요 피처 선정 및 피처 엔지니어링 관련 질문
안녕하세요 권철민님. 좋은 강의 감사드립니다. 1. displot이나 heatmap를 수행할 때 모든 피처가 아닌 '주요 피처'를 따로 뽑아서 수행하셨습니다. 여기서 주요 피처를 선정하는 기준이 어떤 것인가요? plot_importance를 기준으로 하신 것인지요? 만약 아니라면, 어떠한 '정량적'인 기준이 있는지요? 아니면 처음에 강조하셨던 해당 비즈니스 도메인 knowledge에서 비롯된 정성적 기준/직관적 기준으로 선정한 것인지요? 2. 주요 피처로 선택되지 않은 피처들이 사후 scaling / outlier 제거 등을 통해 주요 피처가 될 수도 있지 않는지요? 혹시라도 나중에 약간의 가공으로 주요피처가 될 수도 있는데, 처음에 주요피처를 선정해버리면 이들이 분석의 scope에서 제외되어 버리지는 않을까 걱정됩니다. 3. 가공된 피처와 원본 피처는 상관관계가 매우 높을텐데, 원본피처는 drop하지 않아도 되는지요? 저의 짧은 지식으로는 높은 상관관계는 다중공선성 문제를 유발한다는데, Regression 계열만 문제되고 Tree 기반한 GBM계열은 신경쓰지 않아도 될까요?
- 미해결캐글 Advanced 머신러닝 실전 박치기
그룹바이실습질문드립니다.
Pandas Group by 실습 중 아래와 같은 코드가 있습니다. cust_agg = pd.DataFrame() cust_agg['sum_grade'] = cust_group['grade'].sum() cust_agg['max_grade'] = cust_group['grade'].max() cust_agg.head() cust_agg = pd.DataFrame()은 빈데이터를 생성하는것이라고 하셨는데 이 코드(cust_agg = pd.DataFrame())를 주석 처리해도 주석한것과 안한것의 결과는 차이가 없는데요. cust_group이 오브젝트로 인하여 데이터 프레임이 자동으로 생성되는건가요?
- 미해결캐글 Advanced 머신러닝 실전 박치기
previous_application 데이터 가공/모델 학습/평가 null값 관련 질문있습니다.
previous_application 데이터 가공/모델 학습/평가-previous_application 주요 피처 EDA 수행 - 연속형 값 분석 8분 23초에 null값이 5000천개인데 의미를 찾기 어렵다고 하셨는데요 혹시 의미 찾기 어렵다는 기준이 따로 있는건가요?
- 미해결캐글 Advanced 머신러닝 실전 박치기
Feature engineering 관련 질문입니다.
강의에서는 Feature를 새로 만들어내면서 '난사' 한다고 표현을 하셨는데... 일단 만들어 놓고 나중에 정리하는 것 처럼 말씀하셨는데, 딱히 '정리' 하는 부분은 못본 것 같아서요... plot_importance로 LightGBM에서 중요시 한 feature를 중요도 순서대로 나열할 수 있었는데 이런식으로 중요도를 평가한 후에 별로 중요하지 않은 feature를 아예 제거하는 방식으로도 성능을 높일 수 있나요? 만약 그렇다면 일단 여러개 만들고 나중에 필요없는 것을 없애는 효율적인 방식은 어떤 것이 있을까요?
- 미해결캐글 Advanced 머신러닝 실전 박치기
Hyperparameter tuning 시점 관련 질문입니다.
오늘 강의를 완강할 수 있겠네요. 좋은 강의 감사드립니다! 강의에서는 각각 table에서 feature를 뽑아내면서 그때마다 LightGBM을 이용해 prediction proba를 구해서 점점 개선되는 것을 보였는데요, 처음 hyperparameter setting은 적당히 경험상 대충 정하고 이를 이용해서 feature engineering을 모두 수행하고, 나중에 어느정도 feature engineering이 마무리가 되고나서 강의에서 보여주신 Bayesian optimization 등을 이용해서 튜닝하는 것이 효율적인 방법일까요? 아니면 애초에 feature selection 단계에서부터 이미 어느정도 optimized 된 hyperparameter를 찾아가는게 효율적일까요? 쓰고있는 노트북이 4 core에 32GB RAM을 가지고 있어서 그냥 local에서 하고 있는데요, parameter tunning이 가장 시간이 오래 걸리는 것 같아서 문의드려봅니다. 캐글 참여를 해서 그래도 어느정도 순위권을 목표로 한다고 하면 현실적으로 어느정도 시스템을 갖춰야 할 수 있을까요?
- 미해결캐글 Advanced 머신러닝 실전 박치기
NULL 처리 관련 질문입니다.
안녕하세요, 강의 너무 잘 들었습니다. 이번 강의에서는 LightGBM 만 썼는데, 나중에 XGBoost나 랜덤 포레스트 같은 다른 알고리즘을 쓰고 스태킹을 고려한다면, 다른 알고리즘 쓸 때 Null은 그냥 아무 숫자나 할당하면 되려나요? LightGBM은 Null을 알아서 분류한다고 하셔서 다른 것을 쓸때는 어떤식으로 하면 좋을 지 궁금해서 질문 올려봅니다. 감사합니다.
- 미해결캐글 Advanced 머신러닝 실전 박치기
강의 듣다가 궁금한 점이 생겼습니다..!
선생님~ 제가 머신러닝 쪽으로 현업경험이 없다보니 현업에서의 모델 배포-사용 관련 업무 로직에 대해서 궁금증이 생겨서요.. 기존 데이터에서 보통 피처를 가공하고 재생산을 한 후 모델을 학습시키잖아요~ 최종 모델을 배포 한 후에.. 그 배포된 모델을 통해 새로운 데이터를 예측 한다고 한다면, 새로운 데이터는 기존데이터 세트의 형식과 똑같이 쌓이기 때문에 새로운 데이터를 다시, 학습시켰을 때의 데이터(피처엔지니어링 후의 데이터 형태)처럼 피처들을 가공해서 만들어주고 예측을 하는 건가요..? (fit에 넣는 train_x 와 predict에 넣는 test_x 의 피처들이 같아야 하는 것 처럼..) 그렇다면..예측하기 위해서 새로운데이터를 학습시킨 모델에 넣어주기 전에 그 새로운데이터도 피처엔지니어링을 해야 할텐데, 그 때 기존에 피처엔지니어링을 위해 만들었던(함수화 해 놓은)것들을 사용하는 건가요..?
- 미해결캐글 Advanced 머신러닝 실전 박치기
apply처리 관련 질문
선생님~ 강의 정말 잘 듣고 많이 배우고 있습니다. 정말 감사합니다. 강의 10:47~ 부분에서 bureau['BUREAU_IS_DPD'] = bureau['CREDIT_DAY_OVERDUE'].apply(lambda x: 1 if x > 0 else 0) apply관련 설명하시면서 판다스에서 apply 람다식으로 하면 시간이 좀 더 걸린다고 하시면서 나중에 기회되면 설명해주시겠다고 하셨는데요..! 이 부분에 대한 설명을 듣고 싶네요 ㅜㅎ 그리고 apply 람다식 말고 다른 방법으로는 어떤 방법을 권장하시는 지 설명해주시면 감사하겠습니다.ㅠ
- 미해결캐글 Advanced 머신러닝 실전 박치기
이 작업을 매번 해야 되는건가요~?
선생님 강의를 완강하고 끝날 때 해야 하는 건가요? 아니면 이 작업은 구글클라우드를 사용하고 다 쓴다음에 마지막에 항상 해줘야 하는 작업인가요..? 클라우드 처음 써봐서 ..정말 좀 어렵네요..ㅜㅜ
- 미해결캐글 Advanced 머신러닝 실전 박치기
학습완료후 나의 .csv 파일을 캐글에 submission 했을때 평가에 대한 질문.
안녕하세요. 현재 캐글 Home Credit Default Risk 시작하기 섹션 부분 수강 중입니다 캐글에 submission을 할때 'SK_ID_CURR' 과 '내가 산출해낸 1이될 확률값' 만을 CSV 파일로 만들어서 제출을 합니다. 그런데 이 정보만 가지고 캐글에서 어떻게 test 데이터에 대한 auc값을 산출해내는지 궁금합니다. 제 모델(코드)를 제출해야 해당 모델에 test데이터를 넣어서 auc값을 산출해낼수있는것 아닌지요? 캐글에서 어떻게 저렇게 할수있는지 궁금합니다.
- 미해결캐글 Advanced 머신러닝 실전 박치기
anaconda, jupyter notebook 셋업 중 오류
처음에 깃허브에서 jupyter_notebook_config.py 를 잘못 받았는지 localhost로 나와서 이것 저것 혼자 해보면서 헤매다가 결국은 http://vm01:8889/ 이렇게 나와서 제 vm01에 잘 설정됐다고 생각했는데 잘보니 8888이 아니라 8889로 돼있더라고요? 이것 때문인지? 제 vm외부 ip에 :8888 이나 :8889를 붙여도 실행이 안되네요ㅜ 처음에 localhost로 나왔을때 제가 막 만져본게 순서대로 rm start_jn.sh , wget https://raw.githubusercontent.com/chulminkw/DLCV/master/data/util/jupyter_notebook_config.py (이거를 실행하니까 juypter_notebook_config.py.2로 나오길래 py.2 , py.1, py 이 3개를 다 remove 해주고 다시 실행해줘서 juypter_notebook_config.py로 save 해줬습니다), 그 이후부터는 다시 vi start_jn.sh 이거부터 tail -f nohup out 까지 실행시켜 주어서 나온 주소가 http://vm01:8889/ 이거 입니다ㅜ 어디서부터 꼬였는지 어질어질합니다..
- 미해결캐글 Advanced 머신러닝 실전 박치기
강의내용 토대로 연습할만한 kaggle competition
안녕하세요, 전강의 수강을 끝내고 연습을 더 하고 싶은데 어떤 competition에 참여해야 강의에서 배운 내용을 조금 더 효율적으로 사용해볼 수 있을지 궁금해 질문 드립니다. 혹시 추천할만한 competition이 있으신지요? 감사합니다!