월 19,800원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
결정계수 함수 관련 질문 드립니다.
안녕하세요! 강사님! 교재로 공부하다가 인강도 있다고 들어서 요번에 수강하게 된 학생입니다! 다름이 아니라 공부하면서 랜덤포레스트 회귀 모델을 한번 설계해보고 있는데요. 모델을 학습하고 예측한 후에 평가하는 과정에서 R2(결정계수)가 너무 큰 음수가 나와서 이게 무엇을 의미하는지 또 어떠한 점들이 잘못됐는지 궁금하여 이렇게 질문을 남깁니다. RMSE와 R2 결과 사진: 궁금한 점으로는 1. 회귀 모델에서 R2가 매우 큰 음수로 나온다는 것은 무슨 의미인가요? 2. 사이킷런에서 랜덤포레스트회귀 관련 함수중에 score함수도 R2를 계산해주는 함수인거 같던데 metrics의 r2_score 함수와 같은 기능을 하는건가요? 같다는 전제하에 두 함수를 사용해봤는데 위 사진처럼 값이 너무 다르게 나와서 무엇이 잘 못 됐는지 궁금합니다.. ㅠㅠ 3. 마지막으로 랜덤포레스트 회귀 score 함수를 잘 못 사용한거라면 혹시 입력한 매개 변수를 잘못 입력한건지 궁금합니다.. 다음 사진과 같이 X_test, y_test로 설정한것이 맞게 한건가요..? 항상 좋은 강의 들려주셔서 감사합니다..! 답변 부탁 드립니다 ㅠㅠ!!
- 해결됨[개정판] 파이썬 머신러닝 완벽 가이드
Truncated SVD, PCA, NMF 관련 질문 드림
강사님 안녕하세요? 이번단원에서 유독 질문을 많이 드리게 되네요 ^^;; 질문1) Feature engineering 방법론 측면 TSVD-PCA 활용 관련 경우의 수 Truncated SVD 의 경우 데이터 표준화를 한 경우는 표준화한 PCA 와 동일해 진다는 부분은 잘 이해하였습니다. 다만 이것저것 돌려 보니, 표준화를 하지 않은 Truncated SVD 는 표준화 한 경우에 비해 데이터 경향도 좀 바뀌는 듯 한데요, 그럼 다양한 feature engineering 방법론 관점에서 아래 3가지 다른 approach 가 가능하다고 정리하면 될지요? 1) 표준화를 하지 않은 Truncated SVD 2) 표준화를 한 Truncated SVD = 표준화를 한 PCA (동일결과) 3) 표준화를 하지 않은 PCA 3)번의 경우도 사실 2)번과 경향은 동일하고 scaling 만 바뀌는 case 이긴 하지만, 원본 변수의 scaling 에 따른 가중치 효과가 있을 것이므로 예측 모델의 성능에도 영향이 있을 듯 하고.... 1) 번은 아래 그래프처럼 경향자체가 많이 달라져서 역시 모델 성능 차이를 줄 수 있을 듯 해서 입니다 (경우에 따라 모델 성능개선을 기대해 볼 수 도 있는) 질문 2) NMF 의 개념 및 componet 개수 가이드라인 NMF 역시 결국은 다변량 변수로 정의되는 초공간에서의 좌표 축을 회전시켜서 새로운 측면의 변수를 뽑아내는 개념이 아닐까... 라고 이해를 해 보았는데요, 인자분석 (Factor Analysis) 과 유사한 개념이라고 이해하면 될지.. 질문 드립니다. Factor Analys 에서도 차원을 줄이되 합성 feature 를 추출해서 포괄적인 상위개념의 변수를 정의해서 모델링을 하거나, 데이터를 해석하는 개념으로 이해하고 있어서... NMF 도 이와 유사한 개념이 아닐까 (물론 계산 과정이나 결과물 자체는 다르겠지만) 생각이 들어서요~ 다만 본 단원 실습인 붓꽃의 4개 feature 자료에 대해서 component 개수를 제약두지 않고 NMF 를 돌렸을 때는 4개의 신규 feature 가 나오던데요, 아마도 원본 데이터의 차원 수만큼 new feature 가 나오는 것으로 이해가 됩니다. PCA 나 인자분석 (FA) 에서는 주성분분산 크기를 가지고 extract 된 feature 의 개수를 가늠하는데, NMF 의 경우 feature 개수를 가늠하는 가이드라인이 있을지.. (예제에서는 두 개로 하셨는데, 그 이유에 대한 설명이 있지는 않아서요~) FA 는 PCA 와 달리 new feature 간 중요도 차이 없이 모두 평등한데, NMF 도 extract 된 new feature 별 중요도가 있을지 혹은 FA 와 같이 모든 변수의 중요도가 동일한지... 도 궁금합니다.
- 해결됨[개정판] 파이썬 머신러닝 완벽 가이드
PCA 의 적용 방안 - 전체 feature vs. 일부 feature
강사님, 안녕하세요? 좋은 강의 항상 감사드립니다. PCA 적용 실습 사례를 보다가 궁금한 점이 있어 질문을 드립니다. 본 단원 신용카드 실습 예제에서 전체 feature 에 대해서 PCA 를 진행하여 차원축소를 시도했을 때 변수를 줄여 효율성을 높이되 모델 성능에서는 약간의 손실이 발생하였는데요, 전체 feature 에 대한 PCA 적용이 아닌, 물리적인 의미에 유사성이 있으면서도 서로 상관도가 높은 feature 들끼리만그룹을 만들어서 feature 그룹 별 PCA 를 진행하는 경우, 변환된 PC score 중 변동성이 높은 상위 feature 일부만 선택하더라도 모델의 예측성능이 향상될 가능성이 있지는 않을지 문의드립니다. 예를 들어 PAY0~PAY6 끼리 묶어서 첫번째 PCA 를 돌리고, BILL_AMT1~BILL_AMT6끼리만 묶어서 두번째 PCA 를 돌려서 전체 데이터셋의 feature 간 다중공선성을 없애는 방식으로 PCA 를 활용하는 방법을 문의드리는 것이구요, 본 예제에서 사용된 신용카드 데이터셋을 가지고 이렇게 변환해서 feature 재정의를 한 경우와 하지 않은 경우에 대한 모델 예측성능을 비교해 보면 train / test set 분류 상황에 따라서 유사하거나 약간 좋아지는 경향도 보이는 것도 같은데... 예제를 가지고 해 본 것이다보니 .. 현업 데이터분석에 활용시 이렇게 접근하는 것이 실제로 의미가 있는 접근 방법일 수 있는 것인지, 혹은 방법론 상 문제는 없을지요..? (전체 feature가 아닌 부분적인 feature 집합에 한정한 PCA 적용 방안) 감사합니다. from sklearn.preprocessing import StandardScaler from sklearn.decomposition import PCA credit_ds = pd.read_csv('pca_credit_card.csv', header=1) # 1은 연체, 0은 연체 아님 SS_pay = StandardScaler() SS_bill = StandardScaler() pca_pay = PCA() pca_bill = PCA() SS_pay.fit(credit_ds.iloc[:,5:11]) pay = SS_pay.transform(credit_ds.iloc[:,5:11]) pca_pay.fit(pay) pay_transformed = pd.DataFrame(pca_pay.transform(pay), columns=['pay_PC1','pay_PC2','pay_PC3','pay_PC4','pay_PC5','pay_PC6']) credit_ds.iloc[:,5:11] = pay_transformed SS_bill.fit(credit_ds.iloc[:,11:17]) bill = SS_bill.transform(credit_ds.iloc[:,11:17]) pca_bill.fit(bill) bill_transformed = pd.DataFrame(pca_bill.transform(bill), columns=['bill_PC1','bill_PC2','bill_PC3','bill_PC4','bill_PC5','bill_PC6']) credit_ds.iloc[:,11:17] = bill_transformed credit_ds['class'] = credit_ds['default payment next month'] credit_ds = credit_ds.drop(['ID', 'default payment next month'], axis=1) plt.figure(figsize=(15,15)) sns.heatmap(credit_ds.corr(), annot = True)
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
추천시스템을 사용자 피드백을 받아서 성능을 향상 방법에 대해.
넷플릭스, 왓챠, 유튜브, 페이스북 등 많은 기업들이 추천 알고리즘을 사용합니다. 그러면 사용자가 콘텐츠에 대해 평점을 매기고, 영상을 볼 때 마다 로그를 기록하면, 처음부터 재학습을 시켜서 추천을 해주는건가요?
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
음..강의내용은 아니지만 머신러닝 관련 질문이 있습니다.
공부를 하다 의문이 들어서 남김니다. 이렇게 학습한 모델을 서비스화하고싶어서 앱 or 웹에 적용시키려면 서버에 올려야할텐데 관련 툴이 있나요? 도커나 쿠버네티스...같은? 궁금합니다!
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
random_state(seed값) 질문드립니다
모델마다 random_state값을 설정해주는데 (예를들어 train_test_split 에서) random_state이 바뀔때마다 모델도 약간바뀌는데 이때 모델이 너무민감하게 반응하여 결과가 다르면 어떻게 해결해야 되나요? 이문제를 cross-validation으로 해결하는건가요?
- 해결됨[개정판] 파이썬 머신러닝 완벽 가이드
학습된 모델 저장 질문
강사님 안녕하세요? 좋은 강의 항상 감사드립니다. 코로나 시국에 상황이 쉽지 않음에도 온라인상으로 이렇게 양질의 교육을 듣고 실습하고 sharpen the saw 할 수 있음에 소소한 행복을 느끼며 강의 수강하고 있습니다. ^^ 학습된 모델을 저장하는 방법에 대한 질문을 드립니다. 본 단원에서 다양한 모델들을 결합해서 우수한 모델을 만드는 것을 학습하였는데요, sklearn 에서 지원하는 다양한 머신러닝 알고리즘 (Decision Tree, RandomForest, LinearRegression, Lasso, Ridge 등) 이나, xgboost, lightgbm 등을 통해 최선의 모델을 학습시킨 경우에, 해당 모델을 저장해서 추후에 불러와서 사용할 수 있는 기능이 있는지.. 문의드립니다. (예측하고자 할 때마다 모델 학습을 시키는 것이 아닌) 예를 들어 tensorflow 의 keras 에서는 model.save()나, model.load_model() 과 같은 메소드를 지원해서 간편하게 저장하고 불러올 수 있는데, 유사한 기능이 본 단원에서 다루어진 다양한 머신러닝 알고리즘 모듈에서도 지원이 되는지.. 궁금합니다. 또한, 해당 알고리즘을 파이썬 software 가 아닌 일반 사용자 환경에 이식하기 위해서는 어떤 방법이 가능할지.. 이러한 구현을 위해 제가 어느 부분 (라이브러리?) 공부해 보아야 할지도 자문을 구해 봅니다. (예를 들어 학습된 모델을 생산라인의 설비에 이식을 할 때.. 실행파일 등으로 파이썬이 설치되지 않은 PC 에서 실행할 수 있도록 하는 방안 등) 감사합니다.
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
threshold 질문드립니다.
선생님 강의 덕분에 빅데이터 분야를 좀 더 효율적이게 공부할수 있어서 감사드립니다. 다름이 아니라 precisions, recalls, thresholds = precision_recall_curve(y_test, pred_proba_class1 ) 에서 임계값에 따른 precisions, recalls 이 반환 된다고 하셨는데 그렇다면 반환될때 threshold 갯수와 precisions, recalls의 개수가 같아야하지 않나요? 즉 threshold가 143개이면 그에따라서 rcalls와 precisions의 개수도 143개가 되야하는거 아닌가요? 왜 threshold가 143개일때 recalls와 precisions의 개수가 144개 인지 잘모르겠습니다
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
BaseEstimator 질문드립니다 !
선생님 MyDummyClassifier 에서 BaseEstimator의 역할이 궁금합니다.. 아무리 검색해도 잘모르겠네요 ㅠ 그리고 fit 메서드는 아무것도 학습을 하지 않는데 굳이 학습/검증 세트로 나눈다음 fit(X_train, y_train) 을 수행한 이유도 잘모르겠습니다 ㅠㅠ
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
BaseEstimator 함수에서 질문드립니다
def fit(self, X, y= None) 에서 y= None 은 무엇을 뜻하나요? my.fit(X_train, y_train) 은 위 함수에서 어떤 매개변수를 받은건가요??
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
선생님 타이타닉 인코딩 질문드립니다!
타이타닉에서 인코딩할때 기존의 선생님이 transform을 하는방식이 아닌 apply를 이용해서 한번 시도 했는데 이건 왜 값이 출력이 안되나요?? ㅠ 만약 apply를 사용해서 출력할려면 어떻게 코딩해야할까요?
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
산탄데르 데이터의 precision과 recall
안녕하세요 강사님 산탄데르 데이터와 신용카드 데이터를 실습해보며 질문이 생겼습니다 신용카드 데이터는 precision과 recall이 나쁘지 않게 나오는데 산탄데르 데이터에 대한 precision과 recall은 아래의 결과와 같이 굉장히 안좋습니다 원인이 무엇인가요?? 개선할 수 있는 방법이 있나요?
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
회귀실습1 강의 관련 질문
안녕하세요, 회귀실습 1 강의에서 Target만 히스토그램을 그리고 로그변환했는데, 피처값은 로그변환 하지 않는 별도의 이유가 있으신가요? 강의 말미에 타겟값의 정규분포가 중요하다고 하셨는데, 피처들의 skewness는 스코어에 큰 영향을 주지 않는 것 인가요? 아니면 피처도 모두 EDA해보고 skewed 되어있으면 전부다 로그 변환하는게 좋은가요?
- 해결됨[개정판] 파이썬 머신러닝 완벽 가이드
Ridge, Lasso vs. 데이터 표준화, Stepwise 관련 질문
강사님, 좋은 강의 그리고 좋은 답변 항상 감사드립니다. 규제가 들어가는 선형회귀 방법과 통계적 접근 방법에서의 회귀분석 간의 차이를 이해해 보고자 질문을 드리고 있습니다. 1. Ridge & 데이터 표준화 관련 질문 Ridge 는 결국 회귀계수가 상대적으로 큰 변수의 민감도를 줄임으로써 해당 변수의 값이 좀 많이 달라지는 new sample 들의 추정치에 대한 overfit risk 를 줄이는 방법으로 이해가 되는데요, 종속변수와 의 상관성을 가지는 변수 중에서도 특히 value 의 scale 이 다른 변수에 비해서 월등히 작은 독립변수의 경우 .. 예를들어 NOX 의 경우 Price 와 상관관계가 있으면서도 scale 이 다른 독립변수에 비해 월등히 작다 보니 회귀 계수가 반대급부적으로 커지다 보니 Ridge 에 의해 패널티를 받아 버리는 상황이 생기는 것이 아닐까.. 생각도 드는데요, 이런 경우에는 처음부터 Ridge 를 적용하기 보다는 회귀분석을 하기 전에 데이터 표준화나 Min-Max scaling 등을 통해서 사전처리를 한 다음에 그럼에도 불구하고 회귀 계수가 아주 큰 경우라면 Ridge 를 적용해 보는 순서로 분석하는 것이 필요하지 않을지.. 문의드립니다. (Scale 이 큰 변수가 억울하게(?) 페널티를 받는 상황이 생기지 않을까.. 생각이 들어서 입니다.^^;;) 그리고 scale 이 모두 동일한 상태인 경우일지라도, 기여도가 dominant 하게 큰 인자의 기여도를 강제적으로 낮추는 best fit 모델을 찾아내는 방법이 Ridge 라면 , 물리적으로 기여도가 높은 인자에 대한 페널티가 주어짐으로 인해 모델 성능 (R2 나 MSE 기준 ) 이 저하될 가능성이 있는 것은 아닐지.. 도 문의드립니다. 2. Lasso vs. Stepwize 비교 질문 Lasso 을 적용하면 결국 불필요한 변수의 회귀계수를 0으로 만들어 해당 변수를 제외시키는 결과를 얻게 되는데요, 통계적 회귀분석 방법 중 p-value 등을 기준으로 변수를 포함했다 제외했다 해 가면서 adjusted R2 value 등을 극대화하면서도 유의성이 떨어지는 변수들을 오차항에 모두 pooling 시키는 stepwise 방법이 결국 Lasso 와 유사한 방법이라고 이해하면 될지.. 문의 드립니다.
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
선생님 붓꽃데이터 질문합니다ㅠ
선생님 항상 강의 잘듣고 있습니다..! 코로나 조심하시구요 다름이 아니라 붓꽃데이터를 공부하다가 의문이 생겨서 질문 드립니다. 붓꽃데이터 예측할때 train_test_split로 데이터를 train과 validation 으로 나눠서 predict(y_test) 한거는 실제데이터에 비교해서 나온 예측값이 아닌거죠?? 즉 붓꽃데이터의 train파일의 모델학습값인건가요?? 실제 test에 대입한 예측값이 아니라?? ㅠ 이부분이 좀 혼동스럽네요..ㅠ
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
결과 해석
강사님! 좋은 강의 감사합니다! 고객 데이터를 RFM 기반으로 군집화하였는데, 그 결과를 어떻게 해석하는지가 궁금합니다. 이 부분이 실무에 가장 핵심인 것 같은데, 그 부분까지는 다루지 않은 것 같아서 조금 아쉽네요 ㅠㅠ 질문1) 시각화 된 그래프를, 즉 군집화된 그룹들을 어떻게 해석할 수 있는 건가요? 가령, clustering1 그룹 = '많이 구매했지만, 최근 구매 이력이 없는 사람' clustering2 그룹 = '적게 구매하지만, 자주 구매하며, 최근 구매 이력이 있는 사람' 이런식으로 해석할 수 있어야할 것 같은데, 강의에서 다룬 부분은 딱 그 전까지만 실습을 해서,, 결과물로 나온 그래프를 가지고 어떻게 해석해주어야 할지 문의드립니다! 질문2) 특히 로그변환 후 재 시각화한 경우에는, 어떻게 해석하는지가 궁금합니다! 항상 감사합니다! 건강하세요!
- 해결됨[개정판] 파이썬 머신러닝 완벽 가이드
[Stacking Model] 메타모델에 input 되는 데이터의 다중공선성 문제 질문
강사님 안녕하세요? 정말 좋은 강의 감사드립니다. 매 단원마다 도움을 많이 받고 있습니다. 본 단원에서 두 가지 질문이 있는데요 1. 메타모델의 input 이 되는 데이터들이 맨 아래 캡쳐 그림과 같은 형태가 된다면, 결국 어떤 기반모델들을 사용하던지 input 변수간 아주 강한 다중공선성 문제가 항상 생기게 될 텐데요, PCA 등으로 다중공선성 문제를 해결한 상태로 메타모델에 데이터를 input 할 필요는 없을지 문의드립니다. 사례에서 사용된 Logistic Regression 도 activation function term 을 제외하면 linear regression 과 유사한 개념으로 생각되는데요, 다중공선성이 강한 독립변수로 사용했을 때 모델의 신뢰도가 떨어지는 문제가 동일하게 생기지 않을까 생각도 되어서... 입니다. 2. 만약 전체 데이터셋을 Training / Validation / Test 데이터셋으로 삼중 분할 했다면 stacking 모델을 만들때 기반모델은 training set 으로 fitting 하고, Meta 모델을 fitting 할 때는 기반 모델에 validation set data 를 넣어서 예측된 output 들을 독립변수로 사용해야 하는 것인지요? 만약 training dataset 에 의해 예측된 output 들을 Meta 모델의 독립변수로 사용하게 되면 기반모델들의 온전한 성능을 표현하지 못하는 데이터로 메타모델을 fitting 하게 되기 때문에 (실제보다 마치 더 잘 맞는 것처럼 보이는 - overfitting) 메타모델의 실제 성능이 더 떨어질 가능성이 있고, 그래서 기반 모델에 validation data set 을 넣어서 얻은 output 들을 가지고 메타모델을 학습시켜야 하는 것으로 이해하면 될지요? 동일한 질문이지만 그냥 training dataset 만으로 기반모델과 메타모델을 모두 학습시키면 예측성능이 떨어진다고 간단히 이해하면 될지요? 감사합니다.
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
선생님, 질문있습니다!
선생님, 안녕하세요^^ 먼저 이번에 제가 ai대학원에 합격을 했습니다!! 그래서 선생님께 참 감사드립니다ㅎ.ㅎ 그래서 조금 더 머신 러닝에 대해 깊게 방학 동안 공부를 하고 싶습니다. 많이들 추천하는게 크리스토퍼 비숍의 PRML이던데 선형대수학이랑 통계를 선수 공부해야 한다고 하더라구요 선형대수학은 유튜브에도 많이 올라와 있으니까 참고가 될 듯 한데 여기서 머신러닝을 두고 말하는 통계는 어떤 통계를 말하는 것인지 궁금합니다 고등학교 때 이항정리부터 확률분포, 연속확률변수, 정규분포 등 이쪽을 말하는건가요?? 감사합니다!
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
질문드립니다.
최근에 강의를 두번째로 다시 보고 있습니다. 아직도 많이 모자르지만, 캐글필사와 함께 하고 있습니다 :) 다름이 아니라 제가 드리고 싶은 질문은 LinearRegression에서 입력 파라미터인 fit_intercept(절편)이 왜 영향을 미치는지 궁금합니다. 감사합니다:)
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
타이타닉 예제에서 kfold 관해 질문있습니다
안녕하세요! 타이타닉 예제에서 kfold 교차검증을 수행할때 전체 데이터를 가지고 train/test 데이터를 나누어 성능을 평가하셨는데 교차검증은 train 데이터 내부에서 이루어지는거 아닌가요? train_test_split으로 나눠진 train 데이터를 가지고 그 안에서 다시 교차검증을 위한 train/test를 나누어야한다고 이해했는데 데이터 부족으로 인해 이렇게 적용하신건지 궁금합니다! 뒤의 GridSearchCV에서는 train_test_split으로 나눠진 train 데이터를 fit하고 테스트 데이터에서 정확도가 87.15%로 향상되었다고 하는데 앞의 kfold는 교차검증정확도만 존재하고 예측여부를 확인할 test세트가 존재하지 않았으니 비교할 수 없지 않나...? 하는 의문이 생겨 질문 남깁니다. 항상 좋은 강의 감사합니다:)