묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
예시문제 작업형 3
이 문제 검정통계량 값을 구할 때, f_oneway를 활용하면은 집단이 2개밖에 없기 때문에 안되는 건가요? 선생님이 말씀해주신 풀이방법으로만 풀어야 할까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
문제2-2, 2-3) 독립변수 CustomerID 사용에 따른 답 변화
문제 2-2, 2-3 정답이 로지스틱 회귀 모형을 만들때 CustomerID를 독립변수로 넣을때와 넣지 않을때의 정답이 달라지는데 확실한 정답이 있을까요 ??
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
lightGBM 전 인코딩
안녕하세요. Chat gpt에서 lightGBM 전에는 아래와 같이 코딩을 해주면 된다고 하는데, 책이나 강의에서는 랜덤포레스트와 동일하게 원핫 인코딩이나 라벨인코더를 사용하고 있습니다.어떻게 하는게 맞는건가요? train = train.astype('category') test = test.astype('category')
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
마인드맵 감사합니다.
2.0은 확실히 더 좋아진 것 같습니다.유형 1, 2는 세로로 길이가 너무 길어서 보기 힘든데 2페이지로 나눈 버전도 만들어주실 수 있나요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
유형 2 질문... 지수표기법 ->일반 형태로
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요유형 2 질문... 전처리 전에 print(train['total'].describe())지수표기법 ->일반 형태로 꼭 바꿔야 하나요??
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
실기시험 환경 답안제출화면 메모장
실제 실기시험 환경에서, 답안제출화면에도 체험환경처럼 메모장이 없나요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
from sklearn.metrics import root_mean_squared_error
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요결론부터 말씀드리면, scikit-learn 버전 1.4 이상부터는 root_mean_squared_error 함수를 직접 import해서 사용할 수 있습니다.과거에는 RMSE를 계산하기 위해 mean_squared_error를 불러와 제곱근을 취해야 했지만, 최신 버전에서는 더 직관적으로 사용할 수 있게 함수가 추가되었습니다.사용 방법 (scikit-learn 1.4 이상)아래와 같이 바로 import하여 사용하시면 됩니다. 라는데.. 시험칠 때 바로 적용 가능한가요?아니면 강의내용처럼 mse에 함수 만들어야 하나요? 유형 2 질문입니다. ㅜㅠㅠ
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
8회 작업형2
train = train.drop('customerID', axis=1) test = test.drop('customerID', axis=1) target = train.pop('TotalCharges') train = pd.get_dummies(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) print(X_tr.shape, X_val.shape, y_tr.shape, y_val.shape) from sklearn.ensemble import RandomForestRegressor rf = RandomForestRegressor(random_state=0) rf.fit(X_tr, y_tr) pred = rf.predict(X_val) # print(pred) from sklearn.metrics import mean_squared_error mse = mean_squared_error(y_val, pred) print(mse) pred = rf.predict(test) result = pd.DataFrame({'pred':pred}) result.to_csv('result.csv', index=False) print(pd.read_csv('result.csv')) print(pd.read_csv('result.csv').head()) print(pd.read_csv('result.csv').shape)원핫인코딩, 랜덤포레스트로 진행했는데mse 값이 1561363.7676789626크게 나오는데 이렇게 진행해도 괜찮을까요?제출파일의 pred값을 확인해보면 선생님이 하셨던 라벨인코딩, lgbm pred 예측값과는 차이가 별로 나지는 않습니다
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
제2유형 실기
name, ID 등 드랍해도 되는가? 풀이해주신 강의를 쭉 보면 어떤 항목은 드랍했고, 예를들어 랜포로 한번에 푸는 강의에서는드랍은 없었는데, 당장 내일 시험이라면 드랍없이 가도 괜찮을까요? 드랍안했다고해서 0점맞지는 않겠죠?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
예시문제 작업형 2
카테고리가 달라서 concat 하는게 번거로우면아래 해설로 진행하면 해결되는건가요? train, test = train.align(test, join='left', axis=1, fill_value=0)원핫인코딩: train = pd.get_dummies(train)test = pd.get_dummies(test)
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
모의문제 작업형 2 코드 ㅠㅠㅠ 제가 작성한 코드에 어디에 문제가 있는것일까요?
import pandas as pdtrain = pd.read_csv("data/customer_train.csv")test = pd.read_csv("data/customer_test.csv")#print(train.shape, test.shape)#결측치 채우기train['환불금액']=train['환불금액'].fillna(train['환불금액'].median())test['환불금액']=test['환불금액'].fillna(test['환불금액'].median())# print(train.isnull().sum())#범주형컬럼 카테고리 수 확인하기cols=train.select_dtypes(include="O").columnsprint(cols)for col in cols: same=set(train[col].unique())==set(test[col].unique()) print(col,same)train=train.drop('회원ID',axis=1)test=test.drop('회원ID',axis=1)target=train.pop("총구매액")mid=len(train)#데이터 합치고 인코딩 후 다시 분할하기df=pd.concat([train,test],axis=0)print(df)#라벨인코딩하기from sklearn.preprocessing import LabelEncoderle=LabelEncoder()for col in cols: df[col]= le.fit_transform(df[col])# print(df.head(8))#다시 나누기train=df.iloc[:mid].copy()test=df.iloc[mid:].copy()print(train.shape, test.shape)#민맥스스케일링(추후)#train데이터 분할하기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=100)# #모델구축(1) #707.539# from sklearn.ensemble import RandomForestRegressor# model=RandomForestRegressor(random_state=100)# model.fit(X_tr, y_tr)# pred=model.predict(X_val)#모델구축(2) 705.1955import lightgbm as lgbmodel=lgb.LGBMRegressor(random_state=0, verbose=-1)model.fit(X_tr, y_tr)pred=model.predict(X_val)#성능평가RMSEfrom sklearn.metrics import root_mean_squared_errorprint(root_mean_squared_error(y_val, pred)) 성능평가한 값이 선생님 결과랑 터무니없이 차이가 많이 나네요 ㅠㅠ어디가 잘못된걸까요
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형2 하이퍼파라미터튜닝
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요하이퍼 파라미터 튜닝을 하는데 그리드서치를 써서 해도 되나요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
현재 체험환경에 있는 작업형 2번 문제 데이터는 concat해서 풀어도 되나요?
물론 범주형 카테고리가 다른것도 확인은 했지만 그래도 concat하고 분할해도 무방한가요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
이진분류에서 양성이 0일 때, roc_auc_score 적용..
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요 안녕하세요 평가지표 중 roc_auc_score 학습 중에 궁금한 사항이 있어서 질문드립니다. 강의나 시나공, 기출 다 이진분류 0, 1 중 1을 양성으로 예측하는 문제가 있어서 반대로 0일 확률을 예측하고 평가하는 경우 어떻게 처리해야하는지 궁금해서요..!! rf = RandomForestClassifier(random_state = 0)rf.fit(X_tr, y_tr) 그리고 rf.classes_ 로 확인해보면 [0, 1] 일 때,y_pred_rf = rf.predict_proba(X_val) 그리고 roc_auc_score에서roc_auc_score(y_val, y_pred_rf[:, 0]) 이렇게 첫 번째 클래스(0일 확률)를 입력하면 자동으로 0을 양성으로 계산해서 모형평가가 이루어지는 건가요?아니면 pos_label = 0 이라고 지정을 하거나, 별도의 방법이 필요한가요?! 그리고 분류 클래스가 문자형(A, B)인 경우에는(rf.classes_도 [A, B])roc_auc_score(y_val, y_pred[: , 1]) 이렇게 하면 자동으로 B를 양성으로 인식하는 게 맞는지 궁금합니다 !! (이경우에도 A 확률을 평가하려면y_pred[:, 0]으로 하고 pos_label = 'A'라고 해야하는지도 ㅠㅜ) 감사합니다 :)
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
피벗테이블은 필수로 알아야하나요?
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요피벗테이블은 필수로 알아놔야할까요? 뭔가 더헷갈려서요... 언스택만 알아도 충분할지 문의드립니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형1 모의고사
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요문제 아래쪽에 있는 코드를 모두 복사하라는데 그게 어딨나요..?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
클래스 불균형 질문드립니다.
기출 9회 작업2유형 풀이 코드입니다.# print(train.shape,test.shape) # (4000, 9) (1000, 8) # print(train.info(), test.info()) # float64(3), int64(2), object(4), float64(3), int64(1), object(4) # print(train.nunique(), test.nunique()) # 농업면적 4000, 비료사용량 3997, 비료잔여량 4000 # print(train.head(30)) # train = train.drop(columns = '농업면적') # test = test.drop(columns = '농업면적') # train = train.drop(columns = '비료사용량') # test = test.drop(columns = '비료사용량') # train = train.drop(columns = '비료잔여량') # test = test.drop(columns = '비료잔여량') # target = train.pop('농약검출여부') from sklearn.preprocessing import LabelEncoder le = LabelEncoder() cols = train.select_dtypes(include = 'O').columns for col in cols: train[col] = le.fit_transform(train[col]) test[col] = le.transform(test[col]) 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) from sklearn.ensemble import RandomForestClassifier rf = RandomForestClassifier(random_state = 0, max_depth = 11, n_estimators = 200, class_weight = 'balanced') rf.fit(X_tr, y_tr) pred = rf.predict(X_val) from sklearn.metrics import f1_score, accuracy_score, recall_score print('f1 : ', round(f1_score(y_val, pred, average = 'macro'), 3)) print('acc : ', round(accuracy_score(y_val, pred), 3)) print('recall : ', round(recall_score(y_val, pred, average = 'macro'), 3))처음 학습을 진행할 때 랜덤포레스트에 class_weight 하이퍼파라미터는 적용하지 않은 상태에서 학습을 진행했고, f1 : 0.887 acc : 0.97 recall : 0.848이라는 높은 수치가 나왔습니다.GPT 확인해보니 accuracy_score 점수가 f1_score 점수보다 높으면 과적합 문제가 있을 수도 있다고해서확인을 해보니 과적합 문제는 아닌 것 같았습니다. 이후에 train['농약검출여부'].value_counts()를 해보니 클래스 불균형으로 판단을 했습니다.(농약검출여부 = (2 : 1989, 0 : 1758, 1 : 253)) 확인 후에 class_weight 하이퍼 파라미터를 추가했는데도 수치가 크게 달라지지 않더라구요.f1 : 0.856 acc : 0.945 recall : 0.887이런 경우에는 그냥 제출하는게 맞을까요 ? 지난 9회차 시험에 평가지표 수치가 높게 나오긴 했는데 만점은 받았거든요..그래도 수치가 높으면 좀 불안하네요..
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
5회 기출문제 수업질문입니다
질문 여기다 드리면 되나요 샘 코드 한번만 봐주세요 오늘 강의 들어왔어요 ㅠㅠ 진작했어야했는데요 에러는 안났느데 답 수치가 달라서요import pandas as pdtrain=pd.read_csv("train.csv")test=pd.read_csv("test.csv")# print(train.info())# print(test.info()) from sklearn.preprocessing import LabelEncoderle= LabelEncoder()cols= ("model", "transmission", "fuelType")for col in cols:le.fit(train[col])train[col]= le.transform(train[col])test[col]= le.transform(test[col])from sklearn.model_selection import train_test_splitX=train.drop(columns=["fuelType", "price"])y=train["price"]X_train, X_test, y_train, y_test=train_test_split(X, y, test_size=0.2, random_state=20)print(train.shape)print(test.shape)from sklearn.ensemble import RandomForestRegressorrfr=RandomForestRegressor(n_estimators=400, max_depth=30, random_state=20)rfr.fit(X_train, y_train)pred1=rfr.predict(X_test)print(pred1)from sklearn.metrics import root_mean_squared_errorrmse= root_mean_squared_error(y_test, pred1)print("rmse:", rmse)test_X=test.drop(columns=["fuelType"])pred2=rfr.predict(test_X)pd.DataFrame({"pred":pred2}).to_csv("result.csv", index=False)print(pd.read_csv("result.csv"))
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
labelencoder 질문
target = train.pop('Heat_Load') cols = ['Roof','Height','Orient', 'Heat_Load'] from sklearn.preprocessing import LabelEncoder for col in cols: le = LabelEncoder() train[col] = le.fit_transform(train[col]) test[col] = le.transform(test[col]) 영상처럼 원핫인코딩을 진행하면 오류가 없는데 라벨인코딩 진행시 오류가 납니다 ㅠㅠ KeyError: 'Heat_Load' 이렇게 뜨는데 어떻게 해결해야 하나요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형1 기출
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요작업형1의 기출을 풀고 있습니다. 저는 주로 '~~기준 ~~번째로 큰 데이터의 ~~을 구하시오'라는 문제를 풀 때 그 값을 기준으로 sort_values를 하고 그에 따라 맞는 행과 컬럼을 iloc로 답을 구하고 있습니다. 강사님과 답은 똑같은데 제 방식대로 계속 하면 될까요?