1)혹시 현재 범주형 컬럼에 대해 라벨인코딩 한 후, 인코딩한 컬럼만 따로 학습에 사용하는 것이 아니라, 수치형 컬럼과 함께 전체 데이터(총 10개 컬럼)를 모델에 넣어 학습했습니다. 이때 오히려 성능이 더 잘 나왔는데, 이런 방식이 괜찮은지 확인 받고 싶습니다. from sklearn.preprocessing import LabelEncoder cols = list( train.select _dtypes(include = 'O')) for col in cols: le = LabelEncoder() train[col] = le.fit _transform(train[col]) test[col] = le.transform(test[col]) 이후 전체 데이터를 사용해 모델 학습을 진행했습니다. X_train, X_val, y_train, y_val = train_test_split(train.drop('성별',axis=1), train['성별'], test_size = 0.2, random_state = 0) print(X_train.shape, X_val.shape, y_train.shape, y_val.shape) #(2800, 10) (700, 10) (2800,) (700,) 범주형데이터 인코딩한 상태로 10개 컬럼 그대로 가지고 학습 from sklearn.ensemble import RandomForestClassifier from sklearn.metrics import roc_auc_score rf = RandomForestClassifier(random_state = 0, max_depth =5) rf.fit (X_train,y_train) rf_predpro = rf.predict_proba(X_val) rf_rocauc = roc_auc_score(y_val,rf_predpro[:,1]) print(rf_rocauc) # train data 전체 데이터 사용 시 약 0.63, 범주형 컬럼 두 개만 썼을 때는 약 0.60 감사합니다
안녕하세요. 퇴근 후 딴짓 교재도 같이 공부를 하고 있습니다! 혹시 작업형2에서 연습문제에서 코딩을 할 때마다 ‘베이스라인’파트와 ‘심화’ 파트가 있는데 시험 볼 때 ‘베이스라인’과 ‘심화’파트 모두 제출해야 하나요..? ‘베이스라인’도 조금 벅차서 시험 볼 때 ‘베이스라인‘ 코드만 제출할 수 있나 해서요..
a=3 b=5 print(a+b) print(type(a)) 죄송합니다. Python용 IntelliCode 지원을 활성화하는 동안 문제가 발생했습니다. 자세한 내용은 "Python" 및 "VS IntelliCode" 출력 창을 확인하세요. 라는 메세지가 뜨면서 안되는데 왜 그럴까요..
결측치 제거할 때 test는 처리하면 안된다고 하셨는데 다음과 같은 상황들에서 어떻게 처리해야 하나요? 1)train, test 둘다 결측치 있는 경우 train만 train = train.dropna()하면 되는지 2) train은 없고 test만 결측치가 있는경우 둘다 안 하면 되는지 3) train만 있고 test는 결측치가 없는 경우 train만 처리하면 되는지
강사님 풀이를 보면 수치형 데이터와 범주형 데이터를 분리해 전처리 한 후 다시 합치는 과정으로 진행하셨는데 저는 select.dtypes(inclde='object')와 select.dtypes(exclude='object')를 이용해 전처리 후 머신러닝을 진행하였습니다. roc_auc_score로 평가해보니 비슷하게 0.809가 나옵니다. 저는 수치형과 범주형을 따로 분리하고 전처리 하는게 헷갈려서 그런데 저처럼 과정을 진행해도 문제 없는거죠??
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 df.groupby(['부서','성과등급'])['근속연수'].transform('mean') 이라는 코드로 부서와 성과등급 기준 평균값을 구하신 부분에서 질문입니다. df.groupby(['부서','성과등급'])['근속연수'].mean() 위 코드와 같이 transform('mean')과 mean()이 어떤 차이점이 있는지 궁금해요.
결측 값을 가진 데이터는 바로 뒤에 있는 값으로 대체한 후 (바로 뒤가 결측값이라면 뒤에 있는 데이터 중 가장 가까운 값) city와 f2 컬럼 기준으로 그룹합을 계산한 뒤 views가 세번째로 큰 city(도시) 이름은? 문제를 푸는데.. df = df.fillna(method='bfill') 라고 치면 <ipython-input-43-5b45f8741ad5>:7: FutureWarning: DataFrame.fillna with 'method' is deprecated and will raise in a future version. Use obj.ffill() or obj.bfill() instead. df = df.fillna(method='bfill') 과 같은 메시지가 뜨네요. 이제 df = df.fillna(method='bfill') 대신 obj.bfill() 라고 쓰는걸 익혀야 하나요? 아니면 당분간은 괜찮을런지요. 늘 감사합니다.
안녕하세요! 10회 시험 대비 강의 업데이트 관련해서 문의드립니다. 기왕이면 업데이트 완료된 강의를 수강하고 싶어서요..! ‘작업형2’의 최종 업데이트 예정일이 어떻게 될까요? ‘작업형3’도 업데이트 예정이실까요? 그렇다면 업데이트 일정이 어떻게 될까요? 1,2번 문의 외 업데이트 예정인 강의가 또 있을까요?
listbox = [15, 46, 78, 24, 56] def answer(listbox): result = max(listbox) - min(listbox) return result answer(listbox) 마지막 퀴즈 문제에서 저렇게 풀어도 문제는 없는건가요 ?? 저는 함수명을 answer로 설정하고 data 대신 listbox를 바로 받았는데 이렇게 풀어도 문제가 없는지 궁금합니다.
다음과 같이 코드를 작성했는데, 결과값에 .0 이 붙어서 출력됩니다. 왜 그런 걸까요? df['출동시간'] = pd.to _datetime(df['출동시간']) df['도착시간'] = pd.to _datetime(df['도착시간']) df['time'] = df['도착시간'] - df['출동시간'] result = df.groupby('소방서')['time'].mean() result = result.sort_values(ascending=False) result = round( result.dt.total _seconds() / 60) # round 함수에 반올림 위치를 명시하지 않으면 정수를 반환해야 하지 않나요?) print(result[0])
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 2회 기출문제 작업형2에서 왜 쌤이 한거랑 다르게 결과가 나올까요,,,,,,,, # 검증 데이터 분리 아래는 쌤 풀이 입니다 ((7039, 11), (1760, 11), (7039,), (1760,)) 이건 제가 작성한 코드입니다 from sklearn.model_selection import train_test_split X_tr,X_val,y_tr,y_val = train_test_split ( X_train, y_train [ 'Reached.on.Time_Y.N' ] , test_size= 0.2 , random_state= 2022 ) X_tr.shape, X_val.shape, y_tr.shape, y_val.shape ((7039, 10), (1760, 10), (7039,), (1760,))