묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
체험 2유형 문제 질문
안녕하세요, 체험사이트 2유형 문제 풀어보다가 질문이 있습니다. ( 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 ) 문제에 성별을 예측하는 모델을 만들고, 제출하는 csv 파일 내용 예시가 pred 0 0 0 1 이런 식으로 되어있는데 예측 결과는 ROC_AUC 평가지표로 평가한다고 되어있어서요. 이럴때는 predict를 써야할지, 아니면 predict_proba를 사용해서 pred[:,1]을 csv로 만들어야 할지요..
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
링크 모음 제공
선생님 안녕하세요,혹시 매 강의 colab 링크랑 수업 자료들 압축해서 강의 하나에 업로드 해주실 수는 없나요?? 탭으로 강의 들으면서 컴퓨터로 실습 따라하는데 매번 탭이랑 컴퓨터 로그인 왔다갔다 하면서코랩이랑 자료 받기가 너무 힘듭니다 ㅠ.ㅠ
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
회귀 파일 제출할 때 오류가 납니다...!
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요이러한 오류가 나는데 어떻게 해결해야 할지 알 수 있을까요?id를 미리 빼놓은 test_id로 하고, price 컬럼 값은 예측값으로 잘 넣은 것 같은데 어떤 이유에서인지 오류가 납니다. 갯수가 틀리다는 것 같은데 해결하지 못해 글 올립니다. 감사합니다
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
305 Classification 강의에서 랜덤포레스트, XGboost값이 다르게 출력
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요동영상 23:26안녕하세요.의사결정나무는 값이 동일하게 출력되는데,랜덤포레스트, XGboost는 값이 다르게 출력됩니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
숫자형을 문자형으로 전환하여 가져오기
선생님 문자열에서 str[ ]을 사용하여 원하는 값을 가져오는 방식은 이해를 했습니다. 문득 숫자가 있을 때 일의자리, 백의 자리 숫자를 가져올 경우 이 숫자를 str형태로 바꿔서 가져올수 있는지도 궁금해졌습니다.예를 들어 123이 있을 때 일의 자리 숫자, 십의 자리 숫자를 가져오고 싶을 때 int64타입을 astype함수를 사용하여 string으로 바꾸고 위와 같은 방식으로 적용이 가능할까요???
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
3-3 데이터 전처리 질문
age 컬럼과 hours.per.week 컬럼 결측치 채울 때test 데이터 결측치를 train 데이터의 평균값으로 채우는 이유을 알 고 싶습니다.train 데이터와 test데이터의 평균 값이 미세하기 차이가 있던데 train 데이터로 결측치를 채우는 게 맞는 걸까요? 아니면 시험에선 구분 없이 train 데이터로 채워도 문제가 없는 걸까요?3-4 강의에서는 test데이터는 test데이터로 채우시는데 이유가 있을까요
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형1 모의문제3 7번문제
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요df = df.T df.head() mean_2001 = df[2001].mean() mean_2003 = df[2003].mean() a = sum(df[2001] > mean_2001) b = sum(df[2003] < mean_2003) print(a+b)이렇게 작성하면 결과가 다르게 나오는데,, 어디서 잘못된 것일까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
list, dtypes 활용
스케일링 작업할 컬럼명을 list 로 활용할 때 질문이 있습니다.1개 데이터 타입은 아래처럼 쓰면 되는데, cols = list(X_train.columns[X_train.dtypes == object])int, float 를 list 로 한번에 활용하려면 어떻게 해야하는지 문의드립니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
5회 기출 2유형 답 질문드립니다!
import pandas as pdtrain = pd.read_csv("train.csv")test = pd.read_csv("test.csv") from sklearn.preprocessing import LabelEncodercols = train.select_dtypes(include='object').columns for col in cols : le = LabelEncoder() train[col] = le.fit_transform(train[col]) test[col]=le.transform(test[col])from sklearn.model_selection import train_test_splitX_tr, X_val, y_tr, y_val = train_test_split(train.drop(['price'],axis=1), train['price'], test_size=0.1, random_state=2022)from sklearn.ensemble import RandomForestRegressorfrom sklearn.metrics import mean_absolute_errormodel=RandomForestRegressor(random_state=2022)model.fit(X_tr, y_tr)pred=model.predict(X_val)pred=model.predict(test)submit=pd.DataFrame({'price':pred})submit.to_csv("00000.csv",index=False)pd.read_csv("00000.csv") 답 풀이과정 자체를 외워서 풀이연습중인데요!위처럼 해도 고득점 받을수 있을지 문의드립니다. ㅎㅎRMSE를 몰라서 그냥 MSE로 풀었다고 가정해봤습니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형3(신 버전) 문의
강의에서 Gender가 범주형변수라 C(Gender)형태로 만들어주셨는데 굳이 C로 감싸지않아도 결과가 같게 나오는거 같길래 그냥 C로 감싸지 않고 출력해도 상관없을까요??다중선형회귀 강의에서 ols에서도 범주형변수를 그냥 넣으면 쓸 수있다고 하신 것처럼 이것도 마찬가지 일까요??
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형 2유형의 전반적인 풀이에 대해 질문드립니다.
from sklearn.preprocessing import LabelEncodercols = train.select_dtypes(include='object').columnsfor col in cols: le=LabelEncoder() train[col]=le.fit_transform(train[col]) test[col]=le.transform(test[col])train = train.drop('ID', axis =1)test_id = test.pop('ID')from sklearn.model_selection import train_test_splitX_tr, X_val, y_tr, y_val = train_test_split( train.drop(['Segmentation'],axis =1), train['Segmentation'], test_size = 0.2, random_state = 2023)from sklearn.ensemble import RandomForestClassifiermodel = RandomForestClassifier(random_state=2023)model.fit(X_tr, y_tr)pred = model.predict(X_val)from sklearn.metrics import f1_scoreprint(f1_score(y_val, pred, average='macro'))pred = model.predict(test)submit = pd.DataFrame({ 'ID': test_id, 'Segmentation' : pred })submit.to_csv("00000.csv", index = False) 안녕하세요!! 저같은경우 시험 합격만을 위한 방법으로 공부를 하고 있습니다. 그래서 작업형 2유형의 경우 어떤 문제가 나와도 동일한 풀이로 풀 수 있도록 한개의 풀이 절차를 위와 같이 외우고 있는데요! object 컬럼이 존재한다는 가정하에 위와 동일한 절차로 f1_score 정도 바꿔가면서 풀었을때 충분히 만점을 받을 수 있는걸까요?여기서 만약 object 컬럼이 없고 수치형 컬럼들로만 구성되어있다면, 라벨인코딩 부분만 빼고 나머지는 그대로 진행해도 되는건가요?만약 위와 같은 풀이를 진행했을때 풀이가 불가능한 경우는 어떤 경우가 있을까요?분류든지 회귀든지 전부 랜덤포레스트를 사용할 계획인데 분류와 회귀는 어떻게 구분해야 할까요? 문제에서처럼 f1_score로 평가하라 이런식의 알려주는게 없다면 랜덤포레스트 유형을 정할때 어떤것을 기준으로 정해야 할까요? 많은 질문 드려서 죄송하지만...꼭 합격하고 싶은 마음에 문의드립니다!! 항상 감사합니다!!
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형2 모의문제 질문입니다 !
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요1) 작업형2 모의문제1에서 'CLIENTNUM' 컬럼은 왜 삭제되어야 하는건지 이해가 안돼서 질문 드립니다 ! ㅠㅠ 2) 데이터 전처리&피처 엔지니어링 과정에서 아래와 같이 문제에서 주어진 값에 대해 train 데이터에서는 id를 삭제하고, test 데이터에서는 복사하는데요 이러한 과정은 왜 train에서는 삭제를 하고 test 데이터는 복사하는건지 잘 이해가 안되네요ㅠㅠtrain = train.drop('id', axis=1) test_id = test.pop('id') test.head() 3) X_tr, X_val, y_tr, y_val 데이터가 각각 무엇을 의미하는지 헷갈립니다ㅠㅠ 쉬운 설명 부탁드려요ㅠㅠ
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업 1, 3유형 답안 제출 관련 질문드립니다!
예전에는 print 해서 f1 이 나와야 했다면, 지금은 답안지 제출란이 따로 있어서 거기에 답만 적어서 제출하는 형식이던데 그러면 df.isnull.sum() 해보고 어 f1이 제일 많네하고 바로 답안지 제출에 f1을 적어도 답이 인정되는거겠죠...??
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
t-test에서 less냐 greater냐
안녕하세요. 만약에 t-test문제가 주어졌을 때..alternative='less'를 줘야할지alternative='greater'를 줘야할지너무 헷갈리네요..ㅠ 이걸 문제 속에서 캐치해낼 수 있는 노하우가 있을까요...ㅠ?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
6회 기출유형 질문있습니다!!
선생님 안녕하세요 6회 기출 유형을 최대한 혼자서 해결하려했지만, 최대값까진 구했는데 그 값이 포함된 행을 구하는 방법을 몰라서 결국 포기하였습니다...import pandas as pd df = pd.read_csv("data6-1-2.csv") df['총학생수'] = df.iloc[:,2:].sum(axis = 1) result = df['총학생수'] / df['교사수'] result.max() 강의를 보고 idxmax() 이란걸 알게 되었는데 혹시나 이것을 몰랐을 경우에는 위에 제가 적어놓은 풀이에서는 어떻게 풀어나갈 수 있을지 궁금합니다ㅠㅠㅠㅠ
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
검증데이터 분리가 이해가 안가요,,,
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요 검증데이터 분리가 이해가 가질 않습니다..질문 총 4가지 입니다,, 중간중간 제가 이해한 부분이 맞는지(괄호 후 이해가 맞는지 ? 표현들) 체크 부탁드립니다,, 1)***섹션11 예시문제 작업형 2에서# 검증 데이터 분리from sklearn.model_selection import train_test_splitX_tr, X_val, y_tr, y_val = train_test_split(X_train, y_train['gender'], test_size=0.2, random_state=2022)X_tr.shape, X_val.shape, y_tr.shape, y_val.shape이 작업하기 전에X_train = X_train.drop(['cust_id'], axis=1)cust_id = X_test.pop('cust_id') 이렇게 해서 X_train 안에 cust_id는 삭제하고 X_test의 cust_id는 csv 파일 만들 떄 필요하므로 살려놨는데 검증데이터 분리할 때 train_test_split(X_train, y_train['gender'],여기서 X_train은 타겟값인 gender가 데이터에 없으므로 drop을 안시켜도 된거고 그렇기 떄문에X_train이 그대로 들어간 것이고(<<<이게 맞는 이해인가요?)그리고 뒤쪽에 y_train['gender']은 만약에 y_train데이터 컬럼에 gender가 이미 있으므로 X_train 데이터에 있는 gender를 끌어오지 않고 그대로 사용할 수 있기 떄문에 pop 기능을 안쓰고y_train['gender']를 그대로 쓴건가요?? (<<< 이게 제대로 이해한건가요?) -- 그리고 여기서 왜 cust_id는 drop을 왜 안시킨 건가요? 밑에 질문 4)에서는 'ID'를 drop하는 작업을 하면서 검증데이터 분리 했는데 여기서는 cust_id를 drop 안시킨 이유가 있는건가요? --- 아 이건 drop 하고 pop 했네요!! 밑에 질문 3) 에서는 ID drop과 pop작업을 왜 안한건지 궁금합니다! 2) 5회 기출유형 2에서 수치형 활용 부문에서도검증데이터 분리하는데from sklearn.model_selection import train_test_split X_tr, X_val, y_tr, y_val = train_test_split(train, y_train, test_size=0.2, random_state=2022)여기서도 그러면 train 데이터 컬럼에는 price가 있고 test 데이터 컬럼에는 price가 없기 떄문에train 컬럼에 있는 price를 끌어다가 y_train에 저장한 건가요?근데 그러면 train에서는 price를 drop 하는작업 --> train.drop('price', axis=1) 이걸 안해도 돼서 그대로train을 쓴 건가요?( << 이게 맞는 이해인건지?)그러면 뒤쪽에 y_train은 왜 그대로 쓴건가요? 검증데이터 분리 전에 pop 작업해서 y_train에 저장했는데 그러면 검증데이터 분리 뒤쪽에는 y_train['price'] 이렇게 들어가야 맞는거 아닌가요? 3)4회 기출유형2에서 마지막 고급단계에서 검증데이터 분리 안한 이유가 있나요?? 강의에서는 라벨인코딩 for문으로 안풀고 다른 방법으로 하셨는데 만약에 라벨인코딩 하고 for문으로 하고나서 검증데이터 분리 하고 fit하고 pred하는 코드를 알 수 있을까요?4회 기출유형 작업형2에서 검증데이터 분리 안했는데 라벨인코딩 for문까지 하고 그 다음에 검증데이터 분리로 코드 실행한다고 하면from sklearn.model_selection import train_test_splitX_tr, X_val, y_tr, y_val = train_test_split( ____, ____, test_size=0.1, random_state=2022)이렇게 한다고 하면 저 빈칸에 들어가는 게 뭔가요? train 컬럼과 test 컬럼에 모두 ID가 있는데 제출 형식이 ID와 Segmentation이기 때문에둘다 ID drop 작업을 안했던데 그래서 인건가요? 밑에 4) 질문에서는 'ID' drop 작업 했는데 왜 여기서는 같은 ID drop 작업과 pop 작업을 안한건가요? ( << 이게 제가 제대로 이해한건지?)만약 4) 작업형 모의문제3 처럼 ID도 drop과 pop을 헀고 위에 질문 1)에서도 cust_id도 drop과 pop작업을 헀는데 4회 기출유형2에서는 왜 ID drop작업과 pop 작업을 안한건가요?train = train.drop('ID', axis=1)test_id = test.pop('ID') <<< 이 두가지를 해줘야 하는거 아닌가요? 그럼 위에 빈칸 고급 단계에서 검증데이터 분리하기 전에target = train.pop('Segmentation')test_id = test.pop('ID')이 두 작업을 실행한 후에앞에가 타겟데이터를 제외한 값이고 뒤에가 타겟데이터이면앞에는 train.drop('Segmentation', axis=1), target['Segmentation'] 이 들어가는게 맞나요? 4)작업형2 모의문제3 에서train 컬럼에는 id와 output이 있고test 컬럼에는 id는 있지만 output 이 없습니다제출형식은 id output인데,검증데이터 분리에서 앞쪽에는 train 컬럼의 output을 drop시켰고, 뒤쪽에는 train데이터의 output을 그대로 썻습니다여기서는 왜 pop하는 과정을 안거친건지 궁금합니다target = train.pop('output') 을 검증데이터 분리 하기 전에 실행했다면검증데이터 분리에서 뒤쪽에는 어떤 값이 들어가야 하나요?? train = train.drop('id', axis=1) test_id = test.pop('id') # 나중에 id값이 csv파일 만들 때 필요해서 id를 살려주는 작업 test.head()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)
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
5회 기출유형 질문 > between 사용
정상체중: BMI 18.5이상 ~ 23미만과체중 또는 위험체중: BMI 23 이상 ~ 25미만cond1 = (df['bmi'] >= 18.5) & (df['bmi'] < 23) cond2 = (df['bmi'] >= 23) & (df['bmi'] < 25)혹시 이거를 between을 사용해서 cond1 = df['bmi'].between(18.5,23) cond2 = df['bmi'].between(23,25)이렇게 하고 싶은데 between은 시작과 끝점을 모두 포함하는건지 만약 시작은 포함하고 마지막은 포함하지 않게 하려면 어떻게 해야 하는지 궁금합니다!!
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
회귀 prediction 관련 데이터 크기 오류 질문
안녕하세요, 5회 작업형을 풀면서 궁금한게 생겨 질문 드립니다.from sklearn.model_selection import train_test_split X_tr,X_val,y_tr,y_val = train_test_split(train,y,test_size = 0.1,random_state= 2022) #modeling # randomForestRegressor, XGBRegressor from sklearn.ensemble import RandomForestRegressor #RandomForest model = RandomForestRegressor() model.fit(X_tr, y_tr) pred = model.predict(X_val) print("rmse:", (mean_squared_error(y_val,pred))**0.5)이 과정에서는 문제가 생기지 않습니다. X_tr, y_tr 그리고 X_val로 만들어진 pred, y_val의 크기가 각각 일치하기 때문인데 제출을 위해 pred = model.predict(test) print("rmse:", (mean_squared_error(y,pred))**0.5) # y는 test data에서 pop한 타겟(=price)이걸 돌리면 사이즈가 맞지 않아 rmse가 나오지 않는다고 합니다. 그도 당연한게 test = pred 는 애초에 train데이터보다 숫자가 훨씩 적은 상태고, y는 train데이터에서 와서 데이터 개수가 훨씬 크기 때문인데요.전에 똑같은걸 풀어서 그 때는 어떻게 해결했나 보니 y데이터를 따로 주셨더라구요 그건 test data와 크기가 같았고요.근데 https://www.kaggle.com/competitions/big-data-analytics-certification-kr-2023-5th/data여기에는 y데이터 값이 존재하지 않는데 이런..경우는 어떻게 해결하나요?? 정리하자면, pred의 데이터 사이즈와, 타겟의 데이터 사이즈의 불균형으로인한 rmse 오류를 어떻게 해결하는지 궁금합니다! 아, 그리고 concat 관련 질문도 있습니다.#get dummies train_c = pd.get_dummies(train[cols_c],dtype=int) #cols_c는 범주형 데이터 columns list test_c = pd.get_dummies(test[cols_c],dtype=int) #concat train = pd.concat([train,train_c],axis = 1) test = pd.concat([test,test_c],axis = 1) train = train.drop('transmission',axis =1 ) test = test.drop('transmission',axis =1) train = train.drop('fuelType',axis =1 ) test = test.drop('fuelType',axis =1) 제가 get_dummies를 활용해서 one-hot 인코딩을 했는데요, train[cols_c] = pd.get_dummies(train[cols_c],dtype=int) 이것도.. 사실 새로운 컬럼들이 만들어지는거라 안된다는 판단하에, 아예 새로운 변수에다가 저장해서 원래 데이터에 추가를 했습니다.저는 회귀를 돌리기 위해 (그리고 원핫인코딩을 한 이유도) 범주형 데이터는 없애야 되잖아요? 그래서 train, test데이터 각각에서 기존 train[col_c]에 해당하는 애들이 없어졌으면 좋겠는데이런 상황에서 위와 같이 .. 주먹구구식으로 하나씩 안 빼고 한번에 (one-hot 인코딩 + 싹 합치는) ..방법이 있나요???
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형 2번 라벨인코딩 질문
실기 2회의 작업형 2번에서X_train, y_train, X_test로 데이터가 구성 되어 있는데X_train의 데이터를 라벨인코딩 하려고 하니깐 y should be a 1d array, got an array of shape (8799, 4) instead.이런 내용의 에러 메세지가 떴습니다. 모델의 타겟 변수인 'y'가 2차원 배열이 아닌 1차원 배열이어야 한다는 내용입니다. # 라벨인코딩 제가 작성한 코드입니다.cols = ['Warehouse_block', 'Mode_of_Shipment', 'Product_importance', 'Gender'] from sklearn.preprocessing import LabelEncoder le=LabelEncoder() X_train[cols] =le.fit_transform(X_train[cols]) X_test[cols] = le.transform(X_test[cols]) 질문1X_train, y_train, X_test로 데이터가 구성 되어있으면 무조건X_train, y_trian을 합쳐서 라벨인코딩을 해야하나요?질문2합치지 않고도 쉽게 할 수 있는 방법이 있나요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
data leakage관련해서 질문드립니다!
안녕하세요 선생님 다름이 아니라 test의 결측치를 대체할 때 data leakage 문제로 인해 train의 평균값이나 중위수로 대체해주시는걸 보고 궁금한게 있어 질문드립니다. 최빈값 같은 경우는 train의 최빈값으로 안하고 test의 최빈값으로 대체해주셨는데 데이터 누수를 방지하려면 최빈값도 똑같이 train의 최빈값으로 해주는 것인지 아니면 범주형 변수는 상관 없고 수치형 변수만 train값으로 해주는 것인지 궁금합니다.