선생님 안녕하세요! 기출6회 작업형3에서 질문드립니다. 선생님 강의 풀이에서는 ob = df['항암약'].value_counts().sort_index().to_list() ex = [0.1 * 20, 0.05 * 20, 0.15 * 20, 0.7 * 20] from scipy import stats stats.chisquare(ob, ex) 이렇게 사용하셨을때 정상적으로 답안이 제출되더라고요. ob값을 제일 쉽게 구하기 위해서, df['항암약'].value_counts().sort_index() 한 뒤, 나온 수를 ob값에 넣어두고 풀면 위와 같은 오류가 나오는데 어떻게 풀 수 있을까요? ㅜㅜ
강의에 따르면 아래와 같이 case1은 서로 같고, case2도 서로 같아야 하는데 다르게 나옵니다. 뭐가 문제일까요..? df를 np.array로 받아서 판다스로 std를 구하는데 변화가 있는건가요..? a = [1,3,5,7,8,9,10,14] df = np.array(a) case1: df.std() = np.std(df,ddof=1) case2: df.std(ddof=0) = np.std(df) df.std() #3.8548 np.std(df,ddof=1) #4.1209 df.std(ddof=0) #3.8548 np.std(df) #3.8548
안녕하세요 선생님!! 🙂 lightbgm을 쓰는 것도 추천해주신 글을 보고 이것도 적용해보았는데 자주 아래와 같은 워닝이 떠서 여쭤봅니다. 우선 보여드리는 부분은 기출5 작업형2 문제입니다! # 평가지표 from sklearn.metrics import mean_squared_error import numpy as np def rmse(y_test, pred): return np.sqrt(mean_squared_error(y_test, pred)) # lightgbm import lightgbm as lgb model = lgb.LGBMRegressor(random_state=0, max_depth=3) model.fit(X_tr, y_tr) pred = model.predict(X_val) print(rmse(y_val, pred)) 그리고 다음은 워닝 코드 내용입니다. (아래보다 훨씬 길게 워닝이 뜰때도 있습니다..!) [LightGBM] [Info] Auto-choosing row-wise multi-threading, the overhead of testing was 0.000191 seconds. You can set force_row_wise=true to remove the overhead. And if memory is not enough, you can set force_col_wise=true. [LightGBM] [Info] Total Bins 384 [LightGBM] [Info] Number of data points in the train set: 3195, number of used features: 8 [LightGBM] [Info] Start training from score 12419.846948 1119.6871943178526 워닝 아래로 출력은 잘 되긴 하나 워닝이 계속 떠서 왜그러는지 여쭤봅니다!!
캐글 작업형 2 (T2-6. Bike-Regressor) 파일까지 생성 후, 다운로드 후 submit을 누르면 아래와 같은 메세지가 납니다. 이유 확인 부탁드립니다. 캐글 작업형 (T 2-3 Adult census ~) 1) 라벨 인코딩 오류 object 컬럼을 라벨 인코딩 진행 시 위와 같은 에러가 발생합니다. 인터넷을 찾아보니 문자열과 숫자가 혼합되어 있는지 확인하라고 하는데, Object 컬럼 ('workclass') 1개만 선택해서 해도 변환이 안되는데.. 확인 부탁드립니다. 2) 원핫 인코딩 시 train, test 열 차이 원핫 인코딩을 진행 후, 열 갯수가 1개 차이가 났다가, 민맥스 스케일링 후 다시 52개로 맞춰졌습니다. test로 학습 후 결과 제출 시에는 52, 51 개로 결국 1개 차이가 나서 오류가 나는데요.. 이유를 알 수 있을까요?
> /usr/local/lib/python3.9/dist-packages/xgboost/ compat.py:31 : FutureWarning: pandas.Int 64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead. from pandas import MultiIndex, Int64Index https://dataq.goorm.io/exam/3/%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B6%84%EC%84%9D%EA%B8%B0%EC%82%AC-%EC%8B%A4%EA%B8%B0-%EC%B2%B4%ED%97%98/quiz/4 시험환경에서 xgboost 를 불러올 때 위와 같은 에러가 납니다. 찾아보니 'int64index'를 사용하고 있어서 발생하는 문제고, pandas와 xgboost를 업데이트 하거나 dtype을 직접 int로 변경해서 해결하도록 안내해주네요. xgboost는 제외하고 대비해도 괜찮을까요?
원핫인코딩 관련하여 질문이 있습니다. cols = [ object형 컬럼들, , , ] 으로 지정한 후 어떤 문제에서는 pd.get_dummies(df[cols]) 로 되어있는 곳도 있고, pd.get_dummies(df, columns=cols)로 되어있는 곳도 있는데, 둘다 마찬가지 결과가 나오는걸까요? 추가적으로, 다중분류 부분에서 보면 숫자로되어 있는 object형 변수는 자동으로 원핫인코딩이 되지 않으므로 pd.get_dummies(df[0])으로 코딩해야 한다고 하셨는데요, 그렇다면 위의 예시에서 df, columns=cols로 했을 경우에는 숫자로 되어있는 변수는 dtype이 object형이어도 자동으로 원핫인코딩이 되지않는걸까요..?
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 작업형 2 유형 f1_score로 랜포 돌렸을때 값이 0.4961.. 이 낮게 나오는데 시험에서 이렇게 나와도 괜찮나요? 스케일링 라벨인코딩 작업만 했습니다
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 분류 문제 해설할 경우 test예측할 때 대부분 predict_proba 로 제출한 이유를 궁금하게 생각하였는데... 제가 생각하기에 그 이유는 첫 번째로, 문제에서 0과 1 중 1에 해당할 확률을 구하는 문제라는 점, (예시 신용카드서비스를 떠나는 고객을 찾아라, 심장마비 확률이 높은사람?, 등등) 두 번째로, 제출 예시가 소수점이라는 점, CLIENTNUM,Attrition_Flag 788544108,0.633 719356008,0.123 712142733,0.355 id,output 41,0.633 28,0.123 222,0.355 이라서 test예측할 때 predict_proba 로 제출하신거 맞죠? 반대로, 신규 고객이 어떤 분류에 속할지, 난방 부하 단계를 예측하라에서는 predict로 test를 예측하셔서... ㅠㅠ 정말 기초적인 질문 죄송합니다.
선생님 안녕하세요!! 공부하면서 헷갈려 정확히 알고 싶은 부분 질문드립니다!! :) 1. 작업형 1과 작업형 3의 배점이 각각 어떻게 되는지 궁금합니다! 단답형이 소문제 3점씩해서 10문제, 그리고 작업형1?이 10점씩 3문제라고 하셨던것 같은데 여기서 말씀하신 단답형이 작업형 3일까요?! 2. 스케일링 할 때 target 컬럼이 붙어있을 시 이를 빼고 스케일링 해야 하는것 맞을까요?? 3. 수치형과 범주형 데이터를 나누는 경우가 어떤 것이 있을까요? - 모두 cols를 사용하여 스케일링하고 인코딩한다면 굳이 나눌 필요 없지 않을까 라는 생각이 들어서 여쭤봅니다!! 4. 섹션 4 작업형 1 모의문제 1 문제2번 하드코딩 유무 위에서 예를 들어 주어진 데이터에서 결측치가 30% 이상 되는 컬럼을 찾고 -> 이 부분을 풀 때 df.isnull().sum()으로 f1 컬럼이라는 것을 알 수 있는데, 그 이후 풀어야 하는 부분(해당 컬럼에 결측치가 있는 데이터 행 삭제)을 그냥 위에서처럼 df = df.dropna(subset=['f1'])이라고 풀어도 되는것일까요? 하드코딩의 기준을 잘 모르겠어서 여쭤봅니다! 5. 분산분석 데이터 긴 데이터 형태로 무조건 바꾸어야 하나요? 이원 분산분석 때에는 안바꾸고 바로 한걸로 기억해서요!