주어진 데이터셋(members.csv)의 'views' 컬럼 상위 10개 데이터를 상위 10번째 값으로 대체한 후 'age'컬럼에서 80 이상인 데이터의 'views' 컬럼 평균값 구하기 문제에서는 view 칼럼 내림차순으로 정렬된 df에서 10번째 값으로 상위 10번째 값으로 모두 대체후에 age 조건 이후 view 평균값을 구해주셨는데, 문제를 읽어보면 원래 기존의 df 에서 10번째 값까지 상위 10번째 view 값으로 대체 후에 정답을 구해야 하지 않나요? 주어진 데이터셋을 정렬한 후에 값을 구하면 답이 달라지는것 같습니다!
선생님 안녕하세요! 공부하다가 헷갈리는 부분에 대해 질분드립니다 🙂 1. 작업형 3에서 회귀 분석에서 범주형 변수는 get_dummies 사용하지 않고 선형 회귀 분석 하듯이 하면 되는것 맞을까요?? 2. 강의 이원 분산 분석 편에서 사후 검정 중 Tukey HSD를 진행할 때 비료에 .astype(str)를 하는 이유는 무엇인가요?? 3. 작업형 2에서 수치형 데이터로만 모델 성능을 예측할 때 이미 검증데이터 분리에서 from sklearn.model_selection import train_test_split X_tr, X_val, y_tr, y_val = train_test_split(train[cols], train['성별'], test_size=0.15, random_state=0) 로 했다면 모델 학습 시 model.fit (X_tr, y_tr)로만 하면 되지 않나요?? 왜 fit(X_tr[cols])로 또 해줘야하는지 궁금합니다!
1. 빠르게(인코딩 없이 드랍) 베이스라인을 만들고 (데이터 분할과 랜덤포레스트 모델 random_state값 고정) 검증 - 1차 제출 인코딩 후 검증 -> 점수 좋아졌다면 - 2차 제출 (결측치가 있다면) 결측치 처리 다양한 방식 시도 - 3차 제출 다른 질문에서 이렇게 답변하셨는데 인코딩 없이 드랍시에도 데이터분할 treain_test_split 을 해야하는거군요?? 처음부터 드랍말고 라벨인코딩이나 원핫인코딩을 하면 무조건 성능이 좋은건 아닌가요? 라벨인코딩과 원핫인코딩 둘중 하나를 선택하셔서 풀이하시던데 기준이 궁금합니다
작업형2문제를 풀때 eda 후 전처리&피처엔지니어링 단계에서 범주형자료들을 무조건 라벨인코딩만 하려고 합니다 ((원핫인코딩과 라벨인코딩 둘다 실행시켜서 비교안할거임) 라벨인코딩만 하려는 상황에서도 train_test_split 을 사용해야 하는지 아니면 그냥 바로 랜덤포레스트를 돌려도 되는지 궁금합니다 작업형2 모의문제1 풀이를 적으면서 보는중인데 만약 train_test_split 을 사용안하면 랜덤포레스트 돌릴때 model(X_tr,y_tr) pred =model.predict(X-val) 이자리에 뭘 넣어야 할지 궁금합니다 +train_test_split 을 사용하면 좋은 점수를 받는지도 궁금합니다 +작업형2 모의문제1 풀이에서 강사님이 처음에 drop의 방식을 하셨는데 drop방식보단 라벨인코딩이 더 좋은점수를 받을수 있는 풀이방법인지도 궁금합니다
인코딩을 할때 선생님이 어쩔때는 원핫인코딩을 하시고 어쩔때는 레이블인코딩을 하시던데 그 인코딩을 정하시는 기준을 잘 모르겠습니다! 인코딩을 정하실때 그 경우에 대해서 자세히 알려주시면 감사하겠습니다 그리고 인코딩을 할때 컬럼도 몇개 정하셔서 하시던데 그 컬럼고르는 기준도 잘 모르겠습니다 그 기준에 대해서도 선택하는 방법을 알려주시면 감사하겠습니다 ㅠㅠ
from scipy.special import boxcox1p from scipy.stats import boxcox_normmax # 왜도가 1보다 높은 수치형 변수를 출력하는 코드 high_skew = skewness_features[skewness_features > 1] high_skew_index = high_skew.index print("The data before Box-Cox Transformation: \n", all_df[high_skew_index].head()) # boxcox를 변환하는 코드 for num_var in high_skew_index: all_df[num_var] = boxcox1p(all_df[num_var], boxcox_normmax(all_df[num_var] + 1)) print("The data after Box-Cox Transformation: \n", all_df[high_skew_index].head()) 위와 같이 코드를 실행시켰을 때 다음과 같은 에러가 발생하였습니다. <ipython-input-72-7b0af0216c6e> in <cell line: 11>() 10 # boxcox를 변환하는 코드 11 for num_var in high_skew_index: ---> 12 all_df[num_var] = boxcox1p(all_df[num_var], boxcox_normmax(all_df[num_var] + 1)) 13 14 print("The data after Box-Cox Transformation: \n", all_df[high_skew_index].head()) BracketError: The algorithm terminated without finding a valid bracket. Consider trying different initial points.
#특정컬럼에 결측치가 있으면 데이터(행) 삭제 subset=[' native.country '] df = X_train. dropna (subset=['n ative.country' ]) # 결측치가 많은 특정 컬럼 삭제 drop(['workclass'], axis=1) df=X_train. drop (['workclass'], axis=1) 언제 drop을 쓰고, 언제 dropna를 쓰는지 궁금합니다.
아노바 사후검정에 대해 실습환경에서 코드 수행해보려고 하는데, 아래와 같이 오류뜨는건 실습환경에서 지원하지 않는 모듈이라고 생각하면 될까요? from scipy import stats from statsmodels.stats.multicomp import pairwise_tukeyhsd, MultiComparsion # Tukey HSD(투키) tukey_result = pairwise_tukeyhsd(df_melt['value'], df_melt['variable'], alpha=0.05) print(tukey_result.summary()) ImportError: cannot import name 'MultiComparsion' from 'statsmodels.stats.multicomp' (/usr/local/lib/python3.9/dist-packages/statsmodels/stats/ multicomp.py )
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 section 4-2 문제 1번에서 object 컬럼을 삭제할 때에 보여주신 방법 외에 다른 방법을 사용해봤는데,이 방법도 가능한 건지 궁금해서 질문드립니다. import pandas as pdimport numpy as np df = pd.read _csv("members.csv") df = df.select _dtypes(exclude='object') <----------------------------- 아예 object 컬럼을 제외한 나머지 컬럼을 df에 담아도 가능한 건지 궁금합니다!
안녕하십니까 강사님, 양질의 강의로 이해하기 쉽게 준비해주셔서 감사합니다. 실은 섹션 11, 예시문제 작업형 2, 16:57 쯤에 복습 중 for 문을 이용하여 조금 코드를 수정해보았습니다. 아래의 코드가 바로 정상 작동하는 일부 수정한 코드입니다. from sklearn.preprocessing import MinMaxScaler cols = ['총구매액', '최대구매액', '환불금액', '내점일수', '내점당구매건수', '주말방문비율', '구매주기'] for col in cols: scaler = MinMaxScaler() X_train[col] = scaler.fit_transform(X_train[[col]]) X_test[col] = scaler.transform(X_test[[col]]) X_train.head() 근데 바로 위의 `LabelEncoder`을 수행한 코드를 보면 for 문과 함께 [col]로 작성이 되어있는데, 이 일부 수정된 코드에서는 [col]을 적으면 왜 이 오류가 나오는지 잘 모르겠습니다. ValueError: Expected 2D array, got 1D array instead: [[col]] 를 작성해야만 정상 작동하더군요. 혹시 LabelEncoder를 적용한 바로 위의 코드와 어떤 차이가 있어서 []을 한번 더 기입해야 하나요?.