묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
3-4 Feature engineering 데이터 전처리 질문입니다.
X_test 데이터 전처리에서 'age'와 'hours.per.week'의 fillna가 X_test가 아닌 X_train의 평균과 중앙값으로 이루어졌는데요, 아래와 같이 X_test값으로 fillna하면 안 되는 걸까요? X_test['age'] = X_test['age'].fillna(int(X_test['age'].mean())) X_test['hours.per.week'] = X_test['hours.per.week'].fillna(X_test['hours.per.week'].median()) 원본# X_test데이터 X_test['workclass'] = X_test['workclass'].fillna(X_test['workclass'].mode()[0]) X_test['native.country'] = X_test['native.country'].fillna(X_test['native.country'].mode()[0]) X_test['occupation'] = X_test['occupation'].fillna("X") X_test['age'] = X_test['age'].fillna(int(X_train['age'].mean())) X_test['hours.per.week'] = X_test['hours.per.week'].fillna(X_train['hours.per.week'].median())
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
캐글 - 타이타닉 작업형2
train=pd.read_csv("/kaggle/input/titanic/train.csv")test=pd.read_csv("/kaggle/input/titanic/test.csv") #전처리 train= train.fillna(0)test= test.fillna(0) from sklearn.preprocessing import LabelEncoderle=LabelEncoder()cols = ['Name','Sex','Ticket','Cabin','Embarked']for col in cols: train[col]= le.fit_transform(train[col]) test[col]=le.transform(test[col]) 이렇게 실행했더니 --------------------------------------------------------------------------- KeyError Traceback (most recent call last) File /opt/conda/lib/python3.10/site-packages/sklearn/utils/_encode.py:224, in _encode(values, uniques, check_unknown) 223 try: --> 224 return _map_to_integer(values, uniques) 225 except KeyError as e: File /opt/conda/lib/python3.10/site-packages/sklearn/utils/_encode.py:164, in _map_to_integer(values, uniques) 163 table = _nandict({val: i for i, val in enumerate(uniques)}) --> 164 return np.array([table[v] for v in values]) File /opt/conda/lib/python3.10/site-packages/sklearn/utils/_encode.py:164, in <listcomp>(.0) 163 table = _nandict({val: i for i, val in enumerate(uniques)}) --> 164 return np.array([table[v] for v in values]) File /opt/conda/lib/python3.10/site-packages/sklearn/utils/_encode.py:158, in _nandict.__missing__(self, key) 157 return self.nan_value --> 158 raise KeyError(key) KeyError: 'Wilkes, Mrs. James (Ellen Needs)' During handling of the above exception, another exception occurred: ValueError Traceback (most recent call last) Cell In[58], line 22 20 for col in cols: 21 train[col]= le.fit_transform(train[col]) ---> 22 test[col]=le.transform(test[col]) File /opt/conda/lib/python3.10/site-packages/sklearn/utils/_set_output.py:140, in _wrap_method_output.<locals>.wrapped(self, X, *args, **kwargs) 138 @wraps(f) 139 def wrapped(self, X, *args, **kwargs): --> 140 data_to_wrap = f(self, X, *args, **kwargs) 141 if isinstance(data_to_wrap, tuple): 142 # only wrap the first output for cross decomposition 143 return ( 144 _wrap_data_with_container(method, data_to_wrap[0], X, self), 145 *data_to_wrap[1:], 146 ) File /opt/conda/lib/python3.10/site-packages/sklearn/preprocessing/_label.py:139, in LabelEncoder.transform(self, y) 136 if _num_samples(y) == 0: 137 return np.array([]) --> 139 return _encode(y, uniques=self.classes_) File /opt/conda/lib/python3.10/site-packages/sklearn/utils/_encode.py:226, in _encode(values, uniques, check_unknown) 224 return _map_to_integer(values, uniques) 225 except KeyError as e: --> 226 raise ValueError(f"y contains previously unseen labels: {str(e)}") 227 else: 228 if check_unknown: ValueError: y contains previously unseen labels: 'Wilkes, Mrs. James (Ellen Needs)'이런 에러값이 나오는데 왜그런거죠?강사님이 작성하신 풀이에는 결측치값을 놔두시고 오브젝트형인 데이터도 다 수치형으로 안바꾸시던데 왜그런거죠?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
대응 표본 t-검정에서 정규성 검정 문의
https://www.kaggle.com/code/agileteam/t3-example/notebook 위와 같은 대응 표본 t-검정 문제에서, 정규성 검정을 진행하는 집단에 대해 궁금합니다.1) shapiro(df['bp_pre']), shapiro(df['bp_post']) 각 집단에 대해서 모두 수행해야 하는지,2) df['diff'] = df['bp_post'] - df['bp_pre'] 집단 간 차이에 대해서 정규성 검정을 수행하는지 두번째로 표본 검정 문제에서 정규성 가정을 제시하지 않았다면 모든 shapiro부터 수행해야 한다고 이해했는데, 제시해주신 풀이에는 정규성 검정을 수행하지 않고 ttest_rel로 바로 진행하셨던데,문제의 가정에 따라서 정규성 검정을 수행해야 하는것이 아닌가요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
lightGBM 문의드립니다.
전처리가 거의 필요 없는 것 같은데..시험때 lgbm을 사용해도 전혀 패널티는 없는건가요?예측은 랜덤포레스트가 낫나요 lgbm이 낫나요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형2 모의문제1 질문드려요
작업형2 모의문제 1에서 Baseline과 LabelEncoder, One-Hot 인코딩 3개 모두 수행해서 가장 높은 값을 제출하던데 시험에도 그렇게 3개를 다 실행해서 가장 높은값으로 제출해야되는건가요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
pred와 pred_proba의 차이
쳐아하기 전에accuracy, precision, recall, f1_score 출력전에는pred = model.predict(X_val)이었고y_val과 pred값을 넣고 평가값을 출력했는데 Roc-auc에선pred = model.predict_proba(X_val)평가에 입력값이 y_val과 pred[:1]인 이유가 있을까요. ?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
대응표본검정의 정규성검정 질문
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요 안녕하세요 대응표본검정 > Shapiro-Wilk 검정 할 때, 'before' 'after' 순서를 알고 싶습니다.구글링을 통해 무조건 아래 순서대로 작성해야 한다는 글을 보아서 질문 드립니다.stats.shapiro(df['before'] - df['after']) 강의를 통해 문제에서 주어지는 μd를 참고하여, 대응표본검정(ttest_rel)을 작성하는 것으로 이해했습니다. μd = (before – after)의 평균stats.ttest_rel(df['before'] , df['after'])μd = (after - before)의 평균 stats.ttest_rel(df['after'], df['before']) 그렇다면 Shapiro-Wilk 검정을 할 때도 문제에서 주어지는 μd를 참고하여, 작성하면 될까요? μd = (before – after)의 평균stats.shapiro(df['before'] - df['after'])μd = (after - before)의 평균 stats.shapiro(df['after'] - df['before'])
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
타겟 수 확인할 때
타겟 수 확인할 때 왜 y_train 으로 해야하나요? X_train으로 하면 안되는지, 에러가 발생하는 이유가 무엇인지 궁금합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업2유형 데이터 전치리 관련 문의
안녕하세요, 선생님 아직 개념이 정확히 안잡혀서 문의 하나드립니다. 작업 2유형에서 Train/Test 데이터 전처리, 피처 엔지니어링시 2개 데이터 셋 모두 진행해야되는걸로 알고있는데요. Test 데이터에서 컬럼 삭제 후 모델링해도 된다고 알고있는데, (예를들어 Unnamed: 0 이라는 index 칼럼이 있을 경우)행 삭제는 하면 안되는 걸까요? (Test 데이터의 행 삭제를 하게 되면 모델링 이후 test 데이터 평가시 오류가 발생하는걸로 알고있습니다.) 결론적으로 전처리, 피처 엔지니어링시 절대 건들지 않아야 할 데이터 (주최 측 평가시 영향을 미치는 데이터)가 뭔지 궁금합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형 3 답 제출 관련
작업형 3번 답안 제출시 하드코딩 하면 안되는건가요?혹시 답안 제출은 어떤 형식으로 해야할지 알 수 있나요?ex) pvalue 값을 제출 해야하는 경우라면 값이 0.02인걸 확인하고 답안란에다 0.02를 적어도 무방한가요? 아니면 pvlaue 값을 나타낼수 있는 코딩을 해야하나요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
컬럼에 그냥 인덱싱할 때와 iloc를 써서 인덱싱할 때 출력값이 달라요.
df = pd.read_csv('../input/bigdatacertificationkr/basic1.csv')print(df['f1'].sort_values(ascending=False).head(12))print(df['f1'].sort_values(ascending=False).iloc[9])print(df['f1'].sort_values(ascending=False)[9]) 위의 코드를 실행하면 하나는 88, 하나는 74가 나옵니다..74는 어디서 나오는 건지 모르겠어요..print(df['f1'].sort_values(ascending=False)[0])은 NaN나오덴데.. 그냥 인덱싱하면 행을 나타내진 않나요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형2에서 test_ID의 경우
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요안녕하세요 train = train.drop('ID', axis=1) test_ID = test.pop('ID')의 경우 한번 삭제되면 그 다음부터는 이미 삭제 되었기 때문에 오류로 뜨는 것으로 알고 있습니다. 실전에서는 하나의 코드에서만 할 수 있는데, 이럴 때는 어떻게 해야하나요? 한번만 실행시키고, 그 다음부터는 지워야 하나요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
대응표본 t 검정에 대한 질문입니다.
안녕하세요..^^대응표본 t 검정에서 정규성 검정을 할 때 강의에서는 afrer와 before의 차, 즉 diff를 이용했는데,다른 자료들을 보면 shapiro(afrer), shapiro(before)와 같이 차를 이용하기 보단 각각에 대한 정규성을 검정하는 것으로 소개된 것들이 많더라구요... 둘 사이의 차이가 분명히 있을 것 같은데, 어떻게 이해해야 하나요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
자주 활용되는 판다스 예제 11:35초경에 사용하시는 스킬...
룽고를 적고 한 번에 작음따옴표로 채우시는데 단축키같은게 있는건가요?(룽고 -> '룽고')굉장히 편리해보여서요
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
f1_score
안녕하세요 코딩이 초보라 열심히 따라하고 있는데 f1_score 값이 위의 그림과 같이 error가 났네요 . 뭐가 잘못되었을까요 ?확인 부탁드립니다
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업유형2(신버전) pred 결과값 문의
안녕하세요,문제에서 보면 제출 csv 파일형식 예시라고 해서pred 결과값이 0,1 값으로 구성되어 있는데, pred 확률값으로 제출하는게 맞는지 궁금합니다. 문제에서는 남성을 예측하라 / 여성을 예측하라는거 없이 성별 예측결과를 저장하라고 되어있습니다.그럼 predict_proba가 아닌 predict 함수를 써야되는게 아닌가 싶어서요 roc_auc_score 평가시에는 반드시 predict_proba를 사용해야되는게 맞을까요? (roc_auc_score 평가시 predict로도 일단 코드는 돌아갑니다.)
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
3회 기출문제 작업형2 질문드립니다.
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요unamed:0 칼럼에 대해 질문드립니다. (사진에서 첫번째 칼럼)unamed:0 칼럼은 시험 때 제출해야할 ID와 관련된 것이 아닌가요? ㅜㅜ 중간에 test_id 안 만드셔서 의문점이 들었어요.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
여성인 확률을 물어볼 경우 문의 (roc_auc)
혹시 질문에서 여성(0값)일 확률을 물어볼 경우, pred[:,0]으로 roc_auc_score이나 DataFrame 결과값 때 값을 넣으면 될까요??
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
5회 기출유형 작업형2 질문입니다.
# 데이터 불러오기 import pandas as pd train = pd.read_csv("train.csv") test = pd.read_csv("test.csv") y_train = train.pop('price') X_train = train X_test = test #print(X_train.head(3)) #print(y_train.head(3)) #print(X_test.head(3)) #print(X_train.info()) X_train = X_train.drop(columns = ['model', 'transmission', 'fuelType']) X_test = X_test.drop(columns = ['model', 'transmission', 'fuelType']) #print(X_train.info()) #print(X_test.info()) from sklearn.ensemble import RandomForestRegressor model = RandomForestRegressor() model.fit(X_train, y_train) model_pred = model.predict(X_test) #print(model_pred) pd.DataFrame({'pred':model_pred}).to_csv('수험번호.csv', index=False) 수험번호 = pd.read_csv("수험번호.csv") print(수험번호.head())선생님 안녕하세요 위와 같이 가장 기본형으로 작업을 했습니다. 맨 마지막에 파일을 불러오니 정수형이 아닌 소숫점까지 나오더라구요.이걸 정수형으로 바꾸려면 어디에서 int를 씌워야 할까요?(참고로 선생님께서도 소수점으로 제출하셨지만, 만약에 정말 시험이라면 정수로 제출해야겠죠?)int(model_pred)해도 오류가 나오고, 맨 위에서 아얘 처음부터 해도 오류가 나오네요... 2 코딩을 선생님께 배운지 2주도 채 되지 않아 가장 기본형으로 진행하려고 합니다. 보통 기본형으로 해도 30점 이상 받을 수 있을까요? 일반적으로 후기에 따르면 어느정도일지 궁금하네요. 매번 감사드립니다 ^^
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
예시문제 작업형2 신버전
알려주신대로 풀어보았습니다import pandas as pdtrain = pd.read_csv("data/customer_train.csv")test = pd.read_csv("data/customer_test.csv")train= train.fillna(0)test= test.fillna(0)from sklearn.preprocessing import LabelEncodercols = ['주구매상품','주구매지점']for col in cols:le = LabelEncoder()train[col]=le.fit_transform(train[col])test[col]=le.transform(test[col])target = train.pop('성별')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)from sklearn.ensemble import RandomForestClassifiermodel=RandomForestClassifier()model.fit(X_tr,y_tr)pred=model.predict_proba(X_val)from sklearn.metrics import roc_auc_score# print(roc_auc_score(y_val,pred[:,1]))pred=model.predict_proba(test)submit = pd.DataFrame({'pred': pred[:,1]})submit.to_csv("result.csv",index=False) 이렇게 제출했는데1.# print(roc_auc_score(y_val,pred[:,1]))이부분은 값을 확인만하고 주석처리하는것이죠?2.from sklearn.metrics import roc_auc_score이렇게만 해도 roc-auc 평가가 적용되나요?3.문제풀때 프린트문은 다 주석처리 하면될까요4.test_size=0.2,random_state=0숫자는 아무거나 적어도 되나요? 5. model=RandomForestClassifier() 이부분에도 랜덤스테이트를 넣으면 좋다고 하셧는데 위와 동일한 랜덤스테잌트인 0을 넣으면 되나요?