월 19,800원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
차원축소 fit & transform 관련 질문드립니다!!
안녕하세요 선생님. 개인적인 프로젝트를 진행하며 차원축소나 스케일링시 fit/transform과 관련하여 궁금한 점이 생겨 오랜만에 질문드립니다.선생님께서 쓰신 책의 스케일링 파트에서(131p) 가능하면 스케일링 후 split을 하고 만약 그게 여의치 않다면 학습 데이터로 fit 후 테스트 데이터를 transform 하라고 하셨는데, 여기서 말하신 여의치 않은 상황이 어떤 경우가 있을지 감이 잘 안잡혀 알고 싶습니다. 프로젝트를 하며 전체 데이터에 대하여 차원축소 후 train_test_split 진행할 때와 split 진행 후 차원축소를 train 데이터에 fit하여 진행하였을 때 모델의 정확도 차이가 유의미하게 발생하는데(split 후 차원축소 시 오버 피팅처럼 성능이 나타남), 그 이유는 무엇인지, 둘 중에 높은 성능을 보이는 방향으로 모델을 제작해도 문제가 없는 것인지 궁금합니다.
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
혹시 책 e-book으로 출간하실 계획은 없으신가요?
안녕하세요? 강사님태블릿에 넣어서 출퇴근시간에 짬짬히 볼려고 하는데혹시 계획이 없으신지 궁금합니다
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
XGBoost and LightGBM 질문입니다!
선생님 안녕하세요, 퀄리티 너무 좋은 수업 덕분에 하루하루 배우는 재미가 있네요. 이런 기회를 주셔서 정말 감사드립니다.공부를 하다가 질문이 있어서 질문을 남겨요!제가 적용하려는 데이터의 타겟값이 -1 or 1 인 상태입니다. 현재 logloss가 eval_metric이어서 그런지, 타겟값이 -1 or 1 인 상태로 넣으면 에러가 나와서, 첫 3줄의 코드를 통해서 타겟값이 -1 인 경우는 0으로 바꾸었더니 돌아갑니다.여기서 궁금한게 생긴게,1) validation-logloss 값이 음수가 나오더군요! (똑같은 데이터를 Dmatrix를 구해서 똑같이 XGBoost를 적용할 때는 그러지 않았는데 wrapper를 사용할때는 왜 음수가 나오기 시작하는지 조언을 주실 수 있을까요?) 또한, logloss 값 자체가 음수가 나올 수 없는게 아닌가 싶어서 좀 찾아보니, https://stackoverflow.com/questions/26282884/why-is-the-logloss-negative 에서 설명이 나와있던데, 이 설명으로서는 잘 이해가 안되네요.2) 똑같은 데이터에 대해서 아래와 같이 LightGBM를 적용하려고 하였습니다. n_estimator = 1000 이고, early_stopping_rounds = 50 인데도 100번째 이터레이션 이후로 값들이 나오지 않더군요. 이럴때는 그냥 100번째 이터레이션이 optimal 한것인가요?
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
피쳐값과 타겟값을 시각화 했을때 시각화만으로도 어느정도 피쳐셀렉션이 가능한지 여부에 대해서 질문드립니다.
안녕하세요 선생님.양질의 강의 너무나 잘듣고 있습니다.강의 듣다가 질문이 생겼는데 자전거 수요예측 1강 9분쯤에 피쳐와 타깃값을 barplot 으로 시각화하면서 피쳐의 개수에 해당하는 8개의 그래프가 만들어졌는데 혹시 이그래프만으로도 피쳐 셀렉션이 가능할까요?또 barplot 말고 regplot으로 시각화를 한다면 추세선까지 파악가능한데그렇다면 더욱더 피쳐셀렉션을 시각화 그래프로 할수있지 않을까라는 의문이 생겨서 질문드립니다. 감사합니다.
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
GridSerachCV에서의 하이퍼파라미터 튜닝
안녕하세요 선생님! 하이퍼파라미터 튜닝에 대해 질문이 있어 글 올렸습니다!GridSearchCV의 방법을 사용하는데 있어 모든 하이퍼파라미터의 조합을 다 수행하면서 찾으면 되기 때문에 최적화 시간이 충분하다면 GridSearchCV가 좋은 방법이라고 생각되는데요.여기서 조합을 짜는데 있어 따로 노하우가 있는지가 궁금합니다.GradientBoostingClassifier(max_depth=6, min_samples_leaf=10, min_samples_split=5, n_iter_no_change=5, random_state=43)예를 들어 위와 같은 하이퍼파라미터들이 있을때 max_depth, min_samples_leaf, min_samples_split 등 여러 파라미터의 범위가 따로 안주어져 있으므로 각각 1~무한 까지 설정이 가능하다고 생각됩니다.물론 현실적으로 다 진행하는 것은 불가능 하다고 생각하지만 GridSearchCV 를 통해 하이퍼 파라미터를 튜닝하는데 있어 어느정도 범위를 빠르게 정하는 방법이나 일반적으로 행하는 절차들이 있을 것 같아 질문드립니다!!
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
diabates_data[zero_features].mean()
diabates_data[zero_features].mean() 을하면 0을 포함한 값들과 같이 평균처리가 된다고 생각합니다. 그렇다면 실제 평균과 가까이 구하려면 0을 빼고 해야하나요?바쁜시간 쪼개서 답변해주셔서 감사합니다.
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
One class classification (anomalies detection)
안녕하세요 선생님!코딩 입문자인 제가 어쩌다가 회사에서 머신러닝 프로젝트를 맡게 되어 여기저기서 도움을 구하다가 선생님 강의를 찾게 되어 열심히 따라가는 중입니다. 어렵지만 쉽게 설명해주셔서 정말 도움이 많이 됩니다.수업 내용 참고해 가면서 드디어 ML 모델을 제 프로젝트에도 적용해보려고 시도했는데요. 데이터를 가만히 들여다보니 제가 가진 데이터는 one class classification, 그러니까 anomalies detection 을 하는 모델을 만들어야 하는 것으로 생각되었습니다. (imbalanced data, 아주작은 비정상 샘플 (혹은 없음) vs 많은 정상 샘플).질문: 수업 내용 중에서는 신용카드 사기예측 분석 부분이 가장 잘 맞을 것 같아 맞춰서 적용해보는 중인데요. 만약 정상 샘플만 존재해도 one class classification 이 가능한지 궁금하구요. 또한, 제가 가진 데이터와 같은 One class classification (anomalies detection) 시 제가 집중해야 할 수업 부분과 해당 분석을 위한 데이터 준비할 때 주의사항, 추천모델, 평가 방법에 대한 조언을 부탁드리겠습니다.
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
LightGBM의 boosting 파라미터 관련
언제나 좋은 강의 감사드립니다. 강의와 교재에 LightGBM 의 boosting 파라미터는 주로 Default 값인 gbdt만 사용하였는데요, 교제(개정2판 기준 248Page) 및 docs에 보면 Random Forest도 가능하다는 내용이 있습니다. 여태까지 Random Forest는 대표적인 bagging기법이라고 생가했는데 Boosting 파라미터에서 선택하게 될 수 있어 이럴 경우 어떻게 동작이 되는지 궁금합니다. (이럴경우 경사하강법을 사용을 하지 않는건가요? 그럼..LightGBM을 써야 하는이유가 없어 보이기도 하고... 뭔가 혼란이 와서 문의 드립니다^^;;다시 한번 좋은 강의에 언제나 감사드립니다.
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
선형 회귀의 다중 공선성 문제 (3:15~)
안녕하세요, 선생님!유익한 강의 잘 듣고 있습니다. 3:15 에 설명해주신 선형 회귀의 다중 공선성 문제에서 피처간의 상관관계가 매우 높은 경우 분산이 매우 커진다고 설명해주셨는데,이때 분산이 커진다는 의미가 무엇인지 조금 더 설명해주실 수 있으실까요?
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
머신러닝 순서
안녕하세요 선생님! 저번에 feature importance에 대해 답변 너무 잘 받았습니다! 다름이 아니고 정확한 머신러닝 순서가 따로 있는지 궁금해서 이렇게 질문드립니다.이런 질문을 드린 이유로는 1) Train-test-split → 결측치 처리 → oversampling → scaler → model 2) Train-test-split → 결측치 처리 → scaler → oversampling → model위의 2가지 경우의 성능이 많이 차이가 나서 질문을 드리게 되었습니다!
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
실제 데이터 One hot encoding
먼저 항상 수업 잘 듣고 있고 감사하다고 말씀드리고 싶습니다! 선생님의 수업을 듣고, 혼자서 해당 데이터를 가지고 kaggle에 직접 제출까지 해보고 싶어 데이터 전처리하는 도중 문제가 발생해 질문 드립니다. 강의에서는 train.csv만을 가지고 전처리를 해서 문제가 없었지만, 실제로 제출을 위해선 test.csv도 train.csv 파일과 같이 전처리를 해야한다고 알고 있습니다. one hot encoding 하기 전 train.csv, test.csv의 피처 수는 각각 76, 75로 target 값을 제외하면 같은 수인데, get_dimmies함수를 적용하면 피처 수가 각각 272, 255로 다른 값으로 됩니다. train데이터로 훈련하고 예측을 하려면 test데이터의 피처의 수가 train데이터와 같아야한다고 알고 있는데, 이런 문제는 어떻게 해결해야할까요 그리고 왜 이런 문제가 발생하는 건가요?, 제 추측으로는 각 피처들의 결측 값의 유무로 인해 nan값이 있는 피처들이 컬럼이 하나 더 생겨 차이가 발생하는 것 같은데, 그렇다고 해도 어떻게 해결해야할지 감이 오지 않습니다..답변 기다리겠습니다!!
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
imblearn 관련
imblearn을 설치 후 실행 시 아래와 같은 오류가 발생합니다. (영상에서는 imblearn Version이 0.9.0인데, 저는 0.7.0으로 설치가 되었네요) 구글링으로 해결이 되지 않아... 해결방법을 문의드립니다.
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
업데이트 관련 질문입니다.
안녕하세요~! 강의 잘 듣고있습니다. 아랫분이 질문해주신 내용과 동일한 것인데, 경사하강법의 목적은 (w1, w0이 포함된 비용함수)를 최소화하고자, (비용함수를 w1, w0으로 미분한 값)이 감소하는 방향으로 업데이트를 하는 것이라고 하셨습니다. 그럼 w1로 편미분한 값 w1_update를 줄여가야하는데, w1_update = -(2/N)*learning_rate*(np.dot(X.T, diff)) → 이것이 음수니까, w1 - w1_update가 아니라 w1 + w1_update가 맞는것 아닐까요!? 왜냐면... w1+w1_update를 하게되면 w1가 더 커지게 되는게 아닐까 싶습니다. 다른분의 댓글에 수정하겠다고 하셔서... 더욱 헷갈리고 있습니다..^^... 잘 모르겠어서 일단은 건너뛰고 사이킷런으로 갔다가 다시 돌아왔는데... 다시 한 번 설명 부탁드립니다..!! 감사합니다.
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
선생님 안녕하세요 ㅎㅎ SQL, spark강의 관련조언을 좀 받앗으면 합니다 ㅎ
선생님 안녕하세요 현재 머신러닝강의부터 CNN강의까지 선생님강의를 듣고잇는 열혈팬입니다 ㅎ 선생님강의중에 SQL, spark등도 잇던데, 이에관해서는 아는게 전혀 없어서 조언받고 싶어서 이 사이트에서 질문을 드립니다. 알고싶은것은 각각의SQL, spark의 역할입니다 ㅎ(앞으로 강의 들을 생각이라서....) 1) SQL은 데이터 분석용이고 실제 목표값을 예측할수는 없고 목표값을 예측하기위해서는 머신러닝을 이해해야한다고 이해를 해도 되는지요? 2) spark 은 기업에서실제 빅데이터를 이용할경우 사용하는 도구로서 spark을 활용해서 머신러닝을 구현해야 한다고 이해를 해도 되는지요? (물론 데이터가 적을경우 엑셀파일로 받아서 파이썬으로 머신러닝을 구현하면 되지만...) 3) 데이터분석가로서는 최종목표를 spark등을 이용한 머신러닝을 구축하는것이 최종목표로 잡아도 되는지요? 바쁘시겟지만, 시간나실때 답변부탁드리겟습니다 ㅎ
- 해결됨[개정판] 파이썬 머신러닝 완벽 가이드
가까운 데이터에 의미
K-means Clustering 에서 가까운 데이터 포인트 라는 문장들이 나오는데 데이터들이 가깝다는게 어떤 의미인가요? 또 데이터들이 가까우면 왜 유사성이 높다는것을 유추할 수 있는건가요?
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
feature_importance에 관하여
안녕하세요!! 강의를 듣던 중 feature importance 에 대해 추가적으로 궁금한게 생겨서 질문드리게 되었습니다! 왜 feature importance 는 절대적인 feature selection 기준이 될 수 없는가? 에 대한 질문에 대해 feature importance는 트리 기반의 정보를 쪼개는 레벨의 중요성을 나타낸 것이라고 하셨습니다. 같은 모델이라 하더라도 트리기반모델의 하이퍼파라미터를 바꿀때마다 feature importance가 계속 달라지던데 이러한 현상은 feature importance가 한 트리기반의 모델을 쪼개는데 중요한 역할을 한 feature대로 줄을 세웠기 때문이라고 이해를 하면 될까요? 이러한 관점이라면 feature importance는 특정 모델의 특정 파라미터에서만 적용시킬 수 있으므로 절대적인 feature selection이 될 수 없다 이런식으로 이해를 하면 될까요? feature selection을 할 때 주로 취하는 방법 또한 궁금합니다!
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
Mac에서 Visual Studio 2022용 빌드도구 설치 관련
안녕하세요! "사이킷런 업그레이드 수행 및 XGBoost와 LightGBM 설치" 를 듣고 있습니다. Mac에서 "Visual Studio 2022용 빌드 도구"가 설치 되지 않는데 (윈도우 전용프로그램) 어떻게 진행하면 될지 문의 드립니다.
- 해결됨[개정판] 파이썬 머신러닝 완벽 가이드
다중공선성 제거를 위한 VIF 10 이상 피쳐 제거
안녕하세요~! 본 강의에서는 사용되지 않았지만 다중공선성 제거를 위해 VIF 10 이상인 피쳐들은 drop하는 게 성능에 더 좋다고 하여 해당 방법을 적용하였는데 오히려 RMSE값이 0.3~0.5 정도 커지는 결과가 나타났습니다.(선형회귀, 릿지, 라쏘) VIF 제거 외에는 강의해주신 내용도 거의 유사한 방식으로 전처리 적용하였습니다. 1. VIF 10 이상인 피쳐들을 제거하는 게 예측률 향상에 무조건 좋은 것은 아닌건가요? 2. 만약 그렇다면 다중공선성 제거를 위한 추가적인 기법이 있을 것 같은데, 대표적으로 활용되는 방법이 어떤게 있을까요? 3. 마지막으로, VIF 10 이상인 피쳐들은 제거하여 성능이 향상되는 데이터셋의 대표적인 예와, 적용이 잘 안되는 예가 있을까요? 이번에도 애매한 질문을 드리는 점 죄송합니다. 아시는 수준에서 답변 주시면 정말 감사하겠습니다^^
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
생성한 예측모델로부터 최적 조건을 구하는 방법이 있을까요?
안녕하세요 선생님, 강의를 보던 중 질문이 있어 이렇게 글 남깁니다. 1. 회귀 실습에서 여러 가지 모델로 성능을 측정해 보았습니다. 각각의 방법에서, MAE, MSE 등의 지표로 모델의 정확도를 측정합니다. 그런데 혹시, 이렇게 만든 모델들을 이용해서, 최고의 결과를 도출하는 지표들을 역으로 얻어내는 방법이 있을까요? 가령, XGBoost로 자전거 대여에 관한 모델 A을 만들었다고 가정해보겠습니다. 이 모델 A가 "B대 만큼의 자전거 대여량" 이 존재할 수 있다고 예측하였다고 한다면, 이 B를 도출해 내는 조건 C (여기엔 train input으로 주어졌던 holiday, workingday, weather, temp 등의 값이 들어있을 것으로 생각합니다.) 를 구해낼 수 있을까요? 만약 가능하다면, scikit-learn 이나 XGboost 등의 framework에서 내장함수가 존재하는지 알고 싶습니다.(구글링을 열심히 해 보았는데 관련 내용을 찾지 못하였습니다. 심지어 이렇게 조건들을 역으로 도출해내는 과정을 어떻게 부르는지 조차 모르겠습니다ㅠ) 2. 로컬에서, bike sharing demand 예제의 마지막 쉘에서 XGboost의 문제인지 쉘이 작동하지 않습니다. 버전에 따라 ndarray로 바꾸라는 말씀을 해주셔서 다음과 같이 코드를 고쳐보았지만, 실행되지 않습니다. 실습환경은 m1 mac, miniforge3 (m1에 anaconda가 호환되지 않을 때 설정한 환경이라 miniforge3를 이용중입니다.), python=3.9, numpy=1.22.3, pandas=1.4.2, xgboost=1.6.0 (1.5.x, 1.6.1 모두 작동하지 않았습니다.) 입니다. 혹시 제가 ndarray로 변환하라는 말씀을 제가 잘못 이해한것인지, 아니면 xgboost의 문제인건지 궁금합니다. </> from sklearn.ensemble import RandomForestRegressor, GradientBoostingRegressor from xgboost import XGBRegressor from lightgbm import LGBMRegressor # 랜덤 포레스트, GBM, XGBoost, LightGBM model 별로 평가 수행 rf_reg = RandomForestRegressor(n_estimators=500, verbose=10) gbm_reg = GradientBoostingRegressor(n_estimators=500, verbose=1) xgb_reg = XGBRegressor(n_estimators=500, verbose=0) lgbm_reg = LGBMRegressor(n_estimators=500, verbose=1) for model in [rf_reg, gbm_reg, xgb_reg, lgbm_reg]: # XGBoost의 경우 DataFrame이 입력 될 경우 버전에 따라 오류 발생 가능. ndarray로 변환. get_model_predict(model, np.array(X_train.values), np.array(X_test.values), np.array(y_train.values), np.array(y_test.values),is_expm1=True) <에러 메세지> --------------------------------------------------------------------------- XGBoostError Traceback (most recent call last) /Users/h/Documents/dev/machine_learning/PerfectGuide-master/5장/5.9 Regression실습-Bike Sharing Demand.ipynb 셀 27 in <cell line: 11>() 9 lgbm_reg = LGBMRegressor(n_estimators=500, verbose=1) 11 for model in [rf_reg, gbm_reg, xgb_reg, lgbm_reg]: 12 # XGBoost의 경우 DataFrame이 입력 될 경우 버전에 따라 오류 발생 가능. ndarray로 변환. ---> 13 get_model_predict(model, np.array(X_train.values), np.array(X_test.values), np.array(y_train.values), np.array(y_test.values),is_expm1=True) /Users/h/Documents/dev/machine_learning/PerfectGuide-master/5장/5.9 Regression실습-Bike Sharing Demand.ipynb 셀 27 in get_model_predict(model, X_train, X_test, y_train, y_test, is_expm1) 6 def get_model_predict(model, X_train, X_test, y_train, y_test, is_expm1=False): ----> 7 model.fit(X_train, y_train) 8 pred = model.predict(X_test) 9 if is_expm1 : File ~/miniforge3/envs/tf/lib/python3.9/site-packages/xgboost/core.py:532, in _deprecate_positional_args.<locals>.inner_f(*args, **kwargs) 530 for k, arg in zip(sig.parameters, args): 531 kwargs[k] = arg --> 532 return f(**kwargs) File ~/miniforge3/envs/tf/lib/python3.9/site-packages/xgboost/sklearn.py:931, in XGBModel.fit(self, X, y, sample_weight, base_margin, eval_set, eval_metric, early_stopping_rounds, verbose, xgb_model, sample_weight_eval_set, base_margin_eval_set, feature_weights, callbacks) 880 """Fit gradient boosting model. 881 882 Note that calling ``fit()`` multiple times will cause the model object to be (...) 928 Use `callbacks` in :py:meth:`__init__` or :py:meth:`set_params` instead. ... [bt] (6) 7 _ctypes.cpython-39-darwin.so 0x0000000105202a80 PyCFuncPtr_call + 1176 [bt] (7) 8 python3.9 0x0000000104414acc _PyObject_MakeTpCall + 348 [bt] (8) 9 python3.9 0x000000010452090c call_function + 724 긴 글 읽어주셔서 감사합니다.
- 해결됨[개정판] 파이썬 머신러닝 완벽 가이드
Boston House 실습 표준화, 이상치제거 관련 질문입니다.
안녕하세요! ML공부하면서 강의 정말 많이 도움이 되고 있습니다^^ ㅇ skew를 사용한 왜곡도 제거부분에서(강의 8:00~10:00 부분) 1. skew 대신 standardscaler를 사용해 표준화 시키는 것은 단점이 있나요? (정규분포를 만들어주기 때문에 skew보다 더 정리를 잘해줄것 같은 생각이 듭니다.) 2. 또한 log를 씌워 정규분포와 비슷하게 만들어준다고 하셨는데, 이부분 또한 standardscaler를 적용하면 안되는 걸까요? ㅇ GrLivArea 이상치를 제거하는 부분에서(강의 14:00~18:00 부분) 1. 다른 이상치 제거방법(사분위수)을 써도 되는지? 2. 이상치 제거할 때 테스트 데이터에 이상치가 있는지 확인하고 제거하라고 하셨는데 학습검증단계에서 테스트 데이터를 참고해도 되는건가요? ㅇ 전처리 과정 순서를 기본전처리(null, 범주형 변환 등) → standardscaler → 이상치제거(IQR 등) → minmaxscaler 이렇게 기본틀로 잡고 머신러닝을 진행하고 있었는데 돌리는 모델이나 데이터별로 달라져야할까요? ㅇ 마지막으로, house price 타켓 컬럼을 log변환해서 학습을 진행을 하셨는데, 타겟값만 log를 씌워주고 다른 값들은 log를 안씌운 상태에서 학습을 하게되면 오류(수치상의 차이 기반)가 발생할 가능성은 없을까요? 질문이 난잡하긴 한데 간략하게나만 답변 주시면 감사하겠습니다! 감사합니다.