묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
시험환경에서 print 출력 결과 일부만 보일때
안녕하세요.시험 환경에서 실습해보는 중인데print해서 결과를 확인 했더니 위 이미지처럼 일부 내용만 출력되는데요 이럴때는 어떻게 해야 생략된 부분을 확인 할 수 있나요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형 2번
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요코드1에서 train데이터의 수치형데이터 cols만 사용하는 이유는 뭔가요?cols로 안하고 전체 데이터로 돌리면 오류가 납니다.시험에서도 수치형데이터만 사용하나요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
roc_auc_score 관련 질문 (캐글 흡연자 예측(분류))
선생님 안녕하세요. 랜덤포레스트랑 roc_auc_score 관련 질문 드립니다. roc_auc_score는 이진분류라서 [:,1]을 해야하는 걸로 알고 있는데요train = pd.read_csv('/kaggle/input/smoker-binary-class/train.csv') test = pd.read_csv('/kaggle/input/smoker-binary-class/test.csv') train.isnull().sum() #결측치없음 # train.info() -> 전부다 float형 # print(train.shape,test.shape) (15000, 24) (10000, 23) # train.head(2) #id삭제 train = train.drop(columns = 'id') test_id = test.pop('id') y= train.pop('smoking') #train_test_split from sklearn.model_selection import train_test_split x_tr,x_val,y_tr,y_val = train_test_split(train,y,test_size = 0.2, random_state = 42) # print(x_tr.shape,x_val.shape,y_tr.shape,y_val.shape) (12000, 22) (3000, 22) (12000,) (3000,) #랜포 from sklearn.ensemble import RandomForestClassifier model= RandomForestClassifier() model.fit(x_tr,y_tr) pred = model.predict_proba(x_val)[:,1] from sklearn.metrics import roc_auc_score # print(roc_auc_score(y_val,pred)) # 0.8775897293980339 answer = model.predict_proba(test)[:,1] pd.DataFrame({'id' : test_id, 'smoking' : answer}).to_csv('12345.csv',index = False) 만약 roc_auc_score가 아닐경우 pred = model.predict(x_val) print(f1_score(y_val,pred)) answer = model.predict(test) pred = model.predict_proba(x_val)[:,1] from sklearn.metrics import roc_auc_score # print(roc_auc_score(y_val,pred)) # 0.8775897293980339 answer = model.predict_proba(test)[:,1]이렇게 pred = 하는 부분에서 [:,1] 하고 정답제출(answer) 부분역시 이렇게 동일하게 하면 되는게 맞는지 문의드립니다.만약 roc_auc_score가 아닌 경우에는 그냥 pred = predict까지만 하면 되는게 맞을까요? 그리고 train_test_split 할때는 random_state = 42(숫자 고정) 하는데model = RandomForestClassifier() 이렇게 전부다 생략을 해버리니이게 실행시킬때마다 고정이 안돼서 그런가 값이 바뀌더라고요.어느 분은 n_estimators도 하시고, random_state도 작성하시는 분이 계신데시험환경에서 ()이렇게 비워두면 큰 문제가 될까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
6회 작업형 1 3번문제 질문드립니다.
연도별로 총 범죄 건수(범죄유형의 총합)의 월평균 값을 구한 후 그 값이 가장 큰 연도를 찾아, 해당 연도의 총 범죄 건수의 월평균 값을 출력하시오. (반올림하여 정수로 출력)2020: 11, 2021: 9, 2022: 12, 2023: 9, 2024: 9다음은 각 해당 년도별로 존재하는 월 데이터의 갯수입니다.12개가 아니고 누락된 데이터가있더라구요df['tot'] = df.loc[:,'강력범죄':'교통범죄'].sum(axis=1) df['날짜'] = pd.to_datetime(df['날짜'],format = '%Y년 %m월') dict = df.groupby(df.날짜.dt.year)['날짜'].count() df.groupby(df.날짜.dt.year)['tot'].mean()저는 다음과 같이 코드를 작성하였는데 풀이노트북엔 / 12로 되어있더라구요,,, 뭐가 맞는건가요? mean으로하면 sum / 전체갯수 니까 값이 다른부분에 대해선 인지하고있습니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
2유형 평가지표 오류
작업 2유형 기출문제 4번을 풀이하는 중인데 f1_score 평가지표로 y_val predict 돌려보다가 에러가 떠서 질문 드립니다!모델링까지는 문제없이 돌아갔었는데 혹시 아래 에러창이 어디서 에러가 났다는 뜻인지 여쭤봅니다! # 라이브러리 불러오기 import pandas as pd # 데이터 불러오기 train = pd.read_csv("./sample_data/train.csv") test = pd.read_csv("./sample_data/test.csv") #데이터 확인 #train.shape, test.shape ((6665, 11), (2154, 10)) #train.head() #ID Gender Ever_Married Age Graduated Profession Work_Experience Spending_Score Family_Size Var_1 Segmentation #test.head() #ID Gender Ever_Married Age Graduated Profession Work_Experience Spending_Score Family_Size Var_1 #결측치 확인 없음, 없음 #train.isnull().sum() #test.isnull().sum() #object 확인 #train.info() Gender Ever_Married Graduated Profession Spending_Score Var_1 #test.info() 동일 #object 레이블 인코딩 from sklearn.preprocessing import LabelEncoder cols = 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]) #train.head() #test.head() #train.info() #test.info() #ID값 삭제 train = train.drop('ID',axis=1) #train.shape (6665, 10) test_ID = test.pop('ID') #test.shape (2154, 9) #데이터 분리 from sklearn.model_selection import train_test_split X_tr,X_val,y_tr,y_val = train_test_split( train.drop('Segmentation',axis=1), train['Segmentation'], test_size=0.2, random_state=2022 ) #train.head() #test.head() #X_tr.shape,X_val.shape,y_tr.shape,y_val.shape #((5332, 9), (1333, 9), (5332,), (1333,)) #모델링 from sklearn.ensemble import RandomForestClassifier model = RandomForestClassifier(random_state=2022) model.fit(X_tr,y_tr) pred = model.predict(X_val) #평가 from sklearn.metrics import f1_score f1_score(y_val,pred)
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
예시문제 작업형3 2번 문제
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!안녕하세요 선생님 범주형 변수를 C()로 감싸주는 부분 관련하여 질문드립니다. model = logit("Survived ~ C(Gender) + SibSp + Parch + Fare", data=df).fit()Gender는 범주형 변수이지만 숫자가 아닌 object형이니깐 아래코드처럼 C()로 묶지 않아도 되는지 궁금합니다.model = logit("Survived ~ Gender + SibSp + Parch + Fare", data=df).fit() 회귀, 로지스틱 회귀: 범주형변수이지만 숫자인 값에만 C()분산분석: 안전하게 모두 C() 이해한 내용이 맞는지 궁금합니다. 감사합니다.질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형1 관련 질문
안녕하세요 선생님작업형1 관련 질문이 있어 글 남깁니다. 작업형1 풀이 시, 문제가 아래와 같을 때학교에서 교사 한 명당 맡은 학생 수가 가장 많은 학교를 찾고, 그 학교의 전체 교사 수를 구하시오. (정수 출력)교사 한 명당 맡은 학생 수가 가장 많은 학교를 찾을 때, 꼭 코드를 이용해 학교이름을 찾을 필요는 없는거죠?예를 들면 정렬을 이용해서 그냥 가장 많은 학교가 어딘지 찾고, 그걸 그대로 사용해서 (코드를 이용해 찾지않고) 그 학교의 전체 교사수를 찾아도 괜찮나요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
모의고사 작업형1 (작업형1-1) 문제 질문 해석이 명확하지 않는데요;;
안녕하세요. 저는 다음과 같이 해석이 됩니다. 실제 시험에서도 이런 경우가 발생할 수 있을까요?앞에서 부터 50%의 데이터와 'target'컬럼이 0 값을 가진 데이터만 활용해...라는 부분이 앞에서 부터 50%의 데이터... a.iloc[89] 데이터 1개 'target'컬럼이 0값을 가진 데이터... a에서 'target'컬럼이 0인 데이터는 cond = a['target'] == 0를 만족하는 a[cond] 데이터 59개1.에서 찾은 데이터의 proline의 값 6252.에서 찾은 59개 데이터의 proline 합 65827따라서, (625+65827) / 60 = 1107.533333 에서 소수점 절사하면 1107
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
이상치 확인 이후!
만약 describe로 이상치가 있는 것 같다고 하면,이상치를 그냥 나두고 진행시켜도 되나요??후기 보니 이상치를 제거했다거나, 대체했다는 내용보다는그냥 그대로 두고 진행한 사람들이 대부분인 거 같아서...아니면 그냥 없애고 진행해도 되나요??
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형2 한가지 방법으로 풀기(기출5)
작업형2 한가지 방법으로 풀기에서 기출 5번의 rmse 부분에 대한 질문입니다. # RMSE(Root Mean Squared Error) from sklearn.metrics import mean_squared_error def rmse(y_true, y_pred): mse = mean_squared_error(y_true, y_pred) return mse ** 0.5 result = rmse(y_val, pred) print('\n rmse:', result) # RMSE(Root Mean Squared Error) from sklearn.metrics import mean_squared_error mse = mean_squared_error(y_val, pred) rmse = mse**0.5 print(rmse) 위의 부분은 원래 답이고, 아래 부분은 제가 작성한 부분입니다.따로 함수를 안 만들고, 제가 작성한 방식으로 해도 괜찮은가요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
검증데이터를 안쓰면
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요만약 기출 3회 2유형에서 roc-auc 이지만 검증데이터를 안쓰면(검증과정을 생략한다면) predict_proba를 안하고 predict만 해서pred = rf.predict(test)만 해서 submit = pd.DataFrame({'pred':pred})submit.to_csv("result.csv")만 해도 될까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
캐글 T2-4 집 값 예측
안녕하세요캐글 집 값 예측을 풀고있는데 궁금한 점이 있습니다.결측치 값이 굉장히 많이 있는 데이터에서는 결측치 처리를 하지 않고 예측 데이터에서 아예 포함하지 않는 것이 더 낫나요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
회귀 분석 (범주형 변수)
강의 복습하면서 한번 더 정리하면서 외워가는 중입니다. 섹션 8 강의에서 범주형 변수는 판다스의 pd.get_dummies(drop_first=True)로 원핫인코딩 처리한다고 강의하셨습니다. 해당 강의 복습하다 보니, 섹션 10 작업형 3번 문제풀이 하면서 범주형 변수에 C( ) 씌워서 summary 하신게 생각났고 섹션 8 강의의 범주형 변수 부분에다 한번 시도해봤습니다import pandas as pd df = pd.DataFrame({ '매출액': [300, 320, 250, 360, 315, 328, 310, 335, 326, 280, 290, 300, 315, 328, 310, 335, 300, 400, 500, 600], '광고비': [70, 75, 30, 80, 72, 77, 70, 82, 70, 80, 68, 90, 72, 77, 70, 82, 40, 20, 75, 80], '플랫폼': [15, 16, 14, 20, 19, 17, 16, 19, 15, 20, 14, 5, 16, 17, 16, 14, 30, 40, 10, 50], '투자':[100, 0, 200, 0, 10, 0, 5, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], '유형':['B','B','C','A','B','B','B','B','B','B' ,'C','B','B','B','B','B','B','A','A','A'] }) from statsmodels.formula.api import ols model = ols("매출액 ~ 광고비 + C(유형)", data=df).fit() print(model.summary())그러고 둘다 확인해보니 OLS Regression Results 결과 수치별로 비교해봤는데 같더라고요. 그럼 범주형 변수에 그냥 C( ) 씌워서 하는게 코딩이 더 간편할 거 같은데 pd.get_dummies(drop_first=True)를 사용해야 하는 뭔가 다른 이유, 혹은 C( )로 커버할 수 없는 게 있어서 그런건지 궁금합니다. 답변 부탁드립니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
scipy 관련 질문
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요from scipy import stats랑 from scipy.stats import chi2_contingency 두가지의 차이점이 궁금합니다어떤건 scipy고 어떤건 scipy.stats인지 모르겟어요ㅠ
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
스케일은 대부분 df 알고 있으나 train을 넣는 건 컬럼이 아니라 train 데이터 전체를 넣는 게 아닌가요?
아 ! 사이킷런에서 제공하는 스케일은 대부분 데이프프레임을 입력인 줄은 알고 있으나, train은 컬럼명 지정이 아닌 train 데이터 전체를 사용하신 게 아녔었나용?? (이전 질문)이상치에 민감하지 않도록 Rubust scaler 사용하실 때는scaler = Rubustscaler()하시고, scaler.fit_trasnform(train)scaler.transform(test) 하셨던 걸로 기억하는데왜 여기서는 scaler.fit_transform(df[['socre']])로 진행하신 걸까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
target = test.pop()
작업형 2에서는 target = train.pop('')으로 train데이터에서 target을 추출했는데 작업형 3의 오류율 구하는 문제에서는 target = test.pop('gender')으로 test데이터에서 target을 추출한 것 같습니다.(train에서 추출하면 오류가 발생하긴 하더라구요) 작업형 3에서는 왜 target을 test에서 추출하는 건가요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
roc_auc_score 오류 해결방법
multi_class must be in ('ovo', 'ovr') 라고 오류뜨는데 해결 방안이 있을까요..?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형2 제출시 질문있습니다
roc-auc가 평가지표일경우 predict_proba를 사용해 제출 하는것이 좋다고 하셨는데 이 경우에 제출해야하는 것은 항상 1일확률인지 궁금합니다 혹시 0일 확률을 제출해야하는 경우도 있나요? 감사합니다!
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
캐글 vs 기출 복습
안녕하세요 선생님완강은 했는데요캐글에서 새로운 문제 풀기 vs기출 문제 빈칸으로 다시 풀면서 복습하기 중에 하나만 해 볼 수 있는 시간적 여유가 남은거 같아서요 둘중에는 무엇을 추천하시나요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
제출 변수
선생님 유형 2번 제출할때 컬럼은 문제에 적힌대로(ex)id, 확률~)이렇게 적고, 행은 test데이터와 똑같은 행으로 나오면 되는게 맞는거죵??