묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨AB 테스트 실무자 완벽 가이드
최소 샘플 사이즈 관련 질문
선생님 안녕하세요 좋은강의 감사합니다. A/B 테스트 실헙계획 - 집단크기 결정 관련해서 내용 질문이 있습니다. 해당 강의의 내용은, AB테스트가 유의미해지려면 필요로하는 최소 샘플사이즈가 있다 인데요 python scipy 에서 ttest_ind 함수를 사용하면요 from scipy import statst, p = stats.ttest_ind(array1, array2, equal_var= False)이런식으로 하면 t와 p가 정해지는데, 여기에서 array 1과 array 2가 최소 샘플 수를 만족시킨다는 보장이 없는 것이잖아요.그럼 여기에서 나온 t p는 어떻게 해석해야 하는건가요?
-
해결됨[개정판] 파이썬 머신러닝 완벽 가이드
피마 인디언 당뇨병 예측
안녕하십니까 선생님. 강의 너무 잘 듣고 있는 머신러닝 꿈나무 도은우입니다. 저는 현직의사로 의료ai의 길을 걸을려고 하는데 선생님의 강의가 너무 많은 도움이 되고 있습니다. 다름이 아니라, 인디언 당뇨병 예측에서 zero_features의 0의 값을 zero_features의 값의 mean으로 replace하셨는데, 이럴경우에 애초에 0이 있는것 때매 의미 있는 평균값이 나오지 않는다고 저는 생각했습니다. 애초에 0이 아닌 값들의 평균으로 하는건 어떤가요>???
-
해결됨[개정판] 파이썬 머신러닝 완벽 가이드
Santander Customer Satisfaction 데이터셋 다운로드 관련 질문입니다.
안녕하세요 !머신러닝 재밌게 수강중인 학생입니다.이번에 분류를 공부하다가 산탄데르 데이터셋을 다운로드 받기위해 캐글에 들어갔으나 선생님의 화면과는 다르게 떠서 어디서 다운로드 받아야하는지 모르겠습니다.사진 첨부하겠습니다.감사합니다
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
파일 위치를 못찾겠습니다
깃허브에서 실습 예제(perfect guide?)를 다운받았습니다. 강의 영상에서는 user에 집어 넣으면 된다고 하셨지만, scikit learn 설치 이슈 때문에 가상환경을 만들어서 그런가 파일 위치가 다른 것 같습니다. 구글에 검색해보니 evns/new_base가 가상환경 경로 라고 하는데 또 막상 이곳에 파일을 넣으니 jupyter notebook에서는 보이지 않더라구요..어떻게 하면 좋을 까요
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
pandas 오류?
scikitlearn 다운그레이드가 안돼서 커뮤니티에 다른 질문들 보며 new_base 가상환경을 구성하고 가상환경 activate 한후 pandas 포함해서 필요한 패키지들 설치 했습니다.가상환경 활성화된 상태에서 pip install jupyter notebook 으로 주피터 노트북 설치한 후에 jupyter notebook 커맨드로 실행시켰습니다. 그리고 새로운 notebook 열어서 사진철머 실행시켰는데 빨간 박스가 뜨면서 경고 문구가 나오네요. 어떻게 해결하면 좋을까요?
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
상관 Heatmat에서 질문 있습니다.
안녕하세요! 머신러닝 강의 마지막 부분에 히트맵을 표현하는 부분에서 ValueError가 발생하여 질문드립니다. 강의 코드를 따라가는 도중 titanic_df.corr()인 부분이 있는데 숫자형 열이 아닌 부분은 자동으로 제외되어야 하는데 저는 아래와 같은 에러가 발생합니다. ValueError: could not convert string to float: 'Braund, Mr. Owen Harris' 무슨 문제인지 해결이 안되어 질문드렸습니다!답변 부탁드립니다. 감사합니다.
-
해결됨[개정판] 파이썬 머신러닝 완벽 가이드
k-fold 작동방식에 관한 질문입니다.
dt_clf = DecisionTreeClassifier(random_state=156) skfold = StratifiedKFold(n_splits=3) n_iter=0 cv_accuracy=[] # StratifiedKFold의 split( ) 호출시 반드시 레이블 데이터 셋도 추가 입력 필요 for train_index, test_index in skfold.split(features, label): # split( )으로 반환된 인덱스를 이용하여 학습용, 검증용 테스트 데이터 추출 X_train, X_test = features[train_index], features[test_index] y_train, y_test = label[train_index], label[test_index] #학습 및 예측 dt_clf.fit(X_train , y_train) pred = dt_clf.predict(X_test) # 반복 시 마다 정확도 측정 n_iter += 1 accuracy = np.round(accuracy_score(y_test,pred), 4) train_size = X_train.shape[0] test_size = X_test.shape[0] print('\n#{0} 교차 검증 정확도 :{1}, 학습 데이터 크기: {2}, 검증 데이터 크기: {3}' .format(n_iter, accuracy, train_size, test_size)) print('#{0} 검증 세트 인덱스:{1}'.format(n_iter,test_index)) cv_accuracy.append(accuracy) # 교차 검증별 정확도 및 평균 정확도 계산 print('\n## 교차 검증별 정확도:', np.round(cv_accuracy, 4)) print('## 평균 검증 정확도:', np.mean(cv_accuracy)) 안녕하세요 선생님. k-fold 작동방식에 관한 질문이 있어 글 남깁니다. 전체 데이터셋에서 테스트셋을 제외하고, k개의 데이터셋으로 나누어 학습과 검증을 k번 반복한다. 그리고, 교차 검증 최종 평가는 k번의 학습과 검증에서의 평가지표를 평균낸다. 정도로 이해하였습니다. 여기서 저의 궁금점은 다음과 같습니다.k번의 학습과 검증을 반복하면서 가장 좋았던 iteration의 모델을 최종 모델로 가져가는것인지, 아니면 k번의 학습을 통한 모델의 파라미터들을 평균을 내어 최종 모델을 새로 구하는 것인지 궁금합니다.최종 평가지표는 k번의 학습과 검증에서의 평가지표 평균이 아닌, 테스트셋에 대한 평가지표가 더 적당하지 않은지 궁금합니다.위 코드에서처럼 for문 안에 fit을 통해 모델 학습을 시킬 때, 이전 iteration에서의 모델 학습과는 전혀 연관되지 않게 새로 학습을 시작하는것인지 아니면 이어서 학습하는 것인지 궁금합니다.
-
해결됨[개정판] 파이썬 머신러닝 완벽 가이드
교재 125쪽 minMaxScaler와 가우시안 분포
안녕하세요 선생님덕분에 머신러닝 너무 재밌게 공부중입니다. 데이터의 분포가 가우시안 분포가 아닐 경우에 minMaxScaler을 적용해 볼 수 있습니다.라고 나와있는데, 이유가 무엇인지 알 수 있을까요? 제가 생각해본 이유들은 다음과 같습니다.이미 평균은 0, 표준편차는 1로 정규화되어있어 다시 정규화를 진행할 필요가 없다.정규분포는 양끝값이 없나..? 그래서 min값과 max값이 너무 멀리 떨어져있나?? - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 강의 내용을 질문할 경우 몇분 몇초의 내용에 대한 것인지 반드시 기재 부탁드립니다. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
데이터 분류과정에서 코드 질문
X_train, X_test,y_train, y_test= train_test_split(iris_data.data, iris_data.target, test_size=0.3, random_state=121) 를 이용해서 데이터를 분류하는데 이때 X_test, X_train이 학습용 피쳐값인지 테스트용 피쳐값인지 구분을 하는 메커니즘이 뭘까요? 위치로 구분을 하는 것인가요??
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
교차검증 메소드 질문드립니다.
안녕하세요강의를 복습하던 중 교차검증과 관련하여 궁굼한게 생겨 문의남깁니다. 교차검증을 통한 예측값을 산출할 때 cross_val_predict 메소드를 사용 하는 것으로 이해했습니다. 그래서 아래와 같이 코드를 만들었을 때 잘 동작했고요. y_cross_val_predict= cross_val_predict(model, X_train, y_train, cv=10, n_jobs=60) 근데 혹시 Test데이터에서도 가능한가 해서 데이터를 바꿔서 y_cross_val_predict= cross_val_predict(model, X_test, y_test, cv=10, n_jobs=60) 를 수행하니 코드는 문제없이 작동했는데 이 부분이 Test 데이터 셋에서 10개의 폴드로 나눠 교차검증을 한것으로 이해했는데 맞을까요?
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
4.8 베이지안 최적화로 hyperparameter 튜닝
hp.uniform을 정규 분포라고 설명하셨는데 균일 분포인거죠?funtion 이름도 그렇고 funtion의 param도 평균과 분산이 아니라 최소, 최대값인 걸로 보아 균일분포같아서요.
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
decisiontree 초기화 질문
for train_index, test_index in skfold.split(features, label): dt_clf.fit(X_train , y_train) 여기서 dt_clf은 반복문에서 fit이 실행될때마다 기존에 학습한 모델(데이터)을 지우고 새롭게 학습한 데이터만 갖고 모델을 만드는건가여?
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
scikit-learn 1.0.2 버전 설치 오류
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 강의 내용을 질문할 경우 몇분 몇초의 내용에 대한 것인지 반드시 기재 부탁드립니다. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 맥 터미널에서 pip install scikit-learn==1.0.2 라고 치니다음과 같은 오류가 발생합니다..ㅜㅜ
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
lightgbm 오류
lightbgm을 강의와 같이 설치한 후 주피터 노트북으로 버전 확인을 해보았더니 다음과 같은 오류가 뜨네요.. 해결방법이 있을까요?더해서 xgboost의 버전이 1.7.3이 문제가 되는건 아닌지 궁금합니다.
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
피미 인디언 당뇨병 예측 관련 질문
교수님 안녕하십니까교수님의 수업을 정말 즐기면서 듣고있는 AI빅데이터 전공 대학생입니다.교수님의 강의 피마 인디언 당뇨병 예측 편을 보고 여태 배운 것을 백분 활용하여 제 방식대로 따로 모델을 구현을 해보았는데요. 먼저 임신횟수와 Outcome을 제외한 나머지 column들에 있는 0 값들은 모두 결측치로 판단하고 평균 값으로 대체하였습니다.RandomForestClassifier 알고리즘을 사용하고 GridSearchCV 함수를 통해 best estimator를 추출였습니다.정밀도와 재현율이 동시에 높으면 좋지만 재현율이 증가하면 정밀도가 하락하는 현상(trade-off) 때문에 둘 중 하나를 선택해야 했고 이 피마 인디언 당뇨병 데이터 셋 같은 경우 병의 발견 목적으로 모델을 제작한다고 했을 때 실제로 당뇨병인데 모델이 당뇨병이 아니라고 예측하는 것이 치명적이라고 생각하여 정밀도 보다는 재현율을 중점적으로 보았습니다.그리하여 precision_recall_curve 함수를 통해 최적의 재현율과 F1_score얻은 threshold 값을 추출하였습니다. 제가 얻은 값은오차 행렬 [[72 28] [ 4 50]] 정확도: 79.22% , 정밀도: 64.10% , 재현율 92.59%, F1_Score: 75.76%임계값: 0.32212471005503873입니다. 오차 행렬을 보았을때도 한쪽에 치우쳐있는 불균형도 없다고 판단하였고 정밀도와 재현율 f1_score도 괜찮게 나왔다고 판단했습니다.임계값을 0.32212471005503873로 주었을 때 roc_auc_score는 0.82296이라는 1에 꽤나 근접한 수치를 얻었습니다.질문1:이런식으로 모델을 찾아가는 방식이 옳은 방식인지 궁금합니다.질문2:제가 선택한 모델을 사용한다고 한다면 매번 RandomClassifier로 fit한 model을 Binarizer을 통해서 threshold 값을 매번 지정해주어야 하는건가요? 애초에 처음 모델을 fit할 때 임계값을 제가 부여는 못하는 것일가요?
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
5장 회귀 실습 2:캐글경연 주택가격 예측-Advanced Regression Techniques - 01 질문 있습니다😊
선생님 안녕하세요! 5장 회귀 실습 2:캐글경연 주택가격 예측-Advanced Regression Techniques - 01 을 듣다가 타겟 값인 Price를 로그 변환하여 정규 분포 형태로 변환하고, 피처들 중 숫자형 컬럼의 Null 값 데이터 처리 부분 코드를 다음과 같이 썼습니다. 그런데 결과가 사진과 같이 float64가 포함된 형태로 나왔습니다. 제가 어떤 부분에서 잘못한 건지, 그리고 어떻게 해야 선생님과 같은 결과가 나올 수 있나요?ㅎㅎ# SalePrice 로그 변환original_SalePrice = house_df['SalePrice']house_df['SalePrice'] = np.log1p(house_df['SalePrice'])# Null이 너무 많은 컬럼들과 불필요한 컬럼 삭제house_df.drop(['Id', 'PoolQC', 'MiscFeature', 'Alley', 'Fence', 'FireplaceQu'], axis=1, inplace=True)# Drop하지 않는 숫자형 Null 컬럼들은 평균 값으로 대체num_columns = house_df.dtypes[house_df.dtypes !='object'].index.to_list()house_df[num_columns].fillna(house_df[num_columns].mean(), inplace=True)# Null 값이 있는 피처명과 타입을 추출null_column_count = house_df.isnull().sum()[house_df.isnull().sum() > 0]print('## Null 피처의 Type :\n', house_df.dtypes[null_column_count.index])
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
downgrading 관련질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 강의 내용을 질문할 경우 몇분 몇초의 내용에 대한 것인지 반드시 기재 부탁드립니다. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.사이킷런 다운그레이딩시 계속 오류가 나서, 파이썬을 3.9버전으로 다운그레이드 시킨 후 하면 된다고 해서 파이썬을 다운그레이드 하려고 했는데요.맥 터미널에서 다음과 같이 뜨고 Version이 바뀌지가 않네요 ㅜㅜ 제발 좀 도와주세요 ㅜㅜ
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
Xgboost 조기 중단 결과 해석
파이썬 래퍼 XGboost 조기 중단 결과 (일부만)[0] train-logloss:0.65016 eval-logloss:0.66183 [1] train-logloss:0.61131 eval-logloss:0.63609 [2] train-logloss:0.57563 eval-logloss:0.61144 [3] train-logloss:0.54310 eval-logloss:0.59204 [4] train-logloss:0.51323 eval-logloss:0.57329 [5] train-logloss:0.48447 eval-logloss:0.55037 [6] train-logloss:0.45796 eval-logloss:0.52930 [7] train-logloss:0.43436 eval-logloss:0.51534사이킷런 래퍼 XGboost 조기 중단 결과 (일부만)[0] validation_0-logloss:0.65016 validation_1-logloss:0.66183 [1] validation_0-logloss:0.61131 validation_1-logloss:0.63609 [2] validation_0-logloss:0.57563 validation_1-logloss:0.61144 [3] validation_0-logloss:0.54310 validation_1-logloss:0.59204 [4] validation_0-logloss:0.51323 validation_1-logloss:0.57329 [5] validation_0-logloss:0.48447 validation_1-logloss:0.55037 [6] validation_0-logloss:0.45796 validation_1-logloss:0.52930 [7] validation_0-logloss:0.43436 validation_1-logloss:0.51534결과가 train-logloss, eval-logloss 이렇게 두 개가 나오는데 eval-logloss의 값만 확인 하는 이유가 궁금합니다. ( 사이킷런 래퍼의 경우 validation_0_logloss 와 validation_1_logloss 두개가 있는데 validation_1_logloss만 확인하는 이유)train-logloss 와 eval-logoss(validation_0_logloss / validation_1_logloss) 가 각각 의미하는 것이 뭔지 궁금합니다.logloss는 실제값과 예측값의 차이에서 발생하는 값일텐데 어떻게 두개가 나올 수 있는지 궁금합니다. (학습 데이터와 검증데이터를 전달했다면 검증 데이터의 예측 결과로만 손실값이 나올텐데 train-logloss 는 어디서 나온 손실값인가요?)
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
lightgbm 조기중단 파라미터 오류
다음과 같은 에러가 나는 이유를 모르겠습니다. lightgbm의 버전은 4.1.0 입니다. 강사님이 올려주신 코드에서도 같은 오류가 나네요ㅠX_features = cancer_df.iloc[:,:-1] y_label = cancer_df.iloc[:,-1] X_train, X_test, y_train, y_test = train_test_split(X_features, y_label, test_size=0.2, random_state = 156) X_tr, X_val, y_tr, y_val = train_test_split(X_train, y_train, test_size=0.1, random_state=156) lgbm_wrapper = LGBMClassifier(n_estimators=400, learning_rate=0.05) evals = [(X_tr, y_tr),(X_val, y_val)] lgbm_wrapper.fit(X_tr, y_tr, early_stopping_rounds=50, eval_metric='logloss', eval_set=evals, verbose=True) preds = lgbm_wrapper.predict(X_test) pred_proba = lgbm_wrapper.preditct_proba(X_test)[:,1]TypeError: fit() got an unexpected keyword argument 'early_stopping_rounds'
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
피마 인디언 당뇨병 예측
# 0값을 검사할 피처명 리스트 객체 설정zero_features = ['Glucose', 'BloodPressure','SkinThickness','Insulin','BMI']# 전체 데이터 건수total_count = diabetes_data['Glucose'].count()# 피처별로 반복 하면서 데이터 값이 0 인 데이터 건수 추출하고, 퍼센트 계산for feature in zero_features: zero_count = len(diabetes_data.loc[diabetes_data['feature'] == 0]) print('{0} 0 건수는 {1}, 퍼센트는 {2:.2f} %'.format(feature, zero_count, 100*zero_count/total_count))에서 교안대로 하는 대신에 zero_count = len(diabetes_data.loc[diabetes_data['feature'] == 0])로 하면 에러가 뜨는 것일까요 ? feature를 찾을 수 없다고 뜨는 것 같습니다..ㅠㅠ