검증 데이터 분할을 해서 일반적으로 모델에 rf.fit (X_tr_y_tr)을 진행하고 예측하다가 마지막에 바로 pred =rf.predict(test)로 테스트 데이터를 집어 넣는데요, rf.fit (train,target) 으로 다시 학습하고 집어 넣지 않아도 상관이 없나요 ? 두개가 굳이 차이가 없기떄문에 분할로 생성된 모델을 넣는건지 이유가 있는건지 궁금합니다
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 안녕하세요 영상 잘 보고 있습니다. 다름이 아니라 ols나 logit 후 summary로 나왔을 때, 답을 이걸 적으면 된다. 라고 하시면서 그냥 숫자를 적어주시던데. 그래도 되나요? 예) summary 값으로 p_value값이 가장 높은것은? 나왔을때, 따로 model.pvalues.max() 이런방식으로 맥스값을 불러오는게 아니라, 그냥 보고 아 이게 가장 크다 해서 큰 값을 손으로 적어도 되나요? model이후 이름?들 외우기도 힘들어서요 ㅠ 된다고 하면 그 값들은 안외워도 되니까요
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 선생님 작업형2유형의 경우 데이터가 train,test(2개)로 주거나 X_train, X_test, y_train으로 주는 경우가 있는데 제가 이해한 방향이 맞는지 확인해주시면 감사합니다. #2개일 경우(train, test) train 데이터에서 id 분리or 드랍, 타겟값 분리 test 데이터에서 id 분리 or 드랍 train값과 타겟값으로 검증 test 값으로 학습 #3개일 경우(X_train, X_test, y_train) X_train 데이터와 y_train 값(타겟 값)으로 검증, X_test 데이터로 학습 후 제출
from sklearn.model_selection import train_test_split X_tr, X_val, y_tr, y_val = train_test_split(train.drop('output', axis=1), train['output'], test_size=0.15, random_state=2022) 작업형 예시 문제 풀떄는 drop을 통해서, 데이터 삭제하고, 분리했는데,, 여기서는 왜 바로 train이라고 넣나요??,, 그리고 test_id = test.pop으로 데이터 넣어줬는데,, 왜 안넣어요??,,,,,
교차검증 cross_val_score하기 전에 rf.randomforestclassifier 지정하는 거 외 val 분리도 해야 되는 게 맞나요? train_test_split 하고 그다음 분류 모델 선택하고 교차검증 하고 학습하는 순서대로 꼭 가야되는 건지? 아니면 train_test_split은 생략해도 되는건지 문의드립니다.
안녕하세요, 이전에 테스트 데이터를 넣었을 때 오류가 난다고 했던 수강생입니다. 주구매상품과 구매지점을 넣어서 훈련시키는 건 해결했는데(이전 질문은 해결됨), 수치형 데이터로 훈련시킬 때 아래와 같은 오류메세지가 뜹니다. 농산물은 주구매상품에 있는 변수던데 수치형만 넣었는데도 불구하고 어디서 나온건지.. 이해가 안됩니다.. 우선 제가 입력했던 코드는 다음과 같습니다. 바쁘신 와중에 확인해주셔서 감사합니다!! import pandas as pd pd.set_option('display.max_columns',None) train = pd.read_csv("data/customer_train.csv") test = pd.read_csv("data/customer_test.csv") train['환불금액'] = train['환불금액'].fillna(0) test['환불금액'] = test['환불금액'].fillna(0) #cols=['주구매상품','주구매지점']#0.6117 cols=['회원ID','총구매액','최대구매액','환불금액','방문일수','방문당구매건수','주말방문비율','구매주기'] target=train.pop('성별') #from sklearn.preprocessing import LabelEncoder #le=LabelEncoder() #for col in cols: # train[col]=le.fit_transform(train[col]) # test[col]=le.transform(test[col]) from sklearn.model_selection import train_test_split x_tr,x_val,y_tr,y_val=train_test_split(train, target, test_size=0.2, random_state=0) from sklearn.ensemble import RandomForestClassifier model=RandomForestClassifier() model.fit(x_tr,y_tr) pred=model.predict_proba(x_val) #print(pred) from sklearn.metrics import roc_auc_score print(roc_auc_score(y_val, pred[:,1])) pred = model.predict_proba(test) submit = pd.DataFrame({ 'pred': pred[:,1] }) submit.to_csv('result.csv', index=False) print(pd.read_csv('result.csv'))
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 안녕하세요 강사님. 5회 기출유형 작업형 2 베이스 모델 만드는 부분(6분 43초) 관련하여 질문드립니다. rmse 값을 구하니 강사님 값과 다르게 나옵니다(강사님: 1529, 본인: 1548) 랜덤포레스트분류 문제에서는 RandomForestClassifier() 괄호 안에 random_state를 지정해주었는데 이번 강의에서는 RandomForestRegressor() 괄호 안에 아무것도 넣지 않아서 값이 다르게 나온 것일까요? 위의 내용이 맞다면 RandomForestRegressor에도 random_state를 지정해준 후 모델 성능을 개선시켜야 하는 것인지 궁금합니다.
소팅에 관해서 질문 드립니다! 예를 들어 f1컬럼을 내림차순으로 소팅한다고 했을 때 df=df['f1'].sort_values(ascending=False) df=df.sort_values('f1', ascending=False) 위의 두가지 코드는 어떤 차이가 있는지 알 수 있을까요? 그리고 추가로 소팅 후 n개의 데이터를 선택할 때 rese_index를 하는게 좋은지 궁금합니다!
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 값이 -0.049847258342167904 인데 round 써서 3번째까지 나타내려 하니 -0.050 이라 출력이 -0.05 까지밖에 안나와요 ㅜ 이럴 땐 어떻게 하나요? 그냥 print(-0.050) 해야할까요?
만약 결측치가 있는 데이터가 문제로 나오게 된다면 범주형 데이터는 최빈값으로 채우고 수치형 데이터는 중앙값으로 채우려는데 괜찮을까요? (중앙값이 이상치에 덜 민감하다고해서 평균말고 중앙값으로 대체하려고 합니다.) 아니면 제거하는게 좋을까요? 그리고 경우에 따라 다르겠지만 보통 대체하는 쪽이 성능이 더 좋은가요?
작업형 2번을 풀 때, test 데이터의 행은 절대 삭제하면 안되고, 삭제할 경우 0점 처리를 맞는다고 알고 있습니다. 제가 말의 뜻을 정확하게 이해를 못해서 그런데, 혹시 제가 이해한 것이 맞는지 한 번만 확인해주시면 감사하겠습니다. [제가 이해한 뜻] 1번 상황) 예를들어 처음에 train, test 데이터가 주어졌습니다. train.shape, test.shape으로 찍었을 때, (10000,10), (2000,9)가 나왔습니다. 전처리를 통해서, train과 test의 불필요한 컬럼, 결측치가 너무 많은 컬럼을 삭제하였습니다. 그 이후 train.shape, test.shape을 찍었을 때, (10000,8), (2000,7) 이 나왔습니다. 2번 상황) 전처리 하기 전 train.shape이 (2000,9) 가 전처리 후 train.shape이 (1800,7) 이 나왔습니다. 제가 이해하기로, 1번 상황처럼 train과 test의 동일한 컬럼을 삭제하는 것은 상관 없는데, 2번 상황처럼, test의 행 데이터가 손실되는 것은 안되는 걸로 이해했습니다. 혹시 제가 이해한 것이 맞는지 봐주시면 정말 감사하겠습니다..!