레이블인코딩 or column삭제 둘을 어떤 기준으로 선택해야 하나요
미해결
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요
- python
- 머신러닝
- 빅데이터
- pandas
- 빅데이터분석기사
172만명의 커뮤니티!! 함께 토론해봐요.
미해결
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요
해결됨
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
삭제할지 다른 값으로 채울지 어떻게 결정하나요? 보통 문자이고 수가 많으면 삭제하는 게 더 나을까요? 수는 웬만하면 삭제보단 채우는 게 나을까요?
해결됨
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
CustomID를 삭제할 때 test 데이터에서도 완전히 삭제를 하는게 맞나요? train 데이터에서 삭제하는게 정석. 하지만 최종 파일 제출에 붙여야 하기 때문에 test 데이터에는 아래와 같이 pop함수를 를 써서 보관을 해둬야한다고 하셨던거 같아서요ㅜㅜ ex) test_id = test.pop('id')
미해결
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
predict_proba로 제출한 이유는 뭔가요?? roc_auc를 제외하곤 나머지 평가지표를 구할필요가 없지 않나요?
미해결
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
해당 코드를 실행하면 다음과 같이 데이터가 결합됩니다 ... ㅠㅠ
미해결
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
lightgbm을 사용하지 않는 이유는 뭔가요? random보다light가 더 높게 나오는데 둘 다 사용해버ㅏ야 하는 거 아닌가요?
해결됨
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
# 결측치 처리(범주형) 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 RandomForestRegressor 32 rf=RandomForestRegressor(random_state=0) ---> 33 rf.fit (X_tr, y_tr) 34 pred=rf.predict(X_val) 35 6 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)
이 문제에서 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_split X_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 RandomForestClassifier rf = 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 RandomForestClassifier 25 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) 1094 1095 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)
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 안녕하세요 선생님 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)
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_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) 이렇게 했는데 (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] 이렇게 오류가 뜹니다
미해결
실전도커: 도커로 나만의 딥러닝 클라우드 컴퓨터 만들기
주피터 실행 명령어 부분에서 동일하게 명령어를 실행했는데, PATH부터 HOME까지 여러 설정 정보들이 출력된 후 다시 터미널로 돌아옵니다. docker ps를 해보면 실행중인 컨테이너는 없고, 생성되었다가 바로 종료되는 것으로 보입니다. 왜 그런걸까요? 이미지 버전은 v163입니다. 추가로 명령어 부분에 /bin/bash -c "jupyter lab --ip=0.0.0.0 --port=8888 --allow-root --no-browser" 를 추가해보았는데요. 이때도 open browser를 클릭하면 localhost 로만 연결되며 제대로된 화면이 나오지 않고 있습니다. 로그를 보니 여러번 redirect 되더라구요. 토큰 인증이 되어있지 않다고 나와있는 것 같습니다. 아무튼 이 방법은 오픈 브라우저 요청은 뜨지만 강의처럼 클릭시 인증 화면이 뜨지 않고 있습니다.
해결됨
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
트레인 테스트 인포에서 object 타입이 없어서 원핫인코딩 안하고 바로 분할부터 시작했다고 이해했는데,, 제가 이해한게 맞을까요??? 그리고 랜덤포레스트 돌리고 샘플 받고 roc-auc-scre 돌리고 샘플 받고 최종 파일 샘플 볼때,,, 세 샘플로 서로 비교하면서?? 제대로 잘 나온건지 확인?? 하는 방법?? 이 있는지 궁금합니다
해결됨
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형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 개념이 자꾸 헷갈려서요ㅠ 예시문제 작업형2 2025 보면, 평가지표로 평가하는데 강의에서 레이블인코딩, 원핫인코딩 비교해서 오차가 적은 것으로 택하던데, 랜덤포레스트와 라이트지비엠 이것도 각각 비교해서 오차가 적은거 평가 안해도되는건가요?? 제가 약간 헷갈리는 점이ㅠ 원래 작업형 2는 인코딩부분(레이블/원핫), 학습부분(랜덤/라이트지비엠) 크게 이 두 부분에서 각각 경우의 수 대로 다 하면서? 평가를 비교해서 해야하는건지 궁금합니다 작업형3 부분에서 원래 가설검정?(t검정, F검정 등등)도 나오는데,, 빅이시 부분에선 로지스틱회귀, 선형회귀 부문을 초점을 맞추었던데,,, 검정부분 보다는 로지스틱회귀, 선형회귀 등 출제 확률이 더 높다고 봐도 될까요?
해결됨
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
안녕하세요 작업형 2 머신러닝 분류에서 LightGBM과 랜덤포레스트를 배운 것은 이해했습니다 회귀에서는 선형회귀를 배우면서 LightGBM과 랜덤포레스트가 또 나오는데요 그럼 LightGBM과 랜덤포레스트는 분류 회귀 문제 가리지 않고 만능처럼(시험대비용으로) 사용이 가능한 건가요.. 감사합니다
해결됨
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
안녕하세요. 다름이 아니라 작업형3번의 이원분산분석 학습하는 중에 강사님의 코드를 그대로 가져와서 실행만 했을 뿐인데 자꾸 오류가 납니다.. 해설 부분 전에 직접 풀이할 수 있는 빈칸에 이원분산분석 데이터가 잘못 되어 있는 것 같아 아래 해설의 데이터도 가져와서 코드를 그대로 실행하였습니다.. 시리즈 오브젝트를 불러올 수 없다는데 무엇이 잘못된걸까요..?
해결됨
원클릭으로 AI가 생성해주는 Youtube 쇼츠 만들기 자동화(with n8n)
저는 챗gpt api 사용할 때 소모되는 크레딧이 챗gpt 유료 버젼 사용하고 있으면 무제한으로 이용 가능한 것인 줄 알았는데요. 유료 버젼과는 상관없이 크레딧을 구매해서 사용하는 거죠?
미해결
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
안녕하세요 작업형 2과목 머신러닝 문제에 따라 lightGBM을 써야만 하는 경우도 있나요 아니면 머신러닝할 때는 랜덤포레스트로 비비고 들어갈 수 있나요?? 시간은 부족하고 아직 연륜이 부족해서 여쭤봅니다 감사합니다
해결됨
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
제가 시험장에서 코드가 생각이 안 날 가능성을 대비해서, 작업형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') 강사님께서 올려주신 실기 응시 가이드를 보니 성능이 너무 낮지만 않다면 점수가 많이 까일 가능성은 낮아보여서, 우선은 이걸로 밀고 가면서 최소한의 점수는 확보하려는데, 그러한 목적으로는 이 코드가 문제가 없을지 궁금합니다. 감사합니다.