묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형2 전처리 질문
cols = [ '지역', '작물종류', '토양유형', '등급'] from sklearn.preprocessing import LabelEncoder le = LabelEncoder() df= pd.concat([train,test]) for i in cols: df[i] =le.fit_transform(df[i]) train = df.iloc[:4000] test = df.iloc[4000:] print(train.shape, test.shape)
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형 2 평가 질문있습니다
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요안녕하세요 작업형 2에서 만약 앞에서 모델만 잘 만들었다면 굳이 평가안하고 바로 테스트하고 제출해도 될까요?예를 들어 평가지표를 rmse로 하라고했는데 그냥 생략하고 잘 만들어겠지 하고 제출하려고합니다어차피 랜덤포레스트 원툴인데 실전에서 기준점수가 뭔지도 모르고 이것저것 시도해서 점수를 높일 여유가 없을거같아서요 ㅠ
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형 2 랜덤스테이트 질문있습니다
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요안녕하세요 값들을 고정시키고자 랜덤스테이트 = 0의 작업을 한다고 배웠는데 그럼 혹시 실전에서 나는 랜덤포레스트 원툴로 간다 라고하면 랜덤스테이트 = 0 등을 안적어도 무방할까요?
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
데이터 분리
안녕하세요 시간이 별로 없는 상태라 빅이시를 학습 중입니다.빅이시에선# 1. 데이터 전처리 target = train.pop('TravelInsurance') # ' '에는 예측할(타겟) 컬럼명 작성 train = pd.get_dummies(train) # train 문자형 컬럼 인코딩 (숫자로 변경) test = pd.get_dummies(test) 이렇게 하고 바로 머신러닝 모델 선택 후 학습을 진행하는데 꿀팁 섹션의 한가지 방법으로 풀기에서는 검증 데이터 분리를 추가로 수행하도록 되어 있더라구요# 검증데이터 분리 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)40점을 받기 위해서는 굳이 한가지 방법에 정리된 검증데이터 분리 코드를 사용하지 않아도 되는 것인가요 ?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
카이제곱검정 관찰값, 기대값
카이제곱검정에서 관찰값과 기대값은 어떻게 구분하는게 안 헷갈릴까요? ㅜ
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
머신러닝 학습 및 평가
기출 5회 제 2유형을 풀고 있는데요, 모델 성능의 평가 기준이 RMSE라고 되어 있어, from sklearn.metrics import root_mean_squared_error 을 import 하더라고요, 실제 시험장에서도 이 코드까지 제출해야하는건가요? 아니면 단순히 제출후에 모델 성능을 따로 판별할 수 없어서 혼자 모델성능을 비교해보기 위해, 이렇게 import를 하는건지 궁금합니다!
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
시험 대비 점수 배점 궁금해요
작업형2, 작업형3을 만점 목표 + 작업형 1은 아는 것까지만 풀려고 합니다 완벽하게 풀면 물론 문제당 10점을 받겠지만, 최종적인 답을 못내도 중간까지만 코드를 작성해도 부분점수를 받을 수 있나요? all or nothing인지 궁금합니다 어렵게 내면 더 어렵게 낼 수 있겠지만 우선 인강에서 찝어주신 부분 위주로만제대로 해서 가려고 합니다 감사합니다
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
데이터프레임에서 일정 조건의 셀값 변경하는 방법
안녕하세요. 작업형 1관련하여 질문있습니다. 나올것 같지는 않기는 한데, 혹시 몰라서요.지금까지는 fillna를 통해 결측값을 대치하는 명령어를 사용하였는데요. 예를 들어,'abc(카테고리변수)', 'price(연속형)' 두개의 변수가 있다고 할때, abc 변수의 'a'인 값의 price가 잘못기입하여 기존값(abc 변수의 'a'값에 해당하는 'price' 값)의 1.1배를 해야 한다고 하면, 어떻게 코드를 작성하면 좋을까요? replace를 하기에는 변경해야할 변수 값이 많아서 어떻게 해야할지 궁금합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
기출 8회 작업형2 질문
공지를 확인하였는데 궁금한 점이 있어 질문드립니다.기출에서 컬럼을 삭제하는 경우가 없다 하셨는데 혹시 기출 8회에서도 컬럼 삭제 없이 문제를 풀 수가 있나요?저는 아무리 해봐도 customerID 컬럼을 삭제하지 않으면 인코딩이 안 되어서요 ㅜㅜ 혹시 저는 원핫인코딩 하나로 밀고 나가고 있는데 공지는 레이블인코딩으로 진행하는 상황 기준인 걸까요..?감사합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
스케일링 방법
안녕하세요! 최근 기출에는 작업형1에서 스케일링 문제가 안 나오는 걸로 알고 있는데, 스케일링에 대해서도 알아야 할까요?.....
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
9회 작업형1 문제 이중포문으로 해결해도 되나요?
9회부터 작업형1이 갑자기 어려워진 것 같습니다. 기존에 알고 있던 걸로 풀리지 않아, 알고리즘 문제 풀듯이 2중포문을 사용해서 문제를 풀었습니다. 코랩에서는 바로 결과가 나오나, 구름에서 코드를 돌려보니 1분안에 결과가 안나오던데, 실제 시험장에서는 이렇게 문제를 풀어도 되는지 여쭤보고 싶습니다. 작업형1 2번 문제와 3번문제를 둘 다 이중포문으로 풀었습니다.2번 코드import pandas as pd df = pd.read_csv("https://raw.githubusercontent.com/lovedlim/inf/refs/heads/main/p4/9_1/crime.csv") # print(df) list(set(df['연도'])) # print(df.columns[2]) store = [] for i in range(0,len(df),2): rate = 0; name = '' for j in range(2,16): temp = df.iloc[i+1,j] / df.iloc[i,j] if temp > rate: rate = temp name = df.columns[j] store.append(name) print(store) cond_result = df['구분'] == '검거건수' df_result = df[cond_result].reset_index(drop = True) print(df_result) sum = 0 for i in range(7): sum = sum + df_result.loc[i,store[i]] print(sum) #77993번 코드import pandas as pd df = pd.read_csv("https://raw.githubusercontent.com/lovedlim/inf/refs/heads/main/p4/9_1/hr.csv") print(df) # print(df.shape) # print(df.isnull().sum()) # print(df.head()) a = df['만족도'].mean() # print(a) df['만족도'] = df['만족도'].fillna(a) df_group = df.groupby(['부서', '성과등급'])['근속연수'].mean().reset_index() print(df_group) cond1 = df['근속연수'].isnull() df_null = df[cond1].drop(['사원번호', '연봉', '교육참가횟수', '만족도'], axis = 1).sort_values(['부서', '성과등급']) print(df_null) for i in range (len(df_null)): for j in range (len(df_group)): if (df_null.iloc[i,0] == df_group.iloc[j,0]) & (df_null.iloc[i,1] == df_group.iloc[j,1]): df_null.iloc[i,2] = int(df_group.iloc[j,2]) break; # df['근속연수'] print(df_null) print(df) df['근속연수'] = df['근속연수'].fillna(df_null['근속연수']) df['연봉/근속연수'] = df['연봉'] / df['근속연수'] print(df.sort_values('연봉/근속연수',ascending = False)) #1 df['연봉/만족도'] = df['연봉'] / df['만족도'] print(df.sort_values('연봉/만족도',ascending = False)) #6 print(1+6)
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
전처리 관련 문의
전처리 과정에서 꼭 ID 칼럼을 train과 test 둘다 제거해야하는건가요? 그대로 진행하면 안되는건지 여쭤보고 싶습니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
[작업형2] 연습문제 섹션 1
인코딩하지 않고 분할로 바로 넘어간 이유를 설명해주세요.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
실행값?출력값 다름
왜 저는 앞에 np.float64가 붙을까요?그 이후로 예측하는데 에러가 나요
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
test 예측 오류
왜 오류가 나는지어떤 오류인지 모르겠어요..
-
미해결머신러닝 엔지니어 실무
머신러닝 파이프라인 단계 질문
안녕하세요, 선생님.일반적으로 머신러닝 파이프라인이데이터 수집 및 버저닝 데이터 검증 데이터 전처리 모델 학습 이 순서로 진행된다고 이해하고 있습니다.여기서 제가 헷갈리는 부분이 있어서 질문드립니다. 데이터 검증 범위 최초에 업로드된 raw 데이터에 대해 1차 데이터 검증을 수행한 후, 전처리 과정을 거쳐 train / eval 데이터셋이 생성된다고 알고 있습니다. 이때 전처리까지 마친 train / eval 데이터셋에 대해서도 한 번 더 데이터 검증을 수행하는 것이 일반적인 패턴인지가 궁금합니다. 즉, 파이프라인 단계를 좀 더 세분화하면 아래와 같이 이해해도 되는지요? 1) 데이터 검증 (raw 데이터 기준) 2) 데이터 전처리 3) 전처리된 train / eval 데이터에 대한 2차 데이터 검증 4) 모델 학습 최초 학습 시점의 스키마와 서빙 데이터 검증 최초 학습 때 전처리된 파일로부터 train / eval 데이터셋을 만들고, 이 데이터들에 대해 검증을 수행했다면, 이후 실제 서빙 단계에서 들어오는 serving 데이터에 대해서는 최초 학습 시 사용한 train 데이터의 스키마/통계 정보를 기준으로 이상 유무를 판단하는 것이 맞는지 질문드립니다. 즉, - “최초 학습 시점: raw → 검증 → 전처리 →전처리 결과 검증 → 모델 학습” - “서빙 시점: 새로운 입력 데이터 → train 시점 스키마/통계 기준으로 검증 → 이상 없을 때만 모델에 입력” 이런 흐름이 일반적으로 사용하는 구조인지 궁금합니다. 정리하면, - 데이터 검증 → 전처리 → 전처리 결과에 대한 추가 검증 → 모델 학습 이라는 단계가 자연스러운지, - 그리고 서빙 데이터는 최초 학습 시점의 train 데이터 스키마/통계를 기준으로 검증하는 것이 맞는지에 대해 설명해 주시면 감사하겠습니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
유형3 분산분석 질문 값의 차이와 에러
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요유형3의 분산분석 예제 중, 이원분산분석에서 직접 코드를 쳐 분석을 진행했더니 아래와 같은 출력이 나오는데, 밑에 예시와는 값이 꽤나 다르게 나오는 부분이 있었습니다. 범주형 변수를 제대로 처리를 안 해서 그런 부분이다.라고 생각해서 C()를 통해 변수를 묶으니, 코랩에서 제대로 인식을 하지 못해 아래와 같은 에러가 발생해서 제대로 된 출력이 나오지 않는 상황입니다. 제 컴퓨터 문제일 수도 있겠지만... 이런 에러를 처리하는 해결방안이 있을까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
수업 질문
안녕하세요풀이 확인 후에, 제가 다르게 생각했던 부분들은 안되는지 한번 더 질문드립니다 Section 16. 이상치, IQR'views' 컬럼의 1사분위수, 3사분위수 그리고 IQR을 계산하시오.이상치 조건에 맞는 데이터를 찾으시오. (이상치는 1사분위수 – (IQR 1.5)보다 작은 값과 3사분위수 + (IQR 1.5)보다 큰 값)이상치 데이터의 'views' 컬럼 합을 정수로 구하시오. q3 = df['views'].quantile(.75)q1 = df['views'].quantile(.25)IQR = q3 - q1line1 = q1 - 1.5 * IQRline2 = q3 + 1.5 * IQRcond=(df['views']<line1) & (df['views']>line2)print(int(df[cond]['views'].sum()))이렇게 하면 안되나요?ㅠ 2.Section 18. 데이터(행) 기준 평균값, 인덱싱index '2001' 데이터(행)에서 평균보다 큰 값의 개수를 구하시오.index '2003' 데이터(행)에서 평균보다 작은 값의 개수를 구하시오.두 개수를 더하시오.이 문제에서 풀이랑 같이df=df.Tm1 = df[2001].mean() 이렇게 했는데,---------------------------------------------------------------------------ValueError Traceback (most recent call last)/usr/local/lib/python3.12/dist-packages/pandas/core/indexes/range.py in get_loc(self, key)412 try:--> 413 return self._range.index(new_key)414 except ValueError as err:ValueError: 2001 is not in rangeThe above exception was the direct cause of the following exception:KeyError Traceback (most recent call last)2 frames/usr/local/lib/python3.12/dist-packages/pandas/core/indexes/range.py in get_loc(self, key)413 return self._range.index(new_key)414 except ValueError as err:--> 415 raise KeyError(key) from err416 if isinstance(key, Hashable):417 raise KeyError(key)KeyError: 2001이런 오류가 뜹니다인덱스 2001 할때 그냥 df[2001]이렇게 하는거 맞나요? Section 19. 결측치(뒤에 값으로 대체), 그룹합결측치를 바로 뒤에 있는 값으로 대체하시오. (바로 뒤의 값도 결측치일 경우, 뒤에 있는 데이터 중 가장 가까운 값으로 대체)'city'와 'f2' 컬럼을 기준으로 그룹합을 계산하시오.'views' 값이 세 번째로 큰 city 이름을 구하시오.에서 df = df.bfill() 라고 적혀있던데 풀이에서bfill 은 이전 값, ffill이 이후 값 아닌가요?그리고,# city와 f2기준 그룹합 계산df = df.groupby(['city','f2']).sum(numeric_only=True).reset_index()여기서 reset 다음에 한 이유가 무엇인가요?감사합니다
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
섹션1-10 질문
1. Section 8. 시계열 데이터, 필터링, 데이터 개수 문제df['subscribed']=pd.to_datetime(df['subscribed'])df['y_m']=df['subscribed'].dt.to_period("m")# print(df.head())print(df.info())cond1=df['y_m']=='2024-02'cond2=df['f3']='gold'df=df[cond1&cond2]저는 이렇게 페리어드로 코딩 했는데 오류가 납니다ㅠ/tmp/ipython-input-3254161643.py:7: FutureWarning: 'm' is deprecated and will be removed in a future version, please use 'M' instead. df['y_m']=df['subscribed'].dt.to_period("m")---------------------------------------------------------------------------TypeError Traceback (most recent call last)/usr/local/lib/python3.12/dist-packages/pandas/core/ops/array_ops.py in na_logical_op(x, y, op) 361 # (xint or xbool) and (yint or bool)--> 362 result = op(x, y) 363 except TypeError:TypeError: ufunc 'bitwise_and' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''During handling of the above exception, another exception occurred:ValueError Traceback (most recent call last)6 framesops.pyx in pandas._libs.ops.scalar_binop()ValueError: Buffer dtype mismatch, expected 'Python object' but got 'bool'The above exception was the direct cause of the following exception:TypeError Traceback (most recent call last)/usr/local/lib/python3.12/dist-packages/pandas/core/ops/array_ops.py in na_logical_op(x, y, op) 383 ) as err: 384 typ = type(y).__name__--> 385 raise TypeError( 386 f"Cannot perform '{op.__name__}' with a dtyped [{x.dtype}] array " 387 f"and scalar of type [{typ}]"TypeError: Cannot perform 'and_' with a dtyped [bool] array and scalar of type [bool]이렇게 오류가 납니다2. 결측치가 삭제된 데이터를 사용하여 지역별(city) 평균을 계산하시오.이문제에서df=df.groupby('city').mean()이렇게 하면 오류가 나던데ㅠdf = df.groupby(['city']).mean(numeric_only=True) 이렇게 뒤에 numeric 까지 반드시 해야하나요?
-
해결됨<머신러닝, 핵심만 빠르게!> 완독 챌린지
쿠폰관련 문의
첼린지를 처음하다보니 쿠폰기간을 놓쳤습니다. 메일로 다시 보내주실수 없는지 문의드립니다. 번거롭게해서 죄송합니다.