묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
회귀 prediction 관련 데이터 크기 오류 질문
안녕하세요, 5회 작업형을 풀면서 궁금한게 생겨 질문 드립니다.from sklearn.model_selection import train_test_split X_tr,X_val,y_tr,y_val = train_test_split(train,y,test_size = 0.1,random_state= 2022) #modeling # randomForestRegressor, XGBRegressor from sklearn.ensemble import RandomForestRegressor #RandomForest model = RandomForestRegressor() model.fit(X_tr, y_tr) pred = model.predict(X_val) print("rmse:", (mean_squared_error(y_val,pred))**0.5)이 과정에서는 문제가 생기지 않습니다. X_tr, y_tr 그리고 X_val로 만들어진 pred, y_val의 크기가 각각 일치하기 때문인데 제출을 위해 pred = model.predict(test) print("rmse:", (mean_squared_error(y,pred))**0.5) # y는 test data에서 pop한 타겟(=price)이걸 돌리면 사이즈가 맞지 않아 rmse가 나오지 않는다고 합니다. 그도 당연한게 test = pred 는 애초에 train데이터보다 숫자가 훨씩 적은 상태고, y는 train데이터에서 와서 데이터 개수가 훨씬 크기 때문인데요.전에 똑같은걸 풀어서 그 때는 어떻게 해결했나 보니 y데이터를 따로 주셨더라구요 그건 test data와 크기가 같았고요.근데 https://www.kaggle.com/competitions/big-data-analytics-certification-kr-2023-5th/data여기에는 y데이터 값이 존재하지 않는데 이런..경우는 어떻게 해결하나요?? 정리하자면, pred의 데이터 사이즈와, 타겟의 데이터 사이즈의 불균형으로인한 rmse 오류를 어떻게 해결하는지 궁금합니다! 아, 그리고 concat 관련 질문도 있습니다.#get dummies train_c = pd.get_dummies(train[cols_c],dtype=int) #cols_c는 범주형 데이터 columns list test_c = pd.get_dummies(test[cols_c],dtype=int) #concat train = pd.concat([train,train_c],axis = 1) test = pd.concat([test,test_c],axis = 1) train = train.drop('transmission',axis =1 ) test = test.drop('transmission',axis =1) train = train.drop('fuelType',axis =1 ) test = test.drop('fuelType',axis =1) 제가 get_dummies를 활용해서 one-hot 인코딩을 했는데요, train[cols_c] = pd.get_dummies(train[cols_c],dtype=int) 이것도.. 사실 새로운 컬럼들이 만들어지는거라 안된다는 판단하에, 아예 새로운 변수에다가 저장해서 원래 데이터에 추가를 했습니다.저는 회귀를 돌리기 위해 (그리고 원핫인코딩을 한 이유도) 범주형 데이터는 없애야 되잖아요? 그래서 train, test데이터 각각에서 기존 train[col_c]에 해당하는 애들이 없어졌으면 좋겠는데이런 상황에서 위와 같이 .. 주먹구구식으로 하나씩 안 빼고 한번에 (one-hot 인코딩 + 싹 합치는) ..방법이 있나요???
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형 2번 라벨인코딩 질문
실기 2회의 작업형 2번에서X_train, y_train, X_test로 데이터가 구성 되어 있는데X_train의 데이터를 라벨인코딩 하려고 하니깐 y should be a 1d array, got an array of shape (8799, 4) instead.이런 내용의 에러 메세지가 떴습니다. 모델의 타겟 변수인 'y'가 2차원 배열이 아닌 1차원 배열이어야 한다는 내용입니다. # 라벨인코딩 제가 작성한 코드입니다.cols = ['Warehouse_block', 'Mode_of_Shipment', 'Product_importance', 'Gender'] from sklearn.preprocessing import LabelEncoder le=LabelEncoder() X_train[cols] =le.fit_transform(X_train[cols]) X_test[cols] = le.transform(X_test[cols]) 질문1X_train, y_train, X_test로 데이터가 구성 되어있으면 무조건X_train, y_trian을 합쳐서 라벨인코딩을 해야하나요?질문2합치지 않고도 쉽게 할 수 있는 방법이 있나요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
data leakage관련해서 질문드립니다!
안녕하세요 선생님 다름이 아니라 test의 결측치를 대체할 때 data leakage 문제로 인해 train의 평균값이나 중위수로 대체해주시는걸 보고 궁금한게 있어 질문드립니다. 최빈값 같은 경우는 train의 최빈값으로 안하고 test의 최빈값으로 대체해주셨는데 데이터 누수를 방지하려면 최빈값도 똑같이 train의 최빈값으로 해주는 것인지 아니면 범주형 변수는 상관 없고 수치형 변수만 train값으로 해주는 것인지 궁금합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
선생님 4회 기출 문제 작업형2에서요
모델 학습 RandomForestClassifier 사용 할 때 이번엔 predict_proba 가 아니라 prodict만 사용 했는데.. predict 과 predicproba 사용 차이 점이 있을까요 ? 계속 필사만 하고 있는데... 점점 그 차이가 헷갈립니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
csv 파일 한글이 깨져요..
선생님이 배포해 주신 자료 한글이 깨져서 보입니다 ㅠㅠ그래서 이런식으로 파일 불러오는 과정에서 오류가 발생합니다..어떻게 해결해야할까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
X_test 결측치 질문
X_test 결측치를 채울때 'age' 와 'hours.per.week' 컬럼은 왜 X_test의 평균이 아니라 X_train으로 채우나요? 단순 오타인가요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
특정컬럼에 결측치가 있으면 데이터(행) 삭제??
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요데이터 전처리 인터넷 강의를 들으며 궁금한게 있어 질문드립니다.'특정컬럼에 결측치가 있으면 데이터(행) 삭제'라는 의미가 무엇인지 모르겠고 왜 사용해야하는지 모르겠습니다. 즉, df = X_train.drona(axis =0)과 무슨 차이가 있는지 모르겠고 이걸로만 해결하면 될 것 같습니다. 제가 이해한 것은, native.country 칼럼에서만 결측치를 지우고 싶을 때 사용하면 되는 것인가요? 그리고 이렇게 사용해야 데이터의 정확도가 높아진다고 보면 될까요? 두서없이 작성하느라 죄송합니다 ㅠㅠ
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
독립성 검정
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요독립성 검정시 데이터 프레임 만들때 인댁스 안만들어도 된다고 하셧는데 감점안되나요? 최대한 간단하게 ㅇ외우려고 하는데 뺄수있는건 빼고싶어서요
-
해결됨처음하는 딥러닝과 파이토치(Pytorch) 부트캠프 (쉽게! 기본부터 챗GPT 핵심 트랜스포머까지) [데이터분석/과학 Part3]
실제 캐글 문제 풀고 제출해보며 성능 개선 기법 익히기8 강의에서 질문입니다
실제 캐글 문제 풀고 제출해보며 성능 개선 기법 익히기8 강의의 3:20 부분에서 궁금한 점이 있어 질문 올립니다. 해당 코드에서는 저장된 model_efficientnet-b7_without_scheduler_adam_1e5_epoch20.pth 모델을 load할 때, model_efficientb7 = deepcopy(model) PATH = '/content/drive/MyDrive/Colab Notebooks/Dataset/Dogs vs Cats/' model_efficientb7.load_state_dict(torch.load(PATH + 'model_efficientnet-b7_without_scheduler_adam_1e5_epoch20.pth'))다음과 같이 model의 뼈대를 다시 구성한 후, load_state_dict 메소드를 이용하여 가중치 값을 업데이트 하였습니다. 이때, model_efficientb7 = deepcopy(model) 와 같이 그냥 model 객체가 아닌, deepcopy(model)을 사용한 특별한 이유가 있는지 궁금합니다. deepcopy를 사용할 경우, 'model_efficientb7'과 'model' 객체는 서로 독립적인 객체로 유지된다는 점은 파악할 수 있었는데요,model_efficientb7에 적용되는 변화와는 별개로 model 객체 자체를 유지하려는 의도에서 사용한 것이라고 보면 되는지 여쭙고 싶습니다!
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
시험에서 데이터 생성하는 것도 나올 수 있는건가요?
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요 7번 문제 데이터 생성문 이해가 어렵고,index_col="Unnamed: 0" 도 뭔지 모르겠어요ㅠㅠ
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
concat 후 라벨인코딩시 질문이에요
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요df = pd.concat([X_train,y_train['Reached.on.Time_Y.N']],axis=1)cols = X_train.select_dtypes(include='object').columnsfor col in cols :le = LabelEncoder()X_train[col] = le.fit_transform(X_train[col])X_test[col] = le.transform(X_test[col]) x_train과 y_train을 합치는 이유는 x_train 에는 값을 가지고 있지 않지만 y_train에는 값을 가질 수도 있기 때문에 합치는 거라고 배웠던 것 같은데 맞나요? 그렇다면cols = X_train.select_dtypes(include='object').columns해당구문은cols = df.select_dtypes(include='object').columns이렇게 합쳐진 df에서 cols를 구해야 할 것 같다고 생각이 드는데 틀렸나요 ?혹은 해당 데이터는 x_train과 y_train 컬럼 값에 차이가 없기 때문에 X_train로 그냥 진행이된건가요 ?! 제가 이해한게 맞는지 잘 모르겠어서 질문합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
캐글 T1-19 질문
이 코드에서 밑에 두줄의 코드가 뜻하는 바를 알고싶습니다.위에 함수정의(def)코드를 주석처리해도 답은 나오던데윗코드랑 아랫코드는 같은 의미인가요?풀이 영상이나 강좌가 있다면 알려주세요 ㅠㅜ
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
단답형이 아직도 있나요?
작업형 1,2,3으로 변경되지 않았나요?단답형, 작업형1, 작업형2가 아직 유지인가요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형 1, 모의문제1의 문제3 질문있습니다!
안녕하세요!f3의 결측치를 변환할 때 .replace()와 .map()을 알려주셨는데요, 두 개의 차이가 궁금해서 질문드립니다! 아래는 제가 푼 풀이 과정인데 결과는 133이 나오더라고요!# f3의 결측치를 0으로 변환 # dt['f3'].isnull().sum() # 변환 전 28개 dt['f3'] = dt['f3'].fillna(0) # dt['f3'].isnull().sum() # 변환 후 0개 # silver를 1, gold는 2, vip는 3으로 변환 a = {"silver" : 1, "gold" : 2, "vip" : 3} dt['f3'] = dt['f3'].replace(a) # 총 합 구하기 print(int(sum(dt['f3'])))강의를 보니 .replace()는 앞에서부터 하나씩 순차적으로 변환되고.map()은 딕셔너리를 사용해 일괄 변환된다고 하셨는데, (제가 이해한 게 맞을까요..?)제가 푼 풀이 과정은 딕셔너리를 만들어서 replace로 변환한 거라 이것도 맞는 과정인지, 우연의 일치인지 궁금합니다!ㅠㅠ 감사합니다!
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
이원 분산 분석 링크가 동작하지 않아요.
이원 분산 분석의 아래 링크가 없다고 나옵니다.노트북(빈칸): https://bit.ly/3ZFv4IZ
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
5-1 강의 내용 문의드립니다
안녕하세요 선생님! 5-1 수업에서 이해가 되지 않는 부분이 있어서 문의글 남깁니다.이 부분에서 보시면 print 문은 4개인데,결과로 나오는 값은 5개(블럭 표시 되어있는 부분)더라구요..!제가 실행했을 때의 값과 비교해보니 순서대로 정확도(0.96668~), 정밀도(0.94444~), 재현율(0.843511~), F1(0.89112~) 값이 출력된 것 같은데요,마지막 값(0.87169~)은 어떤 문장의 결과일까요?ㅠㅠ
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
주말일 경우 "주말"로 표시되게끔 하고 싶어요.
df['is주말'] = df['DateTime3'].dt.dayofweek >= 5 이 다음에 주말일 경우 "주말"로 표시되게끔 하려면 어떻게 함수를 만들어야 할까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
y_train은 왜 필요한거예요? ㅠㅠ
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요라이브러리 및 데이터 불러오기 강의에서 X_train, X_test는 왜 필요한지 알겠습니다. 근데 y_train은 왜 필요한거예요? target(label)이라고 생각하면 될까요? 즉, 이게 맞는지 아닌지 판단하는 기준이라고 생각하면 될까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
4-2 type1 작업형1 6번 문제 문의드립니다.
안녕하세요, 수강생입니다.학습 중에 궁금한 사항이 있어 문의글 남깁니다. 문제6 (데이터는 members.csv)'age' 컬럼의 이상치(소수점 나이와 음수나이, 0포함)를 제거하고제거 전 후의 views 컬럼 표준편차를 더하시오 (최종 결과 값은 소수 둘째자리까지 출력, 셋째자리에서 반올림) [ 풀이 코드 ]# 풀이 import pandas as pd df = pd.read_csv("members.csv") r1 = df['views'].std() cond = df['age'] <= 0 # print(df.shape) df = df[~cond] # print(df.shape) # print(df.shape) cond = df['age'] == round(df['age'],0) df = df[cond] # print(df.shape) r2 = df['views'].std() print(round(r1 + r2, 2))답은 : 8420.69 가 나왔고, [ 저의 코드 ]import pandas as pd df = pd.read_csv('members.csv') # print(df.head()) # print(df['age']) r1 = df['views'].std() df['age'] = df['age'] > 0 df['age'] = df['age'] == round(df['age'],0) r2 = df['views'].std() print(round(r1+r2, 2))저의 답은 8341.72 가 나왔는데.... 저의 질문은 'age' 컬럼의 이상치를 제거하면 제거한 값을 'age' 컬럼에 그대로 덮어쓰고 코드를 작성하는게 맞을 것 같은데 풀이는 cond 라는 변수로 받고 전체 df 데이터에 이상치 제거 값을 덮어쓰셨더라구요.어떠한 차이가 있는지 궁금합니다..
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
transform 이해가 안돼요
cols = ['neighbourhood_group', 'neighbourhood', 'room_type'] from sklearn.preprocessing import LabelEncoder for col in cols: le = LabelEncoder() train[col] = le.fit_transform(train[col]) test[col] = le.transform(test[col]) train[cols]마지막에 train[col]이 아니고 train[cols]에 담긴게 이해가 안돼요 cols에서 꺼내서 col에 담았고.. for문 아래에도 col에 담았는데 왜 최종적으로는 cols에 담긴거예요??