묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
lightgbm 결과(y, pred)
안녕하세요 선생님!lightgbm cliassifier를 사용할때범주형 변수를 타입만 category로 바꾸면 사용이 가능하다고 하셨는데요학습할 결과도 범주형 그대로 학습시키면출력되는값도 그대로 범주형으로 출력되나요? 예를들어 예측해야할 값이 A,B,C,D,E라면 그대로 넣으면결과 = 모델.predict(test데이터) 했을때 결과를 출력하면 A,B,C,D,E로 나오는지 궁금합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
3회 기출유형 작업형 2에서 제출항목에서 질문있습니다 !
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요제출형태에 index와 y_pred를 넣으라고 되어있었는데, 이런 상황에서 실제 시험이면 index를 넣지않고 y_pred만 넣는다면 0점 처리가 되는건가요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
2유형 전처리
데이터 전처리할때 타겟이 아닌날짜데이터나 이름, 아이디값 (호스트 아이디) 같은거는 학습에 불필요해서 컬럼을 삭제해주는것이 좋나요?? 같이 학습할 경우 성능이 저하될까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
2유형 최종 csv생성 시, 표현되는 값들의 소수점 관련문의
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요안녕하세요.보통 작업형2 유형의 경우 예시된 pred 값이 소수점인 경우(보통 회귀모델)소수점이 2번째 자리까지 표현되는데 제가 만든 csv파일을 read해보면 소수점 6자리까지도 pred값에표현되고 있는데 상관없는건가요?rmse 값을 y_test로 불러왔을땐 예시로 만들어주신 값과내가 코드를 작성하여 만든값이 별로 차이는 없습니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
구버전 작업형3 문제 문의
안녕하세요! 캐글에서 구버전 작업형3문제를 풀다가 급하게 질문남깁니다 ㅜㅜ 문제에선 정규성이 검증되었다는 말이 없고, shapiro 결과로는 0.05보다 작게 나오더라구요 이럴땐 비모수 검정으로 진행해야한다고 알고 있었는데 풀이에서 ttest_rel로 풀이하셔서요 ㅜㅜㅜㅜㅜ
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
test_size를 조절하니 pred_proba와 test_id 개수가 맞춰졌습니다
랜덤포레스트로 단순하게 테스트사이즈를 0.2로 하고 진행했더니 행의 개수가 달라지더라고요! 그래서 계속 오류가 발생했는데 테스트 사이즈를 조절하다 0.25로 하니 61개로 딱 맞아서 답이 출력되네요!왜 그런지 혹시 이유가 있을까요?사진과 같이 roc로하면 확률이 나오는데 단순하게 pred로 하면 확률이 아닌 0 과1로 출력이 됩니다. 원래 이렇게 나오는건지 궁금하고 문제에서는 roc로 csv를 구하라는건지 궁금합니다. 감사합니다!
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
LGBM 질문
공부하다가 다른곳에서 본 자룐데 이런식으로 코딩해도 되나요??선생님 강의는 import lightgbm as lgb 이렇게 시작하더라구요.. 혹시 같은건가요?그리고 위사진에서 분류만 존재한다는데 맞는건가요??
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
예시문제 작업형 2유형 질문있습니다
import pandas as pd train = pd.read_csv("data/customer_train.csv") test = pd.read_csv("data/customer_test.csv") pd.set_option('display.max_columns',None) # EDA # print(train.shape, test.shape) # print(train.describe(include='O')) # print(test.describe(include='O')) # print(train.isnull().sum()) # 결측치: 환불금액 # print(train.isnull().sum()) # print(train.info()) # print(train.describe(include = 'O')) # print(sorted(list(train['주구매상품'].unique()))) # print(sorted(list(test['주구매상품'].unique()))) a = set(train['주구매상품'].unique()) b = set(test['주구매상품'].unique()) print(a - b) print(b - a) # 데이터 전처리 train['환불금액'] = train['환불금액'].fillna(train['환불금액'].mean()) test['환불금액'] = test['환불금액'].fillna(test['환불금액'].mean()) # print(train.isnull().sum()) # print(test.isnull().sum()) # 원핫인코딩 df = pd.concat([train,test]) df = pd.get_dummies(df) train = df.iloc[:len(train)] test = df.iloc[len(train):] print(train.shape, test.shape) # 검증데이터 분리 from sklearn.model_selection import train_test_split x_tr,x_val,y_tr, y_val = train_test_split(train.drop('성별',axis =1), train['성별'], test_size=0.2, random_state=2022) # print(x_tr.shape,x_val.shape,y_tr.shape, y_val.shape) # 모델 및 평가 from sklearn.ensemble import RandomForestClassifier from sklearn.metrics import roc_auc_score model = RandomForestClassifier(random_state = 2022, max_depth=4, n_estimators=500) model.fit(x_tr, y_tr) pred_proba = model.predict_proba(x_val) print(roc_auc_score(y_val, pred_proba[:,1])) # # 0.6759 # # print(test.shape) # # print(test.isnull().sum()) # 예측 및 제출 pred_proba = model.predict_proba(test) train이 test를 포함할 경우 train + test 를 합쳐서 원핫인코딩을 진행했습니다.모델 및 평가까지는 에러 없이 진행하였는 데 test 데이터를 예측하는 pred_proba = model.predict_proba(test) 부분에서 아래와 같은 에러가 발생했습니다. 어떤게 문제였는지 궁금하여 질문글 올립니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형 3 검정방법 결정하기 질문드립니다..!!
안녕하세요! 항상 질문에 친절하게 답변해주셔서 감사드립니다.작업형 3에서 검정 방법 별 코드는 외웠는데 문제는 이걸 문제에 실제 적용하는게 너무 어려운것 같습니다...문제에 대응표본검정을 사용하라, 카이제곱 검정을 사용하라 이런말이 없이 그냥 말로 표현해서 검정통계량이나 pvalue 값을 구하라 했을때 어떤 검정을 사용해야될지 구분하기 쉬운 팁같은게 있을까요 ㅠㅠ
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
인코딩 에러
인코딩할때 범주형 변수의 train 과 test 고유값의 수가train < testtrain != test위의 경우일 때 인코딩을 진행하면 무조건 에러가 발생하나요? 고유값의 수가 일치하는지 확인하지 않고 바로 인코딩을 진행하려고 하는데진행하다가 에러가 발생하면 컨캣을 진행하려고 합니다. object 컬럼이 4개이면 4개다 고유값의 수를 확인해야하는거죠??set () - set() 이런식으로 빼서 컬럼마다 확인해야하는 방법밖에 없는 걸까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
ttest 검정통계량
stats.ttest_rel(df['after'],df['before'],alternative='less'데이터 순서에 따라 검정통계량이 양수/음수로 바뀌는데 문제에서 검정통계량을 물어보는 경우에는 양수/음수 중에 어떤것으로 답해야 하나요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
dir 함수 사용, logit
dir 함수를 사용해서 from statsmodels 뒤에 값들을 찾을 수 있나요?해도 계속 오류가 나서요 ㅠㅠ from statsmodels.formula.api import ols ols 값을 import 하는 방법이 기억안날까봐 찾을 방법 있으면 알려주심 감사하겠습니다!! logit 모델 사용할 때 object 값 아닌 독립변수 전체를 C () 처리를 하니까 오류가 나던데 전체를 하면 안되는 건가요?이전에 강의에서 전체를 해도 된다고 했던것 같아서요!!
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
오류 질문있습니다
모델 예측 전에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)검증데이터를 추가 했는데 길이가 맞지 않다는 오류가 났습니다 혹시 이 경우에는 어떻게 해야할까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형2모의문제1 제출
제가 파일생성하고 읽었을때 predict_proba[:,1]로 제출할때 2.168991e-05 꼴로 값들이 나오던데 이상태로 제출해도되나요 아니면 보정하고내야되나요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
분류모델 파라미터
작업형2모의문제1을 영상안보고 풀었을때 제가 RandomForestClassifier랑 DecisionTreeClassfier랑 XGBClassifier 다 실행했는데요 전부다 random_state=2022,max_depth=7,n_estimators=200 이렇게 설정했는데 랜덤포레스트랑 XGB 두개는 되는데 DecisionTreeClassfier가 DecisionTreeClassifier.__init__() got an unexpected keyword argument 'n_estimators' 라는에러가 뜨면서 안되더라고용 의사결정나무는 n_estimators라는 파라미터가 없는건가요??
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
케글 T2-6. Bike-Regressor 전처리 문의
안녕하세요, 선생님마지막날이라 그런지 다 확인받고 싶네요.. 질문 많이 남겨 죄송합니다. 작업유형2에서 데이터 전처리시train, test 컬럼은 삭제 가능, test 행 삭제 불가로 알고 있는데요. 아래 케글 문제 전처리시에는 datetime 컬럼을 dt 연산을 통해 year/month/day로 추가하셨더라고요그럼 train, test 전처리시 컬럼 추가시키는 건 가능한거죠? ㅇ https://www.kaggle.com/code/agileteam/t2-6-bike-regressor P.S 갠적으로 좋은 문제라고 생각드는게 2유형에서 전처리시 datetime 데이터 핸들링, 1유형에서는 str 연산자 활용 나오지 않을까 추측중입니다 ㅎㅎ
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
예시문제 작업형2(신버전) 질문있습니다
roc_auc_score은 proba를 쓰는걸로 아는데아래 코드에 어떤 문제가 있어서 에러가 뜨는지 궁금합니다에러지점: pred=model.predict_proba(test)
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
5회 작업형2 질문있습니다.
import pandas as pd train = pd.read_csv("train.csv") test = pd.read_csv("test.csv") # print(train.shape,test.shape) # print(train.head()) # print(test.head()) # print(train.isnull().sum()) # print(test.isnull().sum()) # print(train.describe(include='object')) # print(test.describe(include='object')) target = train.pop('price') from sklearn.preprocessing import LabelEncoder cols = ['model'] for col in cols: le = LabelEncoder() train[col] = le.fit_transform(train[col]) test[col] = le.transform(test[col]) # print(train.head()) train = pd.get_dummies(train) test = pd.get_dummies(test) # from sklearn.preprocessing import MinMaxScaler # cols = ['year','mileage','tax','mpg','engineSize'] # scaler = MinMaxScaler() # train[cols] = scaler.fit_transform(train[cols]) # test[cols] = scaler.transform(test[cols]) # print(train.head()) # 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=2023) # from sklearn.ensemble import RandomForestRegressor # model = RandomForestRegressor(random_state=2023,max_depth=5,n_estimators=200) # model.fit(X_tr,y_tr) # pred = model.predict(X_val) # print(pred) import lightgbm as lgb model = lgb.LGBMRegressor(random_state=2023,max_depth=5,n_estimators=200) model.fit(X_tr,y_tr) pred = model.predict(X_val) from sklearn.metrics import mean_squared_error print(mean_squared_error(y_val,pred)**0.5) pred = model.predict(test) pd.DataFrame({'pred':pred}).to_csv("result.csv",index=False) pd.read_csv("result.csv")질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요model의 unique개수가 19개로 많아서 model만 라벨인코딩한 후 나머지는 원핫인코딩으로 진행했는데 위의 코드처럼 하는게 맞을까요?수치형에서 minmax사용했을 때, 별 차이가 없으면 범주형 인코딩만 진행해도 될까요? 아니면 범주형은 필수이고 수치형은 선택이니, 굳이 안해봐도 될까요? lightgbm을 사용했을때 값은 나오지만 아래와 같은 오류도 같이 출력됩니다. 무슨 문제인가요? [LightGBM] [Warning] No further splits with positive gain, best gain: -inflearning_rate는 lightgbm에만 쓸 수 있는건가요? 랜덤포레스트에서 사용시 오류가 뜹니다.max_depth는 3~7, n_estimators는 200~800사이로 하는게 맞나요?실습환경을 보면 데이터가 자동으로 불러와져있는데, 실제 시험에서도 자동으로 불러와져있나요? 아니면, 데이터 저장 위치를 알려주나요? 작업형1,2,3 모두 제출은 여러번 가능하고 마지막으로 제출한 값이 저장되는게 맞나요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
사후검정 문의
작업형 3에서 투키, 본페로니 사후검정에 대해 말씀주셨는데요..!코드가 복잡하고 어려워서.. 암기하기가 쉽지 않네요작업형3에서 사후검정을 수행해야만 풀이 가능한 문제로 나올 가능성이 높은 걸까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
lightgbm 사용 관련
안녕하세요 선생님 랜덤포레스트 사용을 위해 전처리 과정에서 인코딩, 스케일링, 데이터 분리 등 코드를 이미 다 짜둔 상태에서lightgbm을 추가로 모델링하고 싶은 상황이 올 때object 컬럼 전처리 한것을 category로 변경해줘야 정상 동작하는 걸까요?아님 모델링 이전에 해둔 단계는 그대로 두고 lightgbm fit할때 X_tr, y_tr만 넣으면 정상동작 하는걸까요?