묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
기출8회 작업형2 test 컬럼 삭제
CustomID를 삭제할 때 test 데이터에서도 완전히 삭제를 하는게 맞나요?train 데이터에서 삭제하는게 정석. 하지만 최종 파일 제출에 붙여야 하기 때문에 test 데이터에는 아래와 같이 pop함수를 를 써서 보관을 해둬야한다고 하셨던거 같아서요ㅜㅜex) test_id = test.pop('id')
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
5가지 평가지표를 다 구하라고 했는데
predict_proba로 제출한 이유는 뭔가요?? roc_auc를 제외하곤 나머지 평가지표를 구할필요가 없지 않나요?
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형1 모의문제3 - 8번
해당 코드를 실행하면 다음과 같이 데이터가 결합됩니다 ... ㅠㅠ
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
lightgmb
lightgbm을 사용하지 않는 이유는 뭔가요? random보다light가 더 높게 나오는데 둘 다 사용해버ㅏ야 하는 거 아닌가요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
Section 6. 노트북 가격 예측
# 결측치 처리(범주형)c_cols = ['Model', 'Series', 'Processor', 'Processor_Gen', 'Hard_Disk_Capacity', 'OS']train[c_cols] = train[c_cols].fillna("X")test[c_cols] = test[c_cols].fillna("X")# 결측치 처리(수치형)n_cols = ['RAM']train[n_cols] = train[n_cols].fillna(-1)test[n_cols] = test[n_cols].fillna(-1)1. 결측치 처리를 문제에서 결측치 처리 하라는 말 없어도 그냥 하는건가요?2. 범주형은 문자열 X로 하는건가요? 그냥 하는건지?3. 수치형은 -1로 한건가요? 왜 -1로 한건가요?# 원핫인코딩combined = pd.concat([train, test])combined_dummies = pd.get_dummies(combined)n_train = len(train)train = combined_dummies[:n_train]test = combined_dummies[n_train:]4. 합쳐서 인코딩한게.. 그 오브젝트 유니크 수가 트레인이랑, 테스트가 달라서 한거 맞을까요? 제가 코딩한 거는 target=train.pop('Price') c_cols=['Model','Series','Processor', 'Processor_Gen', 'Hard_Disk_Capacity','OS'] train[c_cols]=train[c_cols].fillna("X") test[c_cols]=test[c_cols].fillna("X") n_cols=['RAM'] train[n_cols]=train[n_cols].fillna(-1) test[n_cols]=test[n_cols].fillna(-1) print(train.isnull().sum().sum()) print(test.isnull().sum().sum()) df=pd.concat([train, test]) df=pd.get_dummies(df) train=train.iloc[:len(train)] test=test.iloc[len(train):] 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) print(X_tr.shape, X_val.shape, y_tr.shape, y_val.shape) from sklearn.ensemble import RandomForestRegressor rf=RandomForestRegressor(random_state=0) rf.fit(X_tr, y_tr) pred=rf.predict(X_val) from sklearn.metrics import r2_score r2_score(y_val, pred) 이렇게했는데 ~~~~~~(72, 9) (19, 9) (72,) (19,)---------------------------------------------------------------------------ValueError Traceback (most recent call last)/tmp/ipython-input-2530691866.py in <cell line: 0>()31 from sklearn.ensemble import RandomForestRegressor32 rf=RandomForestRegressor(random_state=0)---> 33 rf.fit(X_tr, y_tr)34 pred=rf.predict(X_val)356 frames/usr/local/lib/python3.12/dist-packages/pandas/core/generic.py in array(self, dtype, copy)2151 ) -> np.ndarray:2152 values = self._values-> 2153 arr = np.asarray(values, dtype=dtype)2154 if (2155 astype_is_view(values.dtype, arr.dtype)ValueError: could not convert string to float: 'Lenovo' 이렇게 오류가 납니다그전까지는 뭔가 잘 실행됐는데 랜덤포레스트이후??오류가 납니다
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
Section 4. 이직 여부 예측
이 문제에서 train과 test 합쳐서 원핫인코딩combined = pd.concat([train, test])combined_dummies = pd.get_dummies(combined)n_train = len(train)train = combined_dummies[:n_train]test = combined_dummies[n_train:]한 이유가city 컬럼에서 트레인 유니크 개수>테스트 유니크 개수라서 사용했다고 이해했는데,, 맞을까요?2. 제가 코드 한거는print(train.shape, test.shape)# print(train.isnull().sum())# print(test.isnull().sum())print(train.info())print(test.info())print(train.describe(include="O"))print(test.describe(include="O"))a=set(train['city'])b=set(test['city'])print(a-b)print(b-a)target=train.pop('target')df=pd.concat([train, test])df=pd.get_dummies(df)train=train.iloc[:len(train)]test=test.iloc[len(train):]from sklearn.model_selection import train_test_splitX_tr, X_val, y_tr, y_val = train_test_split(target, train, test_size=0.2, random_state=0)print(X_tr.shape, X_val.shape, y_tr.shape, y_val.shape)from sklearn.ensemble import RandomForestClassifierrf = RandomForestClassifier(random_state=0)rf.fit(X_tr, y_tr)pred = rf.predict_proba(X_val)이렇게 하니까 ~~~~~~(12260,) (3066,) (12260, 13) (3066, 13)---------------------------------------------------------------------------ValueError Traceback (most recent call last)/tmp/ipython-input-1337250417.py in <cell line: 0>()24 from sklearn.ensemble import RandomForestClassifier25 rf = RandomForestClassifier(random_state=0)---> 26 rf.fit(X_tr, y_tr)27 pred = rf.predict_proba(X_val)4 frames/usr/local/lib/python3.12/dist-packages/sklearn/utils/validation.py in check_array(array, accept_sparse, accept_large_sparse, dtype, order, copy, force_writeable, force_all_finite, ensure_all_finite, ensure_non_negative, ensure_2d, allow_nd, ensure_min_samples, ensure_min_features, estimator, input_name)1091 "if it contains a single sample."1092 )-> 1093 raise ValueError(msg)10941095 if dtype_numeric and hasattr(array.dtype, "kind") and array.dtype.kind in "USV":ValueError: Expected a 2-dimensional container but got <class 'pandas.core.series.Series'> instead. Pass a DataFrame containing a single row (i.e. single sample) or a single column (i.e. single feature) instead.이런 에러가 나옵니다ㅠ분할까지는 했는데,, 랜덤포레스트부터 오류가 뜹니다
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형2 질문있습니다
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요안녕하세요 선생님roc-auc 는 프레딕프로바를 사용하면 좋다고하셨는데요. 제가 왕초보에다가 기간이 얼마 안남아서 혹시 그냥 predict로 통일해서 사용해도 괜찮을까요? 즉 40점 만점을 목표로 predict로 통일해도 predict proba와 유의미한 차이가 있을까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
합쳐서 원핫인코딩
df=pd.concat([train, test]) df=pd.get_dummies(df) train=train.iloc[:len(train)] test=test.iloc[len(train):] print(train.shape, test.shape)print로 컬럼 수 일치하는지 반드시 확인이라고 햇는데 어떤 컬럼수가 어떤거랑 일치해야하는거죠?? 아 그리고 이렇게 분리를 다시 했으면train_test_split 이 코딩은 더 안해도되나요? 이것도 또 해야하나요?X_tr, X_val, y_tr, y_val 이요
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형2 연습문제 섹션3
Section 3. 항공권 가격 예측# 컬럼 삭제train = train.drop('flight', axis=1)test = test.drop('flight', axis=1)컬럼삭제한 이유는 무엇이죠?print(train.describe(include="O"))print(test.describe(include="O"))이걸 돌려봤는데트레인에서 플라이트 유니트 1153테스트에서 플라이트 유니크가 4502 이렇게 달라서 컬럼 삭제하는건가요?어떨 때 컬럼 삭제해야하는지, 또 시험에 어떤 형식이 나올때 삭제해야하는지 궁금합니다 2.제가 코딩을 print(train.shape, test.shape)train=pd.get_dummies(train)test=pd.get_dummies(test)print(train.shape, test.shape)from sklearn.model_selection import train_test_splitX_tr, X_val, y_tr, y_val = train_test_split(train, target, test_size=0.2, random_state=0)print(X_tr.shape, X_val.shape, y_tr.shape, y_val.shape)이렇게 했는데(10505, 11) (4502, 10)(4502, 9) (4502, 10)(4502, 37) (4502, 930)---------------------------------------------------------------------------ValueError Traceback (most recent call last)/tmp/ipython-input-2712245612.py in <cell line: 0>() 20 print(train.shape, test.shape) 21 from sklearn.model_selection import train_test_split---> 22 X_tr, X_val, y_tr, y_val = train_test_split(train, target, test_size=0.2, random_state=0) 23 print(X_tr.shape, X_val.shape, y_tr.shape, y_val.shape)3 frames/usr/local/lib/python3.12/dist-packages/sklearn/utils/validation.py in check_consistent_length(*arrays) 473 uniques = np.unique(lengths) 474 if len(uniques) > 1:--> 475 raise ValueError( 476 "Found input variables with inconsistent numbers of samples: %r" 477 % [int(l) for l in lengths]ValueError: Found input variables with inconsistent numbers of samples: [4502, 10505]이렇게 오류가 뜹니다
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
Section 1. 환자의 당뇨병 여부 예측
트레인 테스트 인포에서 object 타입이 없어서 원핫인코딩 안하고 바로 분할부터 시작했다고 이해했는데,, 제가 이해한게 맞을까요???그리고랜덤포레스트 돌리고 샘플 받고roc-auc-scre 돌리고 샘플 받고최종 파일 샘플 볼때,,,세 샘플로 서로 비교하면서?? 제대로 잘 나온건지 확인?? 하는 방법?? 이 있는지 궁금합니다
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형2 연습문제4 풀이
작업형2 연습문제4에서 풀이는 아래와 같은데,# 결측치 처리 train = train.fillna("X") test = test.fillna("X") # train과 test 합쳐서 원핫인코딩 combined = pd.concat([train, test]) combined_dummies = pd.get_dummies(combined) n_train = len(train) train = combined_dummies[:n_train] test = combined_dummies[n_train:]저는 다음과 같이 결측치가 있는 object 항 삭제 후 label encoder 진행해서 풀었습니다. 오류 없이 작동했으면 괜찮은 건가요?cols = ['gender', 'enrolled_university', 'education_level', 'major_discipline', 'experience', 'company_size', 'company_type', 'last_new_job'] train = train.drop(cols, axis=1) test = test.drop(cols, axis=1) # print(train.shape) # test.isnull().sum() # print(test.shape) from sklearn.preprocessing import LabelEncoder colss = train.select_dtypes(include='O').columns for col in colss: le = LabelEncoder() train[col] = le.fit_transform(train[col]) test[col] = le.transform(test[col])만약에 결측치 있는 object 항 제거하고 label encoder 코드 작성했을 때 오류가 생기면 이때는 합쳐서 원핫 인코딩 하면 될까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업2와 작업3
작업형 2 개념이 자꾸 헷갈려서요ㅠ예시문제 작업형2 2025 보면, 평가지표로 평가하는데강의에서 레이블인코딩, 원핫인코딩 비교해서 오차가 적은 것으로 택하던데,랜덤포레스트와 라이트지비엠 이것도 각각 비교해서 오차가 적은거 평가 안해도되는건가요?? 제가 약간 헷갈리는 점이ㅠ 원래 작업형 2는인코딩부분(레이블/원핫), 학습부분(랜덤/라이트지비엠) 크게 이 두 부분에서각각 경우의 수 대로 다 하면서? 평가를 비교해서 해야하는건지 궁금합니다 작업형3 부분에서 원래 가설검정?(t검정, F검정 등등)도 나오는데,, 빅이시 부분에선 로지스틱회귀, 선형회귀 부문을 초점을 맞추었던데,,, 검정부분 보다는 로지스틱회귀, 선형회귀 등 출제 확률이 더 높다고 봐도 될까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형2 머신러닝 분류, 회귀
안녕하세요 작업형 2 머신러닝 분류에서 LightGBM과 랜덤포레스트를 배운 것은 이해했습니다 회귀에서는 선형회귀를 배우면서 LightGBM과 랜덤포레스트가 또 나오는데요 그럼 LightGBM과 랜덤포레스트는 분류 회귀 문제 가리지 않고 만능처럼(시험대비용으로)사용이 가능한 건가요.. 감사합니다
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
[작업형3] 이원분산분석 코드 실행 오류
안녕하세요. 다름이 아니라 작업형3번의 이원분산분석 학습하는 중에 강사님의 코드를 그대로 가져와서 실행만 했을 뿐인데 자꾸 오류가 납니다.. 해설 부분 전에 직접 풀이할 수 있는 빈칸에 이원분산분석 데이터가 잘못 되어 있는 것 같아 아래 해설의 데이터도 가져와서 코드를 그대로 실행하였습니다..시리즈 오브젝트를 불러올 수 없다는데 무엇이 잘못된걸까요..?
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
randomforest vs lightGBM
안녕하세요 작업형 2과목 머신러닝 문제에 따라 lightGBM을 써야만 하는 경우도 있나요 아니면 머신러닝할 때는 랜덤포레스트로 비비고 들어갈 수 있나요?? 시간은 부족하고 아직 연륜이 부족해서 여쭤봅니다 감사합니다
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
기출 9회 작업형2 질문
제가 시험장에서 코드가 생각이 안 날 가능성을 대비해서, 작업형2는 우선 한 가지 방법으로 풀고 거기에 살을 붙여가며 연습하려 합니다.근데 여기서 든 생각이, 어차피 RandomForest 한 가지 방법으로 풀 거면 모델 성능 측정은 모델 간의 성능을 비교할 목적이니 굳이 안 해도 될 것 같고, 성능 측정을 하지 않는다면 train과 validation을 나눠주는 train_test_split도 굳이 안 해도 될 것 같고, 결론적으로는 경우에 따라 Classifier/Regressor만 맞게 써준다면 아래의 코드만으로도 웬만한 문제는 감점당하지 않고 넘어갈 수 있지 않나 하는 생각이 들었습니다.target = train.pop('농약검출여부') train = pd.get_dummies(train) test = pd.get_dummies(test) test = test.reindex(columns=train.columns, fill_value=0) from sklearn.ensemble import RandomForestClassifier model = RandomForestClassifier(random_state=0) model.fit(train, target) pred = model.predict(test) pd.DataFrame({'pred': pred}).to_csv('result.csv', index=False) pd.read_csv('result.csv')강사님께서 올려주신 실기 응시 가이드를 보니 성능이 너무 낮지만 않다면 점수가 많이 까일 가능성은 낮아보여서, 우선은 이걸로 밀고 가면서 최소한의 점수는 확보하려는데, 그러한 목적으로는 이 코드가 문제가 없을지 궁금합니다.감사합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
[작업형2] 연습문제 섹션 3
안녕하세요 선생님! 섹션 3 처럼 object가 많이 나왔을때 labelencoder를 하지 않고cols = train.select_dtypes(include='object').columns for col in cols: set_train = set(train[col]) set_test= set(test[col]) same = (set_train == set_test) if same: print(col, "\t카테고리 동일함") else: print(col, "\t카테고리 동일하지 않음") print("\n ===== target 기술 통계 =====") print(train['price'].describe())이렇게 하는 이유가 궁금합니다!! 이런것도 외우고 가야될까요?
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
독립표본과 대응표본 구분
선생님 안녕하세요. 대응표본과 독립표본을 구분하는 꿀팁이 있을까요?연습문제 > 가설검정 > 2번은 대응표본인것 같은데 독립표본이라고 적혀있어서요.신약효과검정이 대응인데, 이것도 어떻게보면 기존충전기와 개발충전기라면 대응으로 볼 수 있지 않나요? 시험문제엔 '독립/대응표본으로 검정하라' 와 같이 알려주진 않죠?ㅜㅠ
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
8번 답을 구할 때 해당 코드의 의미를 모르겠습니다
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요아래 코드가 9번 답 코드에 존재하는데 이 과정이 왜 있는지 몰라 문의 드립니다.pred = (pred > 0.5).astype(int)
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형 2 질문
선생님 작업형 2는 train.info() 했을 때 결측치가 없고 object 형이 많거나 해도 라벨 인코딩 말고 원핫 인코딩을 하고 모델은 randomforest lightgbm 사용해서 점수 더 잘 나온것을 기준으로 제출해도 될까요?