현재 체험환경에 있는 작업형 2번 문제 데이터는 concat해서 풀어도 되나요?
해결됨
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
물론 범주형 카테고리가 다른것도 확인은 했지만 그래도 concat하고 분할해도 무방한가요?
- python
- 머신러닝
- 빅데이터
- pandas
- 빅데이터분석기사
172만명의 커뮤니티!! 함께 토론해봐요.
해결됨
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
물론 범주형 카테고리가 다른것도 확인은 했지만 그래도 concat하고 분할해도 무방한가요?
해결됨
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 안녕하세요 평가지표 중 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,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)
질문 여기다 드리면 되나요 샘 코드 한번만 봐주세요 오늘 강의 들어왔어요 ㅠㅠ 진작했어야했는데요 에러는 안났느데 답 수치가 달라서요 import pandas as pd train= pd.read _csv("train.csv") test= pd.read _csv("test.csv") # print( train.info ()) # print( test.info ()) from sklearn.preprocessing import LabelEncoder le= 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_split X=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 RandomForestRegressor rfr=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_error rmse= 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)
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의 기출을 풀고 있습니다. 저는 주로 '~~기준 ~~번째로 큰 데이터의 ~~을 구하시오'라는 문제를 풀 때 그 값을 기준으로 sort_values를 하고 그에 따라 맞는 행과 컬럼을 iloc로 답을 구하고 있습니다. 강사님과 답은 똑같은데 제 방식대로 계속 하면 될까요?
해결됨
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
제2유형 전처리 작업할 때, 결측치 - 중앙값 또는 0 처리 / 환불금액의 경우 상식적으로 환불을 안하는 사람이 있으니 0 처리가 맞을듯 범주형(문자열) - drop 진행 안하고 그대로 원핫인코딩만 진행하려고합니다. 상관 없을까요?
해결됨
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
소비량이 5번째로 많은 국가를 하는데, 3번째로 많은 국가가 2곳입니다. 그러면 3번째를 공동 3위로 처리해서 1,2,3,3,5 이렇게 보는 걸까요?? 문제의 말로만 따지면 5번째로 많은 국가니까 313 다음 국가를 써야하나 싶어서 질문드립니다.
해결됨
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
안녕하세요 선생님, 9회차에서 50점으로 아쉽게 떨어지고 재수강중인 학생입니다 다름이 아니라 작년 시험에서 기억이 잘 안나는데 제가 작업형 2 유형을 원핫인코딩 - 랜덤포레스트 한가지로 통일해서 연습해서 9회차 시험에서도 그렇게 했던 기억이 있는데요 물론 그 때 작업형 2 유형을 40점을 맞았지만 뭔가 불안해서 한 번 이렇게 여쭤보게 되었습니다. 작업형 2 유형은 그냥 원핫인코딩 - 랜덤포레스트 기준으로 평가지표에 맞게만 하면 되겠죠...? 스케일링이나 하이퍼 파라미터 사용 없이? 😥 😥
해결됨
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
안녕하세요 시험에서, 스케일링과 모델에있어 하이퍼파라미터 튜닝을 할 수 있다면 하는게 더 좋나 여쭤보려합니다 랜덤포레스트에서 max_depth, n_estimators같은 것들을 변경했을 때, 제가 보는 평가지표상에서는 더 좋아질지언정 과대학습으로 오히려 시험점수가 낮게나올수도 있다고 하더라고요. 하이퍼파라미터는 해서 평가지표가 더 좋아지면 하고 내는게 좋나요? 또한 후기를 찾아보니 수치형데이터들이 엄청 크게 나온다는데 이경우 스케일링을 하는게 더 효과적일까요
미해결
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 2유형 최종제출할 때 read_csv도 주석 처리하고 제출해야 하나요? (print는 당연히 주석 처리해야 하는 걸로 알고 있습니다)
해결됨
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
만약에 target 값이 object라면 데이터 전처리(인코딩)를 하기 전에 pop을 적용하는 것이 맞고, int형이면 데이터 전처리 후에 해도 되는 것인가요?
해결됨
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 MSE 불러와서 RMSE 함수를 시험장에서 생각 못할경우 그냥 print 안에서 **0.5 를 해도 될까요??
해결됨
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 rmse 쓸때 그냥 아래처럼 쓰면되나요? 1.4v이상부터 된다는데, 시험장 환경을 몰라서요.. from sklearn.metrics import root_mean_squared_error root_mean_squared_error(y_val,pred) 추가로, mse로 변환할때, def rmse(y_true,y_pred)에서 y_true랑 y_pred 는 어디서 가져오는 값인가요?
해결됨
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형1, 3 에서는 따로 답안 제출을 해야 되는데, 답안 제출란으로 넘어가면 메모장이 보이지 않습니다. 그래서 혹시나 하는 입력 실수를 방지하고자 이면지에 작성하고 답안 제출을 하고 싶은데... 이게 가능한지 궁금합니다. 감사합니다.
해결됨
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
import pandas as pd train = pd.read_csv("https://raw.githubusercontent.com/lovedlim/inf/refs/heads/main/p4/6_2/energy_train.csv") test = pd.read_csv("https://raw.githubusercontent.com/lovedlim/inf/refs/heads/main/p4/6_2/energy_test.csv") X_train = train.drop(['Heat_Load'], axis = 1) y_train = train['Heat_Load'] X_test = test from sklearn.preprocessing import LabelEncoder encoder = LabelEncoder() X_train['Roof'] = encoder.fit_transform(X_train['Roof']) X_test['Roof'] = encoder.transform(X_test['Roof']) X_train['Height'] = encoder.fit_transform(X_train['Height']) X_test['Height'] = encoder.transform(X_test['Height']) X_train['Orient'] = encoder.fit_transform(X_train['Orient']) X_test['Orient'] = encoder.transform(X_test['Orient']) num_columns = X_train.select_dtypes(exclude = 'object').columns from sklearn.preprocessing import MinMaxScaler scaler = MinMaxScaler() X_train[num_columns] = scaler.fit_transform(X_train[num_columns]) X_test[num_columns] = scaler.transform(X_test[num_columns]) from sklearn.model_selection import train_test_split X_train, X_val, y_train, y_val = train_test_split(X_train, y_train, test_size =0.2, random_state=2025) print(X_train.shape, X_val.shape, y_train.shape, y_val.shape) from sklearn.ensemble import RandomForestRegressor model = RandomForestRegressor() model.fit(X_train, y_train) y_val_pred = model.predict(X_val) ValueError : could not convert string to float: 'High' 위와 같이 작성하였는데 해당오류가 뜹니다. 라벨인코딩은 진행하였는데 왜 오류가 발생할까요??.. 원핫인코딩을 진행해야하나요?
해결됨
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
마인드맵 업데이트 된 것이 어디에 올라와있을까요?
미해결
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
풀었을 때 2020년도는 11개의 월이 있고, 2021년도는 9개의 월밖에 없었습니다. 왜 12로 나누나요? 그냥 mean()해야하는거 아닌가요? 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요