월 19,800원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
기존 질문답변에 대한 질문_학습(학습+검증)-테스트
선생님~ 기존질문에 대한 선생님의 답변에서 '요약하자면 학습/검증 데이터를 포함하여 테스트 데이터 역시 전체 데이터의 target 값 데이터 분포를 유지하면서 분리해 주는게 좋습니다. 먼저 학습/테스트 데이터 세트를 target 값 데이터 분포를 유지하며 분리해주고 학습 데이터의 경우 Cross-validation을 위해서는 stratified k-fold로 수행해주는 게 좋습니다. ' 이렇게 말씀하신 부분이 있는데요~ 답변내용은 잘 이해가 되었는데.. 그러면 제가 궁금한 것이.. (교차검증을 배우기 전에) 이전 강의에서 배웠던 학습데이터와 테스트데이터 나누는 train_test_split() 이 메소드(함수?) 에서는~ StratifiedKFold의 split() 기능처럼, 이미 레이블값의 분포도를 유사하게 해주는 기능이 있는 건가요~? 그리고 제가 또 하나 궁금증이 있는 것은 현재 교차검증 파트 부분에서 150개 데이터를 다 갖고와서 학습+검증을 했는데 일반적으로는 150개의 데이터에서 학습용 120개 / 테스트용 30개 를 먼저 나누고, 120개 중에서 3개폴드로 교차검증 한다면학습 80개 /검증 40개 하고 이렇게 진행하는건가요..? 좀 헷갈리네요..ㅠ.ㅠ 마지막으로, 검증을 하는 의미가 '정확성'이 잘 나오는지 확인하는 거 맞나요~? 제일 헷갈리는 부분이 교차검증이 테스트데이터와는 무슨 연관이 있는지.. '정확성'인거 같은데.. 제가 강의를 좀 더 들어봐야 하는데 너무 이른 질문인가요..? ㅜㅜ
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
train_test_split 에서 random_state 없는 의미
선생님~ 궁금증이 생겼는데요..! X_train, X_test,y_train, y_test= train_test_split(iris_data.data, iris_data.target, test_size=0.3) 이렇게 random_state없이 하면 실행될때마다 계속 train데이터셋과 test데이터셋의 샘플링이 다양하게 되잖아요~ 그럼 iris라는 하나의 데이터(Bunch객체)이긴 하지만.. X_train, X_test,y_train, y_test= train_test_split(iris_data.data, iris_data.target, test_size=0.3) 과 dt_clf.fit(X_train, y_train) 를 몇 번 계속 해주면 샘플링의 경우의 수가 다양하듯이 학습도 그만큼의 경우의 수에 따라 되는 의미로 받아들여도 되는건가요..? 학습이
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
실전에서 피처데이터와 target데이터 나누는 것
선생님~ iris 데이터는 Bunch객체로 딕셔너리 비슷한 형태로 피처data와 target 값이 나뉘어져 있잖아요~ 그런데 실전에서 csv같은 데이터에서는 나뉘어져 있지 않으니.. 피처data와 target값을 나누는 것부터 실무에서는 해야 하는 일인거겠지요..??
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
DecisionTreeClassifier 객체 생성시 random_state하는 이유?
선생님~ 학습 데이터와 테스트 데이터 세트로 분리를 할 때 X_train, X_test, y_train, y_test = train_test_split(iris_data, iris_label, test_size=0.2, random_state=11) 이렇게 random_state 를 쓰는 이유는 이해가 되는데.. (반복실행해도 train데이터셋과 test데이터셋을 나눈 결과를 똑같이(고정하는 의미) 보이게 하려고) DecisionTreeClassifier 객체를 생성시, dt_clf = DecisionTreeClassifier(random_state=11) 이렇게 rrandom_state를 쓰는 이유는 무엇인가요~?
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
formatting 관련
선생님~ formatting 할때 {:0.4f} 이렇게 쓰는 것도 본 적이 있는데, {0: .4f} 랑 {:0.4f}는 똑같다고 보면 되나요~? 그리고, 0은 format( ) 괄호 안에 변수 순서이고, .4f 는 소수점 4자리 형태로 이해하면 될까요~?
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
target값과 target명 관련
선생님~ iris target 값과 iris target명 관련해서 궁금증이 생겼는데요.. 지금 iris 데이터에서는 target값이 [000...111...222] 이런식으로 순서대로 되어 있어서 targetname도 순서대로 0이 'setosa'고 1이 'versicolor', 2가 'virginica'라고 받아들였는데요.. 그렇게 받아들이는건가요..? target값과 targetname이 서로 매핑이 되어있는 형태로 값과 네임명을 확실하게 볼 수있는 방법은 없나요~? (예를 들면 딕셔너리형태같이..)
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
sort()[::-1] 관련
선생님 ~ 안녕하세요 sort_array1_desc = np.sort(org_array)[::-1] 해서 sort_array1_desc 를 보면 내림차순으로 잘 작동하는데.. 그냥 org_array.sort()[::-1] 이렇게 해줄 때에는 오류가 나네요..ㅠ 내림차순일때는 sort_array1_desc = np.sort(org_array)[::-1] 이런식으로만 작성해야 하나요..??
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
xgboost
아나콘다를 python 3.8버전으로 설치하다보니 xgboost와 호환지 되지 않더군요,, 해결 방법이 없을까요..?
- 해결됨[개정판] 파이썬 머신러닝 완벽 가이드
임계값 변화에 따른 정밀도의 변화
안녕하세요 강사님, 책에서는 분류 임계값이 감소함에 따라 재현율은 증가하고 정밀도는 증가한다고 나와있습니다. 임계값이 감소한다는 것은 그만큼 FP, TP가 증가한다는 것을 의미하는데 임계값이 감소함에 따라 FN이 줄어들고 TP가 증가하는 재현율과는 다르게 정밀도는 확실히 증가한다고 볼 수 없지 않나요? 예를 들어, 임계값 변동 전의 정밀도가 80/100(=0.8)이고, 양성예측이 증가하여 맞고 틀린 예측이 각 10건이 되어 정밀도가 90/120(=0.75)가 될 경우, 분류임계값이 증가하더라도 정밀도는 낮아질 수 있지 않나요?
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
apply와 map차이
선생님~ map대신 apply를 쓰면 오류가 나는데 map이랑 apply 차이가 무엇일까요..?ㅠ
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
groupby('Pclass')와 groupby(by='Pclass') 차이
선생님~ 강의에서 groupby('Pclass')와 groupby(by='Pclass') 를 번갈아 쓰시는데 by의 유무에 따른 차이는 없는거지요~??
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
DNN/CNN과 알고리즘
이번 연휴 때, 강의를 들으면서 이 책을 공부하면서 정말 많은 도움이 되었습니다! 중간중간, 질문이 생길 때마다 답변을 상세하게 해주셔서 정말 감사합니다! 이 책에서 여러 모델 알고리즘들이 제시되는데요, DecisionTree, Ridge, Lasso 등등... 다른 책에서 공부를 하다보면 DNN, CNN등 뉴럴넷의 유형에 대해 나오는데, DecisionTree, Ridge, Lasso 등등 이 책에서 제시된 모델들도 DNN, CNN,..과 같은 이런 뉴럴넷의 유형에 속하게 되는지 궁금합니다! 그리고 각각의 알고리즘들이 어떤 뉴럴넷 유형에 속하는지 알고싶으면 무엇을 참고해야 되는지 궁금합니다! 아니면, 이 책에 나오는 알고리즘들은 뉴럴넷과 관계가 없는것인지..헷갈립니다!
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
이미 train된 모델
366쪽에서 print_best_params(ridge_reg, ridge_params) print_best_params(lasso_reg,lasso_params)를 하는데, 이때 ridge_reg와 lasso_reg는 새로 정의하지 않고 이전에 fit도 했던 모델을 그대로 사용하는데, 그러면 이미 train된 모델이 아닌지 궁금합니다!
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
DataFrame에서 딕셔너리로 변환 관련
선생님 안녕하세요~ 강의(9:35-40)에서는 DataFrame에서 딕셔너리로 변환할 때 dict3 = df_dict.to_dict('list') 이렇게 쓰셨는데요~ dict3 = df_dict.to_dict() 이렇게 쓰면 값들에 인덱스 값과 value가 딕셔너리 형태로 나오네요.. type은 dict으로 나오는데, DataFrame을 딕셔너리로 바꾸는데에는 상관이 없는건가요..?!
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
get_dummies()의 널값 처리
357-8쪽 해당 실습에서 object형을 제외한 int 타입에 대해서 fillna 메서드를 활용해서 Null 칼럼을 평균값으로 대체 하였습니다. null_column_count=house_df.isnull().sum()[house_df.isnull().sum()>0] house_df.dtypes[null_column_count.index] MasVnrType object BsmtQual object BsmtCond object BsmtExposure object BsmtFinType1 object BsmtFinType2 object Electrical object GarageType object GarageFinish object GarageQual object GarageCond object dtype: object그래서 다음과 같이 12개의 feature에서만 null값이 남게 되었는데요, 358쪽에서 get_dummies()는 자동으로 문자열 피처를 원-핫 인코딩 변환하면서 NUll 값은 'None'칼럼으로 대체해준다고 하였습니다.None칼럼으로 대체해주면 인코딩 이후 None으로 끝나는 칼럼의 갯수가 12개가 나와야 하는데, house_df_ohe=pd.get_dummies(house_df)for i in house_df_ohe: if "None" in i: print(i)을 하면, MasVnrType_None으로 한개밖에 나오지 않습니다. 왜 나머지는 나오지 않는지 궁금합니다!예를 들어, house_df에서 BsmtQual은 17번째 row에서 nan 값인데, house_df_ohe에서 BsmtQual_None이라는 칼럼명이 없으며, BsmtQual로 시작하는 칼럼명은 다음과 같이 4개('BsmtQual_Ex','BsmtQual_Fa','BsmtQual_Gd','BsmtQual_TA') 밖에 없고, house_df_ohe[['BsmtQual_Ex','BsmtQual_Fa','BsmtQual_Gd','BsmtQual_TA']].iloc[17]을 해보면 BsmtQual_Ex 0 BsmtQual_Fa 0 BsmtQual_Gd 0 BsmtQual_TA 0 모두 0이 나옵니다. 여기 nan값은 인코딩 후 어떻게 되는건가요? 따로 칼럼이 만들어지지 않는건가요?
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
안녕하세요 권철민 선생님~
(질문은 아니지만.. ) 안녕하세요 권철민 선생님~ 미리보기강의를 듣고 주저 없이 수강신청하게 되었습니다..! 책도 구매하고 열심히 해보려고 합니다..! 비전공자이지만.. 선생님 강의를 들으며 포기하지 않고, 열심히 공부하겠습니다..!! 선생님의 강의는 저에게 포기하지 않으려는 마음을 다시 심어주셨습니다. 진심으로 감사합니다..!!
- [개정판] 파이썬 머신러닝 완벽 가이드
안녕하세요 권철민선생님
삭제된 글입니다
- 미해결[개정판] 파이썬 머신러닝 완벽 가이드
why5?
예측한 회귀계수의 변수들의 순서가 어떻게 되는지 궁금합니다.또한 위의 회귀계수들이 적용된 함수를 보는 방법도 궁금합니당.
- 해결됨[개정판] 파이썬 머신러닝 완벽 가이드
threshold
sfm = SelectFromModel(lasso, threshold='1.5 * median').fit(X, y) 여기서 threshold=1.5*median으로 지정을 해줬는데, threshold=np.sort(importance)[-3]+0.01 이 작업을 앞에 왜 해줬는지 모르겠습니다.
- 해결됨[개정판] 파이썬 머신러닝 완벽 가이드
교차 검증
교차 검증에서 데이터 셋을 학습,검증,테스트 데이터로 나누어 학습, 검증 데이터를 통해 일차평가하고, 최종적으로 테스트 테이터를 통해 마지막 예측을 하는 것으로 이해했는데요.. k-fold도 그렇고, stratified k fold도 그렇고 코드로 예제 보여주실때엔 학습과 검정데이터로만 전체데이터를 나누어 교차검증 정확도를 평균내더라구요. 데스트 데이터는 그럼 따로 나눌 필요가 없는 것인가요? 제가 잘못이해한 것인지 너무 헷갈립니다,, 알려주세요,,ㅠ_ㅠ