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으로 데이터 넣어줬는데,, 왜 안넣어요??,,,,,
#클래스명은 주기적으로 바뀔듯 따라서 정규표현식으로 필터링 #광고상품 제거 일반 상품만 products = soup.find_all('div',class_=re.compile('^product_item__')) print(f"Number of products found: {len(products)}") 이런식으로 뒤에 uuid값이 바뀌는 상황을 고려하여 광고 상품 클래스명인 adProduct를 제외하고 일반 상품만 가져오고 싶은데 길이가 자꾸만 13개로 나오는데.. 다른 코드를 작성해야 할까요 ?
교차검증 cross_val_score하기 전에 rf.randomforestclassifier 지정하는 거 외 val 분리도 해야 되는 게 맞나요? train_test_split 하고 그다음 분류 모델 선택하고 교차검증 하고 학습하는 순서대로 꼭 가야되는 건지? 아니면 train_test_split은 생략해도 되는건지 문의드립니다.
안녕하세요. 궁금한 사항이 있어서 질문 드립니다. 문서에서 모든 수식에 alt + 2( 한글오피스에 저장한 2번째 매크로)를 적용하고 싶습니다. 챗 gpt는 pyautogui.hotkey('alt', '2') 를 이용하라고 하는데 적용이 되지 않아서 질문 드립니다. ctrl = hwp.HeadCtrl while ctrl: if ctrl.CtrlID == "eqed": eqedCtrls.append(ctrl) ctrl = ctrl.Next for ctrl in eqedCtrls: hwp.SetPosBySet(ctrl.GetAnchorPos(0)) hwp.FindCtrl() pyautogui.hotkey('alt', '2') hwp.Run("Cancel")
안녕하세요, 이전에 테스트 데이터를 넣었을 때 오류가 난다고 했던 수강생입니다. 주구매상품과 구매지점을 넣어서 훈련시키는 건 해결했는데(이전 질문은 해결됨), 수치형 데이터로 훈련시킬 때 아래와 같은 오류메세지가 뜹니다. 농산물은 주구매상품에 있는 변수던데 수치형만 넣었는데도 불구하고 어디서 나온건지.. 이해가 안됩니다.. 우선 제가 입력했던 코드는 다음과 같습니다. 바쁘신 와중에 확인해주셔서 감사합니다!! 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의 행 데이터가 손실되는 것은 안되는 걸로 이해했습니다. 혹시 제가 이해한 것이 맞는지 봐주시면 정말 감사하겠습니다..!
df2 = df.groupby('country').max() #시간에 따라 접종률이 점점 올라감 df2 = df2.sort_values(by='ratio', ascending = False) 여기서 df.groupby('country')['ratio'].max() 를 하지 않고 그냥 max()를 한 이유가 뭔가요? 접종률 상위 10개국, 하위 10개국을 찾는게 아닌가요?