월 19,800원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 해결됨[개정판] 파이썬 머신러닝 완벽 가이드
.str[:1] 의 정확한 기능이 궁금합니다.
위에서 df['Cabin'].str[:1]의 정확한 기능이 궁금합니다.'cabin' 컬럼의 데이터들 중에 첫번째 글자만 떼어서 다시 저장한거 같은데, str함수의 기능이 문자로 변환해주는 거라고 인터넷에서 봐서요..아래와 같이 질문드립니다.str의 기능, 문자로 바꿔주는게 맞다면 왜 문자로 바꾸는지?[:1]은 단순히 첫번째 글자를 추출하기 위한 인덱싱이 맞는지?첫번째 글자만 추출하기 위해 다른 방법은 없는지 궁금합니다.
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
베이지안 최적화에서 목적 함수 내부 로직 질문입니다.
베이지안 최적화에서는 cross_val_score을 쓰셨고, 산탄데르에서는 Kfold를 쓰셨는데 혹시 이유가 있을까요? 저는 조기 종료 때문에 Kfold를 사용했다고 생각하는데 맞나요? 아니면 데이터의 양 차이 때문인가요? 감사합니다.
- 해결됨[개정판] 파이썬 머신러닝 완벽 가이드
stacking 모델 피클 저장 후 사용
안녕하세요 강사님.강의 잘 보고 많이 배우고 있습니다.업무에 활용하기 위해 복수의 모델을 스태킹하여 해당 모델을 피클로 저장했습니다. 스태킹 모델은 각 개별모델의 예측값을 다시 학습데이터로 사용한다는 사실을 간과하고 이를 사용하고자 해서 진행을 못하고 있는 상황입니다.실시간으로 쌓이는 피쳐 데이터(일반 피쳐데이터)를 활용해서 해당 모델에 넣고 예측값을 받아보고 싶은데, 피클로 저장한 스태킹 모델을 활용할 수 가 없더라구요. 개별모델보다 스태킹한 모델의 성능이 조금 더 좋아서 스태킹 모델을 활용하고 싶은데, 어떻게하면 활용할 수 있을까요?
- 해결됨[개정판] 파이썬 머신러닝 완벽 가이드
4.4 random forest부분, GridSearchCV 질문
안녕하세요. 강의 잘 듣고 있습니다. 감사합니다. 강의 내용을 실습하던 중 궁금한 점이 생겨 질문 남깁니다. 4.4 랜덤포레스트를 실습하던 중, 그리드서치CV가 어떻게 작동하는지 궁금하여 여러번 실험해보다가, 답을 찾지 못해 교수님께 여쭙습니다. 제가 생각한 것은 이렇습니다. 먼저 데이터셋을 나눈 뒤,random forest classifier를 하나 생성하여 f1스코어를 측정합니다.(처음엔 accuracy로 했었는데 같은 결과였고, f1스코어를 선호하여 바꾸었습니다) 그후 GridSearchCV의 성능향상정도를 측정하기 위해random forest classifier를 동일한 random_state로 생성하여,max_depth, min_samples_split, min_samples_leaf 3가지 그리드 파라미터를 설정하여GridSearchCV를 수행했습니다. 이후 같은 X_test셋으로 predict하여 f1스코어를 측정하였는데,baseline이 되는 첫번째 랜덤포레스트 클래시파이어보다 성능이 떨어지는 경우가 생겼습니다. 샘플셋도 같고, 그리드파라미터 설정도 baseline estimator의 파라미터를 포함하여 설정했는데,GridSearchCV() 어떻게 작동하길래 더 f1스코어가 더 낮게 파라미터를 선택하는 것일까요? 제가 놓치고 있는 부분이 있을 것 같은데, 무엇인지 알려주시면 정말정말 감사드리겠습니다. 코드와 실행결과를 첨부합니다. (10번정도 돌린다고 하면, 6번정도는 두 f1스코어가 같고, 3번정도는 GridSearchCV의 best_estimator_가 더 높았으며, 1번정도는 첫번째 GridSearchCV를 적용하지 않은 랜덤포레스트가 더 높았습니다. 이 마지막 경우가 생기는 원인이 궁금합니다.) from sklearn.datasets import load_breast_cancer from sklearn.model_selection import train_test_split from sklearn.ensemble import RandomForestClassifier from sklearn.metrics import f1_score from sklearn.model_selection import GridSearchCV import random import pandas as pd # 위스콘신 유방암 데이터 로드, train_test_split으로 데이터 나누기 cancer = load_breast_cancer() X_train, X_test, y_train, y_test = train_test_split(cancer.data, cancer.target, test_size=0.2) # 대조군과 변수를 통일시키기 위해 같은 난수 이용 rs = random.randrange(1,50) # 기본설정 랜덤포레스트 돌려보기. 디폴트 n_estimators=100 rf = RandomForestClassifier(n_jobs=-1, random_state=rs) # 모든 코어 사용 rf.fit(X_train, y_train) pred = rf.predict(X_test) f1 = f1_score(y_test, pred) print('랜덤 포레스트 f1스코어: {0:.4f}'.format(f1)) print('\trf max_depth:', rf.get_params()['max_depth']) print('\trf min_samples_split:', rf.get_params()['min_samples_split']) print('\trf min_samples_leaf:', rf.get_params()['min_samples_leaf']) print('\trf random_state:', rf.get_params()['random_state'], '\n') # 그리드서치 적용해보기 # 비교를 위해 디폴트값인 None, 2, 1을 모두 포함했다. params = { 'max_depth': [None, 4,9,16], 'min_samples_split':[2,6,12], 'min_samples_leaf':[1,4,8] } # 같은 random_state로 RF 랜덤포레스트 재생성 rf = RandomForestClassifier(n_jobs=-1, random_state=rs) grid = GridSearchCV(rf, param_grid = params, n_jobs=-1, scoring='f1') grid.fit(X_train, y_train) # refit된 rf에 테스트데이터를 돌려보기 pred = grid.best_estimator_.predict(X_test) f1 = f1_score(y_test, pred) print('GridSearchCV 후 refit된 RF f1스코어: {0:.4f}'.format(f1)) print('\tgrid max_depth:', grid.best_params_['max_depth']) print('\tgrid min_samples_split:', grid.best_params_['min_samples_split']) print('\tgrid min_samples_leaf:', grid.best_params_['min_samples_leaf']) print('\trf random_state:', rf.get_params()['random_state'])
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
교재 해외 배송 혹은 e-book 출간
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 강의 내용을 질문할 경우 몇분 몇초의 내용에 대한 것인지 반드시 기재 부탁드립니다. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요! 해외 수강생입니다.몇 달 전 올라온 e북 출간 관련 질문에 계획 없으시다는 답변은 보았습니다만,혹시 개정판을 출간하시면서 e북 관련해 재고하신 부분은 없는지 여쭙고 싶습니다.아니면 인터넷 서점 등에서 해외 배송이라도 가능하도록 하실 계획은 없으신지요..! 양질의 강의 감사드리며, 반복되는 질문에 번거로우시겠으나그만큼 강의에 관심이 많아서 그러는 것이니 너그러이 양해 부탁드리겠습니다^^;;
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
train_test_split()와 StratifiedKFold() 차이
예제에서는 DecisionTreeClassifier 알고리즘의 정확도를 검증하기 위해train_test_split()와 StratifiedKFold()를 사용했습니다.둘다 랜덤으로 학습데이터와 테스트데이터를 선택하는데요,영상 2:50 쯤의 그림으로 이해하기로는 학습 세트 4/5선택을 5번 하는 것으로 보이는데요(StratifiedKFold의 경우 랜덤으로 선택)결국 train_test_split(test_size=0.2)를 다섯번 시행한 후 평균을 낸것과 동일한 것 아닌가요?두 검증 방법의 본질적인 차이는 무엇인가요? *데이터가 충분하고 정규분포라고 할 때 결국은 동일한 결과가 나오지 않을까 해서요.
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
XGBoost: Extra vs. Extreme
강의 잘 듣고 있습니다. 그런데 XGBoost 설명하실 때 eXtra GB라고 소개하셨는데, 정확 것인지 문의드립니다. Google에서 검색되는 대부분의 사이트/블로그에서는 eXtreme GB라고 표현하고 있습니다. Chen의 원논문에는 eXtra인제 eXtreme인지 명시가 안되어 있는 듯 하네요. 감사합니다.
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
lightgbm version 관련하여
안녕하세요. lightgbm 설치 관련하여 오류가 발생하여 연락드립니다. 선생님께서 말씀해 주신 파트를 따라서 설치를 해 보았는데요. lightgbm version이 3.2.1로 설치가 되며, 업그레이드가 되지 않습니다. 구글을 통해 찾은 여러 답변으로 업그레이드를 하려고 하였지만, 변화가 없습니다. 혹시 이런 경우 어떻게 해야 하나요?
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
k-fold 교차 검증 부분 질문 드립니다!
안녕하세요! 강의 너무 재밌게 잘 보고 있습니다! k-fold 교차검증 부분 듣다가 스크린샷 코드에 궁금한 점이 있어서 질문드립니다!스크린샷 처럼 StratifiedKFold.split() 을 이용해서 데이터를 나누고 for문으로 직접 K-fold 방식을 수행할 때, dt_clf 모델이 for문의 이전 iteration에 수행한 학습을 누적해서 학습을 하는거 같은데 이렇게 하는게 맞는 것인지 궁금합니다.제 생각엔 0번 iter 수행 후 dt_clf 값 초기화, 1번 iter 수행 후 dt_clf 값 초기화, ... 4번까지. 이렇게 수행되어야 한 K-fold 수행 내에서 "학습에 사용한 데이터로 validation" 하는 것을 방지할 수 있을 것 같습니다. 물론 같은 데이터로 여러 epoch을 수행하면 어차피 학습한 데이터가 누적해서 validation으로 사용될 것 같기도 한데... 어떤거 맞는 방법인지 실제 코드는 어떻게 수행되는지 설명 부탁 드립니다.또한, 아래에 나오는 cross_val_score() 함수, GridSearchCV() 함수 에서는 어떻게 수행하는지 알려주시면 감사하겠습니다.좋은 강의 감사합니다!
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
오디오 사운드 문제 있는부분 알려달래서 알려드립니다.
공부 관련 문제가 아니라 안올리려고 했는데 올려달래서 올려드립니다.우선 지금까지 들었던 모든 영상 사운드에 문제 있습니다.몇몇 부분만 색출해서 말슴드리겠습니다.7분53초 : 정적으로 라고 할 때 '로'가 갑자기 사라집니다.7분55초 : 값의 인덱스를 좀 적어줘야되는 에서 '는'이 사라집니다.8: 00 : 조건에 해당하는거 가져와라 이부분도 소리가 갑자기 이상해지죠. 직접 들어보세요. 소리가 어떤가...다른 영상들도 다 천천히 들어보세요. 소리가 어떤가...심심하면 소리 먹고, 핀트 날라가고 답답해서 들을수가 없어요.사운드가 이렇게 심한 영상 처음입니다. 노이즈캐슬링 필터 잘못 사용하면 딱 이렇게 소리가 날라갑니다.
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
코드 에러 질문 5.7 로지스틱 회귀
안녕하세요? 코드 하나하나 따라가고 있는 초보자입니다.강의 5.7 로지스틱 회귀 (책 p 352~353) 코드 입력을 똑같이 하고 있는데요. 마지막 print 문장 실행 후 아래와 같이 나옵니다. 도움 부탁드립니다.NameError : name 'accuracy_score' is not defined
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
최종 분류 모델을 생성할 때, 어떤 데이터를 사용해야 하는지 궁금합니다.
안녕하세요.강사님의 여러 강의를 듣고 큰 도움을 받고 있습니다. 제가 궁금한 것은, 실제 업무 영역에서 분류모델을 적용하는 과정입니다. 모델을 생성한 후, 실제 타겟값을 알 수 없는 현실데이터에 적용을 해야 할 때, 어떤 데이터로 만든 모델을 적용해야 하는지 궁금합니다. 예를 들어서 강의에 따르면, 랜덤포레스트의 경우, 구축된 데이터 중에서 학습/테스트를 나누고 학습데이터를 가지고 모델을 만들고 테스트데이터를 가지고 최종정확도 성능을 확인하잖아요. 그리고 나서 이제는 타겟값을 알 수 없는 데이터에 적용을 하는 거잖아요. 그때 사용하는 머신러닝모델은 테스트데이터에서 높은 정확도가 나온 '학습데이터로 만든 모델'을 적용하는 거라고 생각하는데요.그런데, 최종적으로 높은 성능을 보인 모델의 하이퍼파라미터값을 학습데이터와 테스트데이터를 다 합친 것에 적용해서 최종 모델을 생성하고 실제로 타겟값을 알 수 없는 모델에 적용하는 건 괜찮은 걸까요? 궁금해서 여쭤봅니다. 항상 감사드립니다.
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
랜덤포레스트 선형성
안녕하세요. 강의 잘 듣고 있습니다.다름이 아니라 랜덤포레스트에 대해 궁금한 점이 있습니다. Q1로지스틱회귀나 선형회귀모델의 경우 선형성을 전제로 한 모델이기때문에 피처 인코딩 시 원핫인코딩을 해준다고 하셨는데요. 랜덤포레스트 모델의 경우 선형성에 영향을 안 받나요? 랜덤포레스트의 경우 라벨인코딩을 적용해도 아무 문제가 없는 것 같아서요. Q2그리고 여기서 말하는 선형성이라는 게 간단하게 어떤 것을 말하는 것일까요? 입력변수에 대해 출력변수가 선형적으로 비례할 수 있음을 의미하는 것일까요? 답변 부탁드립니다. 감사합니다.
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
예측정확도가 다른 이유
4분 40초쯤 위 코드의 최적 하이퍼 파라미터 값인 max_depth = 16, min_sample_leaf = 6, min_samples_split = 2 을 적용해 예측을 한 예측정확도가 0.9260으로 위에서 측정한 최고 예측 정확도인 0.9165보다 높아진 이유가 뭔가요? 최적 하이퍼 파라미터 값과 같은 하이퍼 파라미터 값으로 예측을 하면 최고 예측 정확도와 같은 정확도를 보여야하는것 아닌가요??
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
아이템 기반 협업 필터링
11:27 이 시간대에 진행한 아이템-사용자 간의 유사도는 오직 평점으로만 유사도를 측정한것인데 godfather, The (1972)와 가장 유사한 영화에 godfather: Part II, The (1974)가 나온것은 그저 우연인것인가요? 다른 정보 없이 오직 평점으로만 유사도를 측정했는데 어떻게 저 둘이 유사도가 가장 높게 나온것인지 신기해서 질문드립니다.개인화된 예측 평점을 적용하고 mse로 평가를 하는 부분에서 사용자가 평점을 부여한 영화에 대해서만 예측 성능 평가를 하는 이유가 예측 오차범위가 크게 나타날까봐 그런것인가요?622쪽에 PREDICT_RATING() 함수는 사용자별 영화의 예측 평점을 계산하기 위해 해당 영화와 다른 모든 영화 간의 유사도 벡터를 적용한 것이기 때문에 많은 영화의 유사도 벡터를 이용하다 보니 상대적으로 평점 예측이 떨어졌다고 나오는데, 왜 많은 영화의 유사도 벡터를 이용하면 평점 예측이 떨어지는 것인지 이해가 잘 되지 않아서 쉽게 풀어 설명 좀 부탁드려도 될까요?
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
스태킹 모델 생성 후 새로운 데이터에 적용 문의드립니다.
안녕하세요 강사님, 스태킹 모델 관련 질문 다시한번만 드리겠습니다 ㅠ 현재 xgb,lgbm, 랜덤포레스트, 결정트리 4가지 모델에 대한 stacking 모델을 만들고자 합니다. 각 모델에 대한 학습은 완료되었으며, pkl 파일로 추출하였습니다 강의에 사용된 get_stacking_base_datasets() 함수의 경우 아래 예시처럼 y_train을 인자로 받고 있는데,xgb_train, xgb_test = get_stacking_base_datasets(xgb_clf, X_train, y_train, X_test, 7)만약 경연 등의 목적으로 정답이 주어지지 않은 새로운 데이터가 주어졌을 경우, y_train값은 존재하지 않게 되는데, 이럴 경우 어떤 식으로 예측 코드를 작성해야 할 지 감이 잡히지 않아 다시 여쭙게 되었습니다..!xgb_train, xgb_test = get_stacking_base_datasets(xgb_clf, X_train, y_train, X_test, 7) lgbm_train, lgbm_test = get_stacking_base_datasets(lgbm_clf, X_train, y_train, X_test, 7) rf_train, rf_test = get_stacking_base_datasets(rf_clf, X_train, y_train, X_test, 7) dt_train, dt_test = get_stacking_base_datasets(dt_clf, X_train, y_train, X_test, 7) Stack_final_X_train = np.concatenate((xgb_train, lgbm_train, rf_train, dt_train), axis=1) Stack_final_X_test = np.concatenate((xgb_test, lgbm_test, rf_test, dt_test), axis=1) lr_final = LogisticRegression() lr_final.fit(Stack_final_X_train, y_train) stack_final = lr_final.predict(Stack_final_X_test)
- 해결됨[개정판] 파이썬 머신러닝 완벽 가이드
예측정확도가 아닌 예측결과를 알 수 있나요?
머신러닝을 통해 하나의 데이터 값이 어느 값을 가질지 예측하는 결과를 알 수는 없나요?예를 들어 여러 붓꽃데이터를 학습시킨 다음에 하나의 붓꽃데이터를 준 후 기계가 이 붓꽃데이터가 어디에 들어가는지 판별하는것을 알 수 있나요?
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
하이퍼 파라미터 튜닝 관련 질문입니다.
안녕하세요.강의는 필요한만큼 듣고 내용을 실제 적용해 보는 중인데, 하이퍼파라미터 때문에 뇌가 터질것 같습니다.중구난방 흩어져있는 정보도 그렇고..파이썬래퍼와 사이킷런래퍼 이름 찾는것도 그렇고.. 뭐 그래도 이제 슬슬 정리는 되가고 있는데... 근본적인 문제에 도착했습니다.일단 튜닝 방법론으로 두가지를 생각했습니다.알려진 중요도와 상관관계에 따라 덩어리 별로 튜닝한다.- 진행하지 않은것은 디폴트로- 결과가 나온것은 명시적으로 픽스조절하려는 파라미터를 전체 튜닝 한 후 그중 높은 중요도 순으로 개별 튜닝한다.지금 돌려보고는 있는 중인데...(참 하세월이네요. ㅠ_ㅠ) 로그 찍히는걸 보고 있자니 의문이 드는 겁니다. 하이퍼파라미터가 독립적으로 작용하지 않고, 서로에게 영향을 주고, 과적합을 막기도 하고 있는데...1번의 경우는 먼저 진행한것들이 기타 파라미터들이 정해지지 않은 상태에서 튜닝이 되고... 그 뒤에 나머지 들이 정해진다면, 먼저 정해진 것이 나중에 정해진 것들에 영향을 받기에 다시 튜닝 해야하는거 아닌가? 그리고 초반에 튜닝 한것들을 이런 연유로 수정하고 나면 그 뒤에 것들도 다시 해야해서 결국은 무한 루프에 빠지게 됩니다.2번도 결국 비슷한 이야긴데... 전체를 적절히 튜닝하고 난 후에(전체적으로 조화로운 상태에서) 그중 특정 파라미터를 튜닝하는 것이 과연 맞는 것인지...(슈퍼컴퓨터를 사서 모든 경우의 수를 다 뒤지는게 정답일까요? ㅠ_ㅠ)어째건... 제가 궁금한 것은 내가 생각해낸 방법론은 과연 효율적인가? 그리고 무한루프 돌지 않고 적정선에서 빠져나가는 방법이 있을까? 입니다.아 그리고 lightbgm 기준으로 아래와 같은 3덩어리를 순서대로 튜닝한다 면 어떤 순서가 가장 다른 파라미터에 영향을 덜 받을 까요?1. learning_rate, num_boost_rounds2. max_depth , num_leaves3. etc강의 잘 들었고... CNN강의도 잘 듣고 있습니다.(CNN 파라미터 튜닝은 또 어떻게 할지 미리부터 걱정이네요. ㅠ_ㅠ) 진심으로 감사드립니다.
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
bike sharing 시각화 질문
안녕하세요. 강의 잘 듣고 있습니다.회귀 실습 1: 자전거 대여(공유) 수요 예측 - 0110분 49초 시각화 부분에서 질문이 있는데요. Q1for 문 아래에서 저는 estimator 파라미터에 아래와 같이 mean 을 명시해주고 실행해 봤는데sns.barplot(data = bike_df, x = feature, y = 'count', estimator='mean', ax = axe[row][col])=> TypeError: 'str' object is not callable가 발생합니다. 이유가 뭔가요..? seaborn.barplot 공식 문서에도 estimator 파라미터에 'mean' 으로 적혀있는 부분이 있는데 왜 오류가 나는 걸까요? 답변 부탁드립니다.감사합니다.
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
로지스틱 회귀 파라미터 질문
안녕하세요. 강의 잘 듣고 있습니다 :)로지스틱 회귀를 이용한 위스콘신 암 예측 모델 실습 강의5분 45초에서 로지스틱회귀 모델의 파라미터인 max_iter는 정확히 무엇을 의미하는 것이고, 무엇을 위해 있는 파라미터 인가요? 설명 부탁드립니다.감사합니다.