묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
5-2 type2
5-2 type2의 문제를 수치형 데이터만 선택해서 랜덤포레스트로 학습시키고 MSE로 평가했습니다.이렇게 코드를 작성해도 될까요?MSE 값이 좀 큰 것 같은데 이 방법이 아닌 다른 방법으로 풀어야 하는 걸까요? train['reviews_per_month'] = train['reviews_per_month'].fillna(0)test['reviews_per_month'] = test['reviews_per_month'].fillna(0)cols = ['id', 'host_id', 'latitude', 'longitude', 'minimum_nights', 'number_of_reviews', 'reviews_per_month', 'calculated_host_listings_count', 'availability_365']test_id = test['id']target = train.pop('price')train = train[cols]test = test[cols]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)import numpy as npfrom sklearn.metrics import mean_squared_errorfrom sklearn.ensemble import RandomForestRegressorrf = RandomForestRegressor()rf.fit(X_tr, y_tr)pred = rf.predict(X_val)print(mean_squared_error(y_val, pred))#60931.44110148261pred = rf.predict(test)submit = pd.DataFrame({ 'id' : test_id, 'price' : pred})submit.to_csv("submit.csv", index=False)
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
(섹션5) train_test_split 관련 질문
안녕하세요. 섹션5 [작업형2] 모의문제 및 캐글 - 2번쨰 강의 관련 질문입니다.검증데이터 분리 시 아래와 같이 코드를 적었는데, 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.15, random_state=2022)윗 행에서 train.drop('price') 후, train['price']을 하는 이유가 뭔가요?'price'값이 타겟이기 떄문에X_tr 은 'price'가 없어야 하고,반면, X_val은 'price'만 있어야 하니까 위 코드가 나온게 맞는것인지요?감사합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
4회 기출 유형(작업형2)
안녕하세요!! 4회 기출 아래 사진처럼 풀어도 무방한지 궁금합니다. 추가로 xgboost 쓰고 싶었는데 오류가 뜨더라구요!!분류 1,2,3,4는 랜덤 포레스트만 사용해서 풀어야하나요??f1평가점수가 0.49인데 잘했는지 모르겠네요 ㅠㅠ
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
[캐글, 작업형3 로지스틱회귀] 이해가 되지 않습니다.!
[문제]import pandas as pdfrom statsmodels.formula.api import logitdf = pd.read_csv("/kaggle/input/bigdatacertificationkr/Titanic.csv")formula = "Survived ~ C(Pclass) + Gender + SibSp + Parch"model = logit(formula, data=df).fit()model.params 다름아니라 여기서 Pclass에 왜 앞에 C()를 하셨는지 이해가 안갑니다.! 참고로 데이터 info는 다음 아래와 같았습니다.Pclass : 'int'Gender : 'object'SibSp : 'int'Parch : 'int'
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
T1-19. 시계열 데이터3에 대한 질문입니다.
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요해당 문제에서 "Events컬럼이 '1'인경우 80%의 Salse값만 반영함" 이라는 조건을 실행하기 위해서 아래와 같은 함수를 만들었는데 'Events' Key error 가 나네요.어느 부분을 수정하면 될까요? def calc(df) : if df['Events'] == 1 : return df['Sales']*0.8 else : return df['Sales'] df['events80'] = df.apply(calc)
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
적합도 vs 독립성
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요범주형 데이터라 카이제곱검정인것은 이해했습니다다만, 카이제곱문제에서 적합도와 독립성은 어떻게 구분하나요?제가 생각한바로는카이제곱 검정인것은 동일하고문제에서 독립인지 아닌지를 물어보는 제시문이 있으면 독립성 검정그 외에는 다 적합도 검정으로 보면될까요어떻게 제시문을 보고 구분 하는지 알려주시면 감사하겠습니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
데이터 전처리 작업시 조건에 따른 특정값 채우는 방법?
해당 문제 연습하는 도중에 train과 test 데이터셋에 총구매액이 0원보다 작은 데이터가 있습니다. 해당 데이터를 0원으로 채우는(변환) 방법을 알고 싶습니다.결측치의 경우 fillna()로 쉽게 채울 수 있는데 결측치가 아닌 데이터의 조건에 따른 특정값으로 채우는 방법이 궁금합니다
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
ㅎㅇ
저번에 질문한 거 코드 수정 및 정리했습니다. 선생님 ※ 피쳐엔지니어링에서 train, test 셋을 분리( .copy() )해서 수치형은 스케일링하고 범주형은 인코딩 한 다음, 합치기 ( .concat() ) 하는 방식이 아니라수치형 부분 칼럼을 변수(cols_n)로 받고, 범주형 부분을 변수(cols_c) 으로 받아서, 데이터셋을 수치와 범주형으로 분리하지 않은 상태에서 각각 스케일링, 인코딩을 적용하고 검증데이터셋 분리-> 모델 & 평가지표 불러오기 -> 예측(테스트셋 적용) -> df 생성 -> 제출 하는 방법에서 아래에 피쳐 엔지니어링 부분 코드 정리한거 확인 부탁드립니다. 경우 1. [train, test // 2개 데이터셋 제공시]# train셋엔 있고 test셋엔 없는 "target"에 해당하는 칼럼 분리 # "target" 데이터는 범주형이든 수치형이든 스케일링이나 인코딩을 하면 안되므로 제외시킴 target = train.pop(["target"]) cols_n = train.select_dtypes(exclude="O").columns cols_c = train.select_dtypes(include="O").columns## 수치형 민맥스 스케일링 작업 from sklearn.preprocessing import MinMaxScaler scaler = MinMaxScaler() train[cols_n] = scaler.fit_transform(train[cols_n]) test[cols_n] = scaler.transform(test[cols_n]) ## 범주형 라벨 인코딩 작업 from sklearn.preprocessing import LabelEncoder le = LabelEncoder() for col in cols_c: le = LabelEncoder() train[col] = le.fit_transform(train[col]) test[col] = le.transform(test[col]) ## or 범주형 원핫 인코딩 작업 시 # .get_dummies() 원핫 인코딩은 자동으로 범주형만 찾아서 인코딩 함 # 방법 1 train = pd.get_dummies(train) test = pd.get_dummies(test) ## 라벨 인코딩과 통일성을 원한다면 (방법 2) train = pd.get_dummies(train[cols_c]) test = pd.get_dummies(test[col_c]) # 다만 어차피 자동으로 찾아주니 이렇게 하지 말고 간편한 위의 방법 1 방식으로 하자그 다음 검증데이터셋 분리 등 과정 이후 ~~~~~~~~~~~ 제출 경우 2. [X_train, y_train, X_test // 3개 데이터셋 제공시]cols_n = X_train.select_dtypes(exclude="O").columns cols_c = X_train.select_dtypes(include="O").columns## 수치형(스케일링) 작업 ##민맥스 스케일링 from sklearn.preprocessing import MinMaxScaler scaler = MinMaxScaler() X_train[cols_n] = scaler.fit_transform(train[cols_n]) X_test[cols_n] = scaler.transform(test[cols_n]) ## 범주형(인코딩) 작업 ## 라벨 인코딩 from sklearn.preprocessing import LabelEncoder le = LabelEncoder() for col in cols_c: le = LabelEncoder() X_train[col] = le.fit_transform(X_train[col]) X_test[col] = le.transform(X_test[col]) ## or 원핫 인코딩 시 # .get_dummies() 원핫 인코딩은 자동으로 범주형만 찾아서 인코딩 함 # 방법 1 X_train = pd.get_dummies(X_train) X_test = pd.get_dummies(X_test) ## 라벨 인코딩과 통일성을 원한다면 (방법 2) X_train = pd.get_dummies(X_train[cols_c]) X_test = pd.get_dummies(X_test[col_c]) # 다만 어차피 자동으로 찾아주니 이렇게 하지 말고 간편한 위의 방법 1 방식으로 하자이후 검증데이터셋 분리 등 과정 이후 ~~~~~~~~~~~ 제출 이번 코딩엔 틀린게 없어야 할텐데.....이거 제대로 한거 맞는지 확인 부탁드립니다. 선생님여러 차례의 질문에 답변 해주셔서 감사합니다
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
lightBGM에서 분류, 회귀 둘 다에서 random_state, max_depth, n_estimator 쓰는 것는 동일한가요??
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요 lightBGM에서 분류, 회귀 둘 다에서 random_state, max_depth, n_estimator 쓰는 것는 동일한가요??
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
하이퍼 파라미터 튜닝
안녕하세요 강사님!2유형에서 걱정되는 부분이 있어서 질문드립니다! 2유형 train_test_split 으로 검증 할 때, test_size 값 범위를 최대 몇 프로까지 제한하는게 좋을까요?랜덤포레스트 기준 하이퍼 파라미터 값들의 권장하는 최대 범위를 알고 싶습니다.(max_depth, n_estimators) 어느정도 범위까지가 괜찮을지 감이 잘 안오네요 ㅠ과적합을 고려했을 때 권장하는 범위가 있을까요? 오늘도 질문 읽어주셔서 감사합니다!
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
lightgbm 결측치, 인코딩 처리 없이 사용 가능 관련해서
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요결측치 처리하고 인코딩 하고서 lightgbm 사용해도 문제 없을까요? 그리고 하이퍼 파라미터 전부 적용하고 verbose 써주려고 할 때 괄호 안 순서가 있나요 ?ex. (random_state=, max_depth=, n_estmators=, learning_rate=, verbose=-1)??
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
4회 2유형 질문입니다.
4회 2유형다중분류에선 xgb를 쓸수 없나요? 계속 에러가 나옵니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
평가지표 이진분류
평가지표 이진분류에서 rou_auc를 사용하는 경우실제값이 문자로 주어졌을 때는 어떻게 하나요?강의자료에는roc_auc = roc_auc_score(y_true, y_pred_prob_str[:,1]) 로 작성되어 있는데, y_true_str으로 작성하지 않고, y_true로 변경해서 작성해주어야 하나요?y_true_str으로 변경하면 값이 0.47 정도로 낮아지는거 같아요.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
2회 기출유형(작업형 2) 질문드립니다.
안녕하세요.라벨 인코딩을 진행했을 시에 X_train 데이터는 정상적으로 되는데 X_test 데이터는 아래 결과와 같이 뜨는 이유가 무엇인지 알 수 있을까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
수업자료 한꺼번에 내려받기
수업 자료(노트북 빈칸, 데이터 파일) 한꺼번에 받을 수 있는 방법이 있을까요? 매 강의마다 수업노트 탭으로 바꿔서 링크 들어가서 노트북 복사하고 별도 창으로 띄운 다음 다시 강의로 돌아오는 게 무척 번거롭습니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
하드코딩
정답 구할 때 이 강의에서는 하드코딩 하지 말라고 했는데 질문들 보면 작업형1 에 답 적는 곳이 있어서 코드 상관없이 눈으로 결측치 많은 컬럼 확인 후 그냥 적어줘도 된다고 하더라구요 하드코딩 하지 말라고 한 이 강의 제작하실 때는 작업형1 제출할 때 코드로 제출하는 형식이었나요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
6번 문제
cond=df['age'] <=0 df=df[~cond]으로 0이거나 음수인값들을 제거를 한건데 첫작성) cond = df['age'] == round(df['age'],0)수정작성) cond = df['age'] != round(df['age'],0df=df[cond]여기서 추가로 라운드로 0인값들을 제거한건가요?첫작성 수정작성 하신 이걸 하신 이유가 뭔지 잘 이해가 안됩니다. 그리고 보시면 처음부터 cond 라는 변수를수정작성까지 두번세번쓰면서 변수 내용이 계속 바뀐거 같은데 그 이유는 뭘까요 선생님~
-
미해결파이썬 증권 데이터 수집과 분석으로 신호와 소음 찾기
Mac 환경에서 nbextensions 활성화 하는 방법
맥북 M1 pro 입니다.저는 다음과 같은 방법으로 nbextensions 활성화가 가능했었습니다. conda update --all conda install -c anaconda notebook conda install -c conda-forge jupyter_contrib_nbextensions 터미널에서 위 3개를 순서대로 실행 후jupyter contrib nbextension install --user여기까지 실행하시고 Anaconda Navigator 를 켜시고 jupyter notebook 을 확인해보시면 버전이 6.5.7 로 바뀌어있을겁니다. 근데 실행하면 mac command tool 이 없니 뭐니 에러가 발생합니다.. 여기서 우측상단 설정 아이콘을 클릭하셔서 Update application 을 한 번 실행해주시고 업데이트 완료 후 다시 jupyter notebook 을 실행 하시면 nbextensions 가 잘 나옵니다!
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형2 모의문제1 제출 관련 질문
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요안녕하세요 강사님 작업형2 모의문제1 제출과 관련하여 질문드립니다. 질문 1. 평가: ROC-AUC, 정확도(Accuracy), F1, 정밀도(Precision), 재현율(Recall)을 구하시오작업형2의 경우 채점 시 코드는 보지 않고 csv 파일만 보는 것으로 알고 있는데 이 평가지표를 모두 다 구해야 하나요?학습 차원에서 넣으신 문항인지, 실제 시험에서도 채점 대상에 들어가는 문항인지 궁금합니다.질문 2.5개의 평가지표로 평가 후 마지막에 예측할 땐 predict_proba를 사용하셨는데 이유가 궁금합니다.5개의 지표 중 roc_auc_score의 수치가 가장 높아서 사용한 것인지, csv 예시에서 예측값이 확률 형태로 나와있어서 사용한 것인지 궁금합니다.또한, predict 사용 시 감점되는지도 궁금합니다. 감사합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
모델 평가 후 result 데이터 생성 시 오류
작업형 2 모음집 하는 도중 마지막 데이터 제출 데이터 파일 생성시 다음과 같은 오류가 나는데 왜 그럴까용..?[코드]#전처리 스케일링target = train.pop('total')#원핫print(train.shape, test.shape)train = pd.get_dummies(train)teset = 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)#모델평가from sklearn.ensemble import RandomForestRegressorrf = RandomForestRegressor()rf.fit(X_tr,y_tr)pred = rf.predict(X_val)from sklearn.metrics import mean_squared_errordef rmse(y_true, y_pred): mse = mean_squared_error(y_true,y_pred) return mse **0.5result = rmse(y_val, pred)#테스트 제pred = rf.predict(test)submit = pd.DataFrame({'pred':pred})submit.to_csv("result.csv", index=False) [오류내역]--------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-23-e536b293909d> in <cell line: 68>() 66 67 # 7. 예측 및 결과 파일 생성 ---> 68 pred = rf.predict(test) 69 submit = pd.DataFrame({'pred':pred}) 70 submit.to_csv("result.csv", index=False) 3 frames/usr/local/lib/python3.10/dist-packages/sklearn/base.py in _check_feature_names(self, X, reset) 479 ) 480 --> 481 raise ValueError(message) 482 483 def _validate_data( ValueError: The feature names should match those that were passed during fit. Feature names unseen at fit time: - branch - city - customer_type - day_name - gender - ... Feature names seen at fit time, yet now missing: - branch_A - branch_B - branch_C - city_Mandalay - city_Naypyitaw - ...