묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형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)
타입 3유형의 경우 3문제 이상의 답을 외워서 다음장에 입력해서 제출해야 하나요?
타입 3과 같은 경우 한문제당 3개 이상의 질문이 있고, 이것을 코드로 구한다음, 다음 장에서 1,2,3번의 답을 입력해서 제출하는 형식인데, 이 경우 시험환경에서 1,2,3번의 답을 외워서 다음 버튼을 누른후 숫자를 입력해서 제출하는 방법 외에는 없나요? 은근히 소숫점 3자리까지 검정통계량 구하기 뭐 이런 답들은 3문제의 답을 외우기가 어렵던데요 ㅠㅠ
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형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) 위의 부분은 원래 답이고, 아래 부분은 제가 작성한 부분입니다.따로 함수를 안 만들고, 제가 작성한 방식으로 해도 괜찮은가요?
-
미해결(2025) 일주일만에 합격하는 정보처리기사 실기
반복문+조건문 문제 풀이
반복문+조건문 문제풀이예제2번에서 2의 배수이거나 3의 배수에서 5의배수와 6의 배수를 빼라는걸로 이해했습니다. 그래서 풀이는2의 배수 : 10123의 배수 : 674더하면 1686 이 되고이중 6의 배수는 두 번 들어갔으니6의 배수 : 337을 빼면 1349가 됩니다.그 후 && 뒷항 조건을 적용하면1349 에서 6의배수(337) 을 한 번 더 빼고5의 배수중에서 숫자 5는 2와 3의 배수에 포함되지 않기 때문에10의 배수 : 20215의 배수 : 134를 또 빼고 30의 배수는 한번만 뺏어야 되었는데 총 3번이 빠졌으니 30의 배수를 두 번 더하여 나온 값이 810 입니다. 혹시 풀이가 이게 맞을까요 ?1012+674-337-337-202-134+67+67 = 810다른 간단한 풀이도 있는지 궁금합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형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') 라고 오류뜨는데 해결 방안이 있을까요..?
-
해결됨2주만에 통과하는 알고리즘 코딩테스트 (2024년)
17611번 자바
import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] x = new int[1000001]; int[] y = new int[1000001]; // 첫 번째 꼭짓점 int firstW = sc.nextInt() + 500000; int prevH = sc.nextInt() + 500000; int prevW = firstW; // 나머지 꼭짓점 for (int i = 1; i < n; i++) { int w = sc.nextInt() + 500000; int h = sc.nextInt() + 500000; if (prevW == w) { // 수직선 y[Math.min(prevH, h)]++; y[Math.max(prevH, h)]--; } else { // 수평선 x[Math.min(prevW, w)]++; x[Math.max(prevW, w)]--; } prevW = w; prevH = h; } // 마지막 꼭짓점과 첫 번째 꼭짓점 연결 if (prevW == firstW) { // 수직선 y[Math.min(prevH, firstW)]++; y[Math.max(prevH, firstW)]--; } else { // 수평선 x[Math.min(prevW, firstW)]++; x[Math.max(prevW, firstW)]--; } // 큰 값 찾기 int xMax = 0; int yMax = 0; for (int i = 1; i < 1000001; i++) { x[i] += x[i - 1]; // 이전 값이랑 누적합 y[i] += y[i - 1]; xMax = Math.max(x[i], xMax); // 큰 값 비교 yMax = Math.max(y[i], yMax); } System.out.println(Math.max(xMax, yMax)); } }안녕하세요 17611번 문제 자바로 풀고있습니다.백준 게시판과 인터넷에 공유된 풀이가 거의 없어 커뮤니티에 질문 올리게 되었습니다. 문제에서 주어진 예를 테스트 했을 때는 잘 작동하는데, 제출시에(40%쯤) '틀렸습니다' 라고 나옵니다. 해당 코드로는 작동하지 않는 반례 또는 식의 오류를 알려주세요. 감사합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형2 제출시 질문있습니다
roc-auc가 평가지표일경우 predict_proba를 사용해 제출 하는것이 좋다고 하셨는데 이 경우에 제출해야하는 것은 항상 1일확률인지 궁금합니다 혹시 0일 확률을 제출해야하는 경우도 있나요? 감사합니다!
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
캐글 vs 기출 복습
안녕하세요 선생님완강은 했는데요캐글에서 새로운 문제 풀기 vs기출 문제 빈칸으로 다시 풀면서 복습하기 중에 하나만 해 볼 수 있는 시간적 여유가 남은거 같아서요 둘중에는 무엇을 추천하시나요?