안녕하세요! 명목형 자료의 인코딩 시 Test 데이터에만 있는 Unique 값이 있을 수 있어 데이터를 합치고 인코딩 한 후에 다시 분리하는 것으로 이해하였습니다. 예시에 사용된 원핫인코딩의 pd.get_dummies와 달리 라벨인코딩의 경우 사이킷런의 인코더를 이용하는데, 이에 따라 fit_transform, transform으로 나누어 진행하는 것 같습니다. 질문은! 라벨인코딩의 경우에 Train, Test 데이터를 합쳐서 인코딩 할 때 fit_transform을 사용하면 될까요?
안녕하세요! 결측치 처리 시에 아래와 같이 수치형 컬럼의 경우 Train 데이터의 평균, 중앙값을 Test 데이터 결측치 처리에 사용한 반면, 명목형 컬럼의 경우 Test 데이터 결측치 처리 시에 Test 데이터의 최빈값을 이용한 이유가 궁금합니다! 통상적으로 이렇게 진행되는 것인지, 아니면 해당 데이터셋의 경우 Train 데이터와 Test 데이터의 최빈값이 동일해서 단순히 이렇게 처리된 것인지 궁금합니다! # X_train데이터 X_train['workclass'] = X_train['workclass'].fillna(X_train['workclass'].mode()[0]) X_train['native.country'] = X_train['native.country'].fillna(X_train['native.country'].mode()[0]) X_train['occupation'] = X_train['occupation'].fillna("X") X_train['age'] = X_train['age'].fillna(int(X_train['age'].mean())) X_train['hours.per.week'] = X_train['hours.per.week'].fillna(X_train['hours.per.week'].median()) # X_test데이터 X_test['workclass'] = X_test['workclass'].fillna(X_test['workclass'].mode()[0]) X_test['native.country'] = X_test['native.country'].fillna(X_test['native.country'].mode()[0]) X_test['occupation'] = X_test['occupation'].fillna("X") X_test['age'] = X_test['age'].fillna(int(X_train['age'].mean())) X_test['hours.per.week'] = X_test['hours.per.week'].fillna(X_train['hours.per.week'].median())
조건 대륙('continent')별 맥주 소비량(‘beer_servings’)의 평균을 계산하고, 평균이 가장 큰 대륙을 찾으시오. 1번에서 찾은 대륙에서 맥주 소비량이 5번째로 많은 국가(‘country’)의 맥주 소비량을 구하시오. 이 문제를 풀 때 정답과는 조금 다르게 풀었는데 단순히 답만 나오면 상관 없나요 ? 선생님이 풀이해주신 걸 보면, 별도의 변수를 만들어 대입 후 비교를 하셨는데, 저같은 경우는 데이터프레임에 바로 대입을 하고, 1번 조건이 Europe인 것을 확인 후 주석처리를 했습니다. # df = df.groupby('continent').mean('beer_servings') # df = df.sort_values('beer_servings',ascending = 0) # 평균 가장 큰 대륙 : Europe cond = df['continent'] == 'Europe' df = df.sort_values('beer_servings', ascending = 0) print(df.iloc[4, 1]) 이후 조건 변수에 대입 후 313 답을 도출했는데, 이렇게 풀면 틀릴까요 ?
안녕하세요 선생님, 강의 잘 듣고 잇습니다. 머신러닝 분석 절차는.. (1) train 데이터를 tr과 val로 분리 (2) tr 데이터로 학습 (3) val 데이터로 성능평가 (4) 그리고 test 데이터로 예측결과 제출 위 순서인 것으로 이해했는데, (4)번에서 train(tr+val) 데이터가 아닌 tr 데이터로 학습한 것을 바탕으로 예측한 결과를 제출하는건가요? train(tr+val) data로 다시 학습한 후에 예측하지 않아도 되는 것인지 궁금합니다.
지금 데이터를 보면 Roof 데이터에 수치형과 범주형이 동시에 존재하는데 저는 범주형 데이터를 라벨인코딩 진행 후 , 데이터분할, 랜포돌림, 그리고 마지막으로 예측하려고하니 다음과 같이 나왔습니다. 에러 내용을 보니... test데이터에 존재하는 object 때문에 이러한 문제가 발생하는 것 같은데... 이처럼 하나의 열에 수치형, 범주형이 동시에 존재하면 이 경우에는 원-핫인코딩을 쓰는게 더 나을까요?
제가 작업형2를 학습중인데 모르는 부분이 생겨서 질문드립니다. 작업형2에서 EDA를 진행할 때 기초통계값에서는 어떠한 부분을 확인하나요? RobustScaler나 MinMaxScaler같은 전처리 함수는 수치형데이터를 전처리할 때 사용하는 함수인가요? 그렇다면 기출8회 작업형2에서는 왜 LabelEncoder만 진행을하고 수치형데이터에는 따로 전처리를 진행하지 않은건가요? 기출8회 작업형2에서 customerID를 제거하던데 왜 ID값들은 제거해야하나요? 질문 답변해주시면 감사하겠습니다!!
결론부터 말하면 검색할 때 페이지네이션 현재 페이지가 1로 안 바뀌어서 바꿔봤습니다. 예를 들어 ‘철’이라는 검색어를 입력했더니 페이지가 2페이지까지 있음. 2페이지를 클릭해 2페이지가 보이는 상태에서 검색어를 ‘철수’로 바꾸니 게시글 수가 1페이지까지밖에 없었는데, 1페이지가 현재 activedPage가 아니게 됨(없어진 2페이지 그대로). 검색한 게시글 목록 refetch는 제대로 이루어지기에 1페이지의 내용이 보이는 것은 맞지만 현재 페이지 숫자가 제대로 표시되지 않음. 또한 ‘안녕하세요’의 12페이지를 보고 있었는데 ‘안녕’으로 검색어를 바꾸니 당연히 refetch를 통해 1페이지 게시글 목록을 보여주지만, 페이지네이션은 그대로 11, 12 , ..., 20임 검색어가 바뀌면 페이지네이션의 activedPage와 startPage를 1로 변경해주도록 Paginations01.container에서 useEffect 실행시켜 해결 useEffect(() => { setStartPage(1); setActivedPage(1); }, [props.count]); 검색어를 바꾸면 검색된 총 게시글 수도 보통 달라질 거라는 생각에 props.count를 의존성으로 써본건데 검색어를 바꿔도 우연히 검색된 총 게시글 수가 똑같을 경우 useEffect 실행 안 되니 정말로 검색어가 달라질 때를 기준으로 하려고 BoardList에 있는 keyword를 pagination 컴포넌트에 props로 넘겨줘서 사용 // BoardList.presenter.tsx <Paginations01 refetch={props.refetch} count={props.count} keyword={props.keyword} /> // keyword 전달 // Paginations01.container.tsx useEffect(() => { setStartPage(1); setActivedPage(1); }, [props.keyword]); // Paginations01.types.ts export interface IPaginations01Props { ... keyword?: string; ... } 고쳐지긴 했는데 일단 useEffect에서 setState를 하고 있다는 점(여기선 크게 상관이 없는건지?)과 페이지네이션 컴포넌트인데 keyword라는 걸 받아온다는 것 자체가 검색 컴포넌트의 영향을 받는다는 뜻 아닌가 싶어서(keyword는 검색 기능이 있을 때만 존재하니까) 제대로 된 컴포넌트 분리에 대한 고민(keyword?로 하면 페이지네이션 컴포넌트 쓸 때 keyword 써도 되고 안 써도 되니까 이대로 해도 괜찮을지...?) 다른 방법은 있는지? 의견 있으시면 알려주시면 감사하겠습니다. 그외 궁금한 점 저는 이거 하는 과정에서 yarn dev 해놓은 상태에서 코드들을 저장 계속 하면서 고쳤는데 그럼 원래 바로바로 반영이 되잖아요. 코드에는 문제가 없어서 제대로 작동해야 했는데 페이지네이션 컴포넌트에서 props.keyword가 자꾸 undefined인 바람에 useEffect도 작동 안해서 코드가 문젠줄 알고 한참 삽질 후 그냥 vscode와 크롬 등등 다 끄고 좀 나중에 그대로 다시 켜보니까 잘 작동하게 됐는데 (yarn dev를 끊었다 다시 하는 거로는 아마 해결 안됐음) 이게 처음이 아니고 저번에도 한 번 포기하고 결국 다음날 켜보니까 코드는 그대로인데 갑자기 잘 되었는데 정확히 무엇때문에 이런 문제가 생기는건지 모르겠네요!!! (캐시? .next? 뭐 그런 거 때문인가요?)
안녕하세요. 섹션19에서 에러메세지와 마주하기 강의를 수강하는 중에 궁금한 점이 생겨 질문 남깁니다. 에러 3의 결측치로 인한 에러 부분 코드를 코랩, 시험환경에서 모두 실행해보았을 때 결측치를 채워넣지 않았음에도 에러 없이 잘 실행이 됩니다. 수정을 전혀 하지 않고 그대로 실행하였음에도 제대로 실행이 되어서 왜 그런지 알고싶습니다. 그리고 함수/조건문 에러 부분에서도 강의와 똑같이 들여쓰기를 했을 땐 에러가 나는데, 처음부터 함수 코드를 똑같이 작성했을 땐 에러가 나지 않습니다. 육안으로 보기에는 동일해보이는데 왜 들여쓰기만 한 코드로 실행했을 땐 에러가 나는건지 궁금합니다. (사진 상에서 빨간 색으로 표시해둔 부분이 원래 코드에서 들여쓰기만 한 부분이고, 주석처리된 노란색 표시 부분이 제가 똑같이 동일한 코드를 작성한 부분입니다.) 에러
랜덤포레스트 모델 학습을 할 때 .fit과, pred를 수행한 후 별도로 pred_proba를 수행하는데 모델링의 pred_proba는 인자값으로 X_val이 주어지고, 예측할 때는 pred_proba의 인자값으로 test가 들어가게 되는데 왜 그런건가요 ? 별도로 슬라이싱을 하지 않았는데, train_test_split 데이터 분리를 수행한 후 X_tr, X_val의 len 값은 test_size에 의해 결정되는 건가요? 예측할 때 pred_proba에 X_val 값을 넣었더니 길이가 서로 다르다고 실행이 되지 않는 것으로 확인했습니다.
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 시험칠때, RandomForest만 이용하여 풀어도 될까요?? 분류는 f1-score 나 다른 식의 함수가 기억나지 않는다면 모델 학습 및 평가에서 RandomForestClassifier만을 사용해도 되나요? 마찬가지로 회귀에서도 다른 식의 함수가 기억나지 않는다면 모델 학습 및 평가에서 RandomForestRegression만 사용해도 되나요??