묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
체험환경 삽입모드
안녕하세요! 실기 체험환경에서 코드를 작성하는데 이전에 썼던 코드를 수정하려고 하니 삽입되지않고 덮어써져서 코드 수정하는데 어려움을 겪고있습니다! 혹시 덮어쓰기모드에서 삽입모드로 변경하려면 어떻게 해야되나요? 항상 감사합니다!
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
선생님하고 똑같이 작성했는데 rmse가 도저히 ㅠㅠ왜그런걸까요
라이브러리 및 데이터 불러오기 import pandas as pd train = pd.read_csv('https://raw.githubusercontent.com/lovedlim/inf/refs/heads/main/p2/ch4/train.csv') test = pd.read_csv('https://raw.githubusercontent.com/lovedlim/inf/refs/heads/main/p2/ch4/test.csv') # test.isnull().sum() #결측치 처리 필요함 Item_Weight//// Outlet_Size target=train.pop('Item_Outlet_Sales') # 결측치 처리 train['Item_Weight'] = train['Item_Weight'].fillna(train['Item_Weight'].mean()) train['Outlet_Size'] = train['Outlet_Size'].fillna(train['Outlet_Size'].mode()[0]) test['Item_Weight'] = test['Item_Weight'].fillna(train['Item_Weight'].mean()) test['Outlet_Size'] = test['Outlet_Size'].fillna(train['Outlet_Size'].mode()[0]) # train=train.drop('Item_Identifier',axis=1) # test=test.drop('Item_Identifier',axis=1) #다르므로 데이터 합친 후 레이블인코딩 하고 다시 train test로 나누기 combined=pd.concat([train,test]) #->그다음 레이블인코딩해보자 cols=train.select_dtypes(include="O").columns print(cols) from sklearn. preprocessing import LabelEncoder for col in cols: le=LabelEncoder() combined[col]=le.fit_transform(combined[col]) #->다시 데이터 train과 test로 나누자 train=combined.iloc[:len(train)].copy() test=combined.iloc[len(train):].copy() print(train.shape, test.shape) #train데이터분할하기 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=100) # #모델구축(1) # from sklearn.ensemble import RandomForestRegressor # model=RandomForestRegressor(random_state=200) # model.fit(X_tr,y_tr) # pred = model.predict(X_val) #모델구축(2) import lightgbm as lgb model = lgb.LGBMRegressor(random_state=0, verbose=-1) model.fit(X_tr, y_tr) pred = model.predict(X_val) #성능평가 from sklearn.metrics import root_mean_squared_error from sklearn.metrics import mean_absolute_error from sklearn.metrics import r2_score from sklearn.metrics import mean_squared_error result=root_mean_squared_error(y_val,pred) print('RMSE:', result) result = mean_squared_error(y_val, pred) print('MSE:', result) result = mean_absolute_error(y_val, pred) print('MAE:', result) result = r2_score(y_val, pred) print('r2:', result)
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
저는 RMSE값이 1099정도 나오는데 ㅠㅠ
랜덤포레스트회귀로 하였는데rmse값이 1099정도 나오는데요 이정도는 차이가 큰것일까요
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형2 모델 검증
선생님의 코딩# LightGBM import lightgbm as lgb lg = lgb.LGBMClassifier(random_state=0, verbose=-1) lg.fit(X_tr, y_tr) pred = lg.predict(X_val) print("lightgbm") print(f1_score(y_val, pred, average='macro')) # 최종 제출 파일 (lightGBM) pred = lg.predict(test) result = pd.DataFrame({'pred':pred}) result.to_csv("result.csv", index=False) 저의 코딩from lightgbm import LGBMClassifier lg = LGBMClassifier(random_state=0, verbose=-1) model = lg.fit(X_tr, y_tr) pred = model.predict(X_val) pred.shape f1_score(y_val,pred, average='macro') # basic # 0.9257472552209252 pred = lg.predict(test) submit = pd.DataFrame({'pred' : pred}) submit.to_csv('result.csv', index=False) pd.read_csv('result.csv') 여쭙고싶은 것은 선생님께서는 lg.fit을 어떤 변수에 넣지 않고 바로 학습시킨 뒤 그것으로 예측 및 검증을 하고 최종 test 예측까지 수행하시는데,저는 lg.fit을 model이란 변수에 넣은뒤 예측 및 검증을하고, 최종적으로는 lg로 test 예측을 수행합니다. 혹시 이 차이에서 최종 예측성능에 차이가 생길까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
3회 기출유형 (작업형2) _ 제출형식에 관한 문의
교수님 안녕하십니까? 3회 기출유형 (작업형2)를 혼자 풀면서 심사위원분들께서 채점을 할 때,사용자 코드를 보고 채점 코드를 변경하시는지 혹은 일괄적인 코드로 채점을 하시는지 궁금함이 생겼습니다. 궁금한 점1) 테스트 데이터값을 예측할 때-> pred = rf.predict_proba(test)[:,1] 로 하지 않고,-> pred = rf.predict_proba(test) 로 테스트 데이터를 예측한 이후,아래와 같이 진행하면 심사위원분들이 유동적으로 채점 코드를 변경하시나요?test_index = test.index[:] test_index submit = pd.DataFrame({'index':test_index,'y-pred':pred[:,1]}) submit.to_csv('result.csv',index=False) pd.read_csv('result.csv') ※ 교수님이 주신 채점 코드를 아래와 같이 제 임의로 변경하면 채점이 되는것을 확인했습니다.roc_auc_score(y_test,pred) -> roc_auc_score(y_test,pred[:,1]) ※ 다만, 사용자 데이터를 보지않고 채점 코드를 일괄적으로 적용하면,정해진 제출형식에 어긋나게 작성해서 0점을 받을까 걱정이되서 문의드립니다!
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
실습파일
혹시 실습 파일 어디서 다운 받는지 알 수 있을까요??ㅠ 몇번째 강의 였는지 기억이 안나서 여쭤봅니다ㅠ
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
자유도 구할때
안녕하세요~ 소문제 1번에서 자유도를 구할때는 len함수를 사용하고 소문제 3은 sum사용하셨는데 둘다 sum사용 가능한가요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
test_size
test_size를 0.15로 잡은 이유가 있을까요 ?? 저 사이즈 크기는 어떻게 잡는게 좋은지 궁금합니다.
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
'id'컬럼 제거
결측치 처리 마지막 단계에서 'id'컬럼은 어떤 이유로 제거를 하는 것일까요 ??
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
결측치 처리
'reviews_per_month' 컬럼을 삭제하는 방법으로 해도 상관이 있을까요 ??어떤 컬럼은 삭제하고 어떤 컬럼은 다른 값으로 채우는게 판단이 안될때 결측치 있는 컬럼 전부 삭제하는 방법으로 하면 안되는지 궁금합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형 1 문제 7번
코드를 아래와 같이 작성하면 틀린것인지 궁금합니다! df=pd.read_csv('data.csv',index_col='Unnamed: 0') df.head() df=df.T print(df) me1 = df[2001].mean() me2 = df[2003].mean() print(sum(df[2001]>me1)) print(sum(df[2003]<me2))
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
시험환경 ver.2025 작업형2 RMSE
안녕하세요. 이번에 올라온 2유형 문제를 풀어보았는데요. <작성한 코드>import pandas as pdtrain = pd.read_csv("data/customer_train.csv")test = pd.read_csv("data/customer_test.csv")# 사용자 코딩pd.set_option('display.max_columns', None)# 전처리target = train.pop('총구매액')train['환불금액'] = train['환불금액'].fillna(0)test['환불금액'] = test['환불금액'].fillna(0)# [선택2] 원핫 인코딩 (카테고리가 다르면 합쳐서 진행 필요함)df = pd.concat([train, test])df = pd.get_dummies(df)# 다시 분리train = df.iloc[:len(train)]test = df.iloc[len(train):]print(train.shape, test.shape)# 검증용 데이터 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)print(X_tr.shape, X_val.shape, y_tr.shape, y_val.shape)# 모델 학습 및 평가from sklearn.ensemble import RandomForestRegressormodel = RandomForestRegressor()model.fit(X_tr, y_tr)pred = model.predict(X_val)from sklearn.metrics import root_mean_squared_errorprint("RMSE:",root_mean_squared_error(y_val, pred))# 제출 pred = model.predict(test)submit = pd.DataFrame({'pred': pred})submit.to_csv('result.csv', index=False)print(pd.read_csv('result.csv')) 결측치를 0으로 채우고 train,test 합쳐서 원핫인코딩 후 랜덤포레스트회귀 모델사용 RMSE 평가지표 값이 나왔는데 강사님 수치랑 너무 크게 차이가 나서요. 이렇게 많이 차이 나도 괜찮은건가요? 작을수록 좋은거이긴 하지만 강사님이랑 너무나 다른 값이 나와서 제가 작성한 코드와 화면 출력하여서 틀린부분이 있는지 문의 드립니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
파라미터 최적화 GridSearchCV
실기에서 GridSearchCV써도 되나요? 'n_estimators': [100, 200], 'max_depth' : [5, 10], 'min_samples_split': [2, 5] 만 설정했는데도 돌아가는데 꽤 오래걸리는 것 같아서요 귀찮아서 바로 refit해서 쓰고 있는데 돌려보고 나서 GridSearchCV는 주석처리하고 나온 파라미터만 써서 돌려야 할까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
궁금한 점 있습니다!
# 출력을 원하실 경우 print() 함수 활용# 예시) print(df.head())# getcwd(), chdir() 등 작업 폴더 설정 불필요# 파일 경로 상 내부 드라이브 경로(C: 등) 접근 불가import pandas as pdtrain = pd.read_csv("data/customer_train.csv")test = pd.read_csv("data/customer_test.csv")pd.set_option("display.max_columns", None)train['환불금액'] = train['환불금액'].fillna(0)test['환불금액'] = test['환불금액'].fillna(0)train = train.drop("회원ID", axis = 1)test = test.drop("회원ID", axis = 1)target = train.pop("총구매액")#print(train.describe(include = 'O'))#print(test.describe(include = 'O'))total = pd.concat([train,test])nums = total.select_dtypes(exclude = 'object').columnscols = total.select_dtypes(include = 'object').columnsfrom sklearn.preprocessing import MinMaxScalermx = MinMaxScaler()total[nums] = mx.fit_transform(total[nums])from sklearn.preprocessing import LabelEncoderfor col in cols: le = LabelEncoder() total[col] = le.fit_transform(total[col])train = total.iloc[:3500]test = total.iloc[3500:]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 = 2022)from sklearn.ensemble import RandomForestRegressormodel = RandomForestRegressor(random_state = 2022, max_depth = 10,n_estimators = 800)model.fit(x_tr,y_tr)pred = model.predict(x_val)#81957423.82110961pred = model.predict(test)re = pd.DataFrame({"pred":pred})re.to_csv("result.csv",index=False)v = pd.read_csv("result.csv")print(v.shape)강사님 안녕하세요 짧은 지식으로 2유형을 혼자 풀어보고 나서 강의를 들었는데 라벨 인코딩은 set 을 활용해서 train 안에 test 데이터가 다 있다면 따로 합치지 않아도 된다는걸 이제야 알았습니다! 혹시 저처럼 합쳐서 라벨인코딩을 진행하게되면 모델 성능에 큰 영향을 미칠까요? 그리고 합치게 된다면 그냥 원핫 인코딩으로 일관되게 쓰면 되는지도 궁금합니다
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
train데이터가 두개 주어졌을때(추가질문)
안녕하세요! concat에 대한 질문글을 달았다가, 대댓글은 알림이 가지 않는거 같아서 추가질문 드립니다 :) 질문: 어차피 train,test 두개 줘도 train에서 타겟값 분리하고 train, test 컬럼수 일치시키고 진행하니까 굳이 합칠 필요는 없을거 같은데 이해한게 맞을까용? 주로 concat을 이용할때는 train-test 컬럼을 다르게 가지고 있을때 전처리를 위해 이용하겠네요..!답변: 넵 분리되어 있다는 것을 인지하고 있다면 하지 않아도 됩니다.다만 y_train에는 타겟값 뿐만 아니라 ID를 포함하고 있어 이 부분은 주의하셔야 해요! SalePrice 컬럼을 선택해야 해서 기존과 코드가 약간씩 달라질 수 있어요! >> y_train에 id/price(타겟) 컬럼이 있다고 치면, 원래 타겟값만 별도로 저장하고 x_train/test만 사용했는데용...x_train id값과 y_train id값을 일치시켜서 합쳐야된다는 말씀이실까요?아니면 분리할때 id값도 같이 저장안되게끔 주의하라는 말씀이실까요?!
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
2유형 시험 적용 질문
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요 안녕하세요. 빅데이터분석기사를 준비하고 있습니다.시간이 얼마 남지 않아 2유형을 할 때 머신러닝 학습 및 평가 부분을 제외하고 바로 머신러닝 학습 후 test 데이터에 적용해서 예측 결과를 제출해도 크게 상관 없을까요?2유형을 랜덤 포레스트 방식 하나만 외워서 시험을 응시할까 하는데 괜찮을까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
문제3번 equal_var
예시문제가 제 예상보다 너무 어렵게 나온거같아서 지금 혼란스럽습니다. 학습하지 않은 내용이 나왔네요3번에서 equal_var=True는 생략해도 가능하죠?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형3 범주형변수 처리시
작업형 3에서 범주형변수 처리시 어떤경우에는 C()처리하고 어떤경우에는 하지말고...헷갈려요강의들을때 독립변수는 그냥 다 C()처리해서 하는것도 좋다고 하셨던거같은데 정리 부탁드립니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
가설검정의 독립표본검정
안녕하세요카이제곱의 독립성검정과 가설검정의 독립표본검정이 문제로만 봐서는 헷갈리는데 시험에서는 지문에 어떤 검정방법을 쓰라고알려주나요? 작업형3은 문제 지문을 보고 어떤 검정방법을 써야하는지 너무 헷갈리네요ㅠ
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
빅분기 실기 1유형 3유형 풀이과정
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요빅분기 실기 1유형 3유형 풀이과정이 중요한가요?풀이 중에서 정답 출력이 반드시 필요하지 않다고는 말해주셨는데실제로 그런 것인지 ... 몇 문제는 눈으로 풀 수 있는건 그냥 풀어도 될까 해서 질문드립니다 ㅎㅎ(6회 3유형처럼 데이터 수가 많지 않은 문제는 혹시 기억이 안 날 때, 그냥 데이터 프레임 만들어서 비교해도 되나 해서 질문드립니다) import pandas as pd df = pd.DataFrame({ "항암약":[4,4,3,4,1,4,1,4,1,4,4,2,1,4,2,3,2,4,4,4] }) # 1: '아픔', 2: '조금 아픔', 3: '속쓰림', 4: '무증상'