묻고 답해요
143만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
RMSLE 에러 관련 질문
교재 작업3 회귀 중고차예측문제를 푸는데(평가지표 RMSLE)마지막에 rmsle 계산할 때Root Mean Squared Logarithmic Error cannot be used when targets contain negative values.이런 에러가 계속 나오더라고요타겟 데이터가 price라서 음수는 없는데 무슨 문제일까 싶어서train_test_split후from sklearn.metrics import root_mean_squared_log_error 사이킷런에서 불러와서도 해보고 from sklearn.model_selection import cross_val_score rmsle = -1 * cross_val_score(model , train , target , cv = 5 , scoring = "neg_root_mean_squared_log_error")cross_val_score 사용해서도 해봤는데도 계속 같은 에러가 나왔습니다..아무리 해도 안고쳐 지길래저는 모델이 lgbm이었는데 혹시나 해서 랜덤포레스트로 바꾸니까 정상적으로 돌아가더라고요..혹시 lgbm을 사용하면 안되는 문제점이 있을까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
교재 크로스벨리데이션, 하이퍼파라미터 관련 질문
1. 교재 작업2 다중분류 약물종류 예측에서크로스벨리데이션으로 평가하는 방법이 나와있는데 제가 이해한게 맞는지 질문드립니다.from sklearn.metrics import f1_score from sklearn.model_selection import cross_val_score from sklearn.ensemble import RandomForestClassifier model = RandomForestClassifier(random_state = 0) f1 = cross_val_score(model ,train, target ,cv=3 , scoring="f1_macro")마지막 한줄에서 cross_val_score가 train , target을 3(cv=3)덩어리로 나눈 후각 덩어리?를 model을 통해 학습한 후 나머지 데이터로 평가하여 f1_macro로 각각의 평가지표가 계산되는것이고,이후 앞으로 돌아가 전처리 등을 통해서 평가지표를 향상할 수 있도록 해본 후에최종 제출하기 전에마지막에 model.fit(train,target)을 통해서 전체 train, test로 다시 학습을 시킨 후 제출을 하는 과정이 맞을까요?이 문제에서 총 train 데이터가 100개라 그런지 f1이 1이 나오길래검증 데이터수가 너무 적어서 점수가 높게 나왔다고 생각하여 test_size를 0.3로 변경하고 진행을 하였습니다. 이런식으로 하는 방법은 train 데이터 수가 작아지기 때문에 옳은 방법이 아닌걸까요? 3. 하이퍼파라미터 max_depth , n_estimators 등은 lightgbm, 랜포에서 동일하게 사용하는걸까요? lightgbm에 대한 하이퍼파라미터 튜닝은 다루지 않은것 같아서요(아직 기출 강의는 듣지 않아서 강의에서 다뤘을지도 모르겠습니다..)1)튜닝을 하는 경우에는 데이터셋에 과적합 우려가 있기 때문에 cross_val_score을 사용하는것이 나아보이기도 하고, 2)튜닝값이 분할된 각 데이터셋에 적용되는 것이므로 , 마지막에 전체 데이터로 다시 학습시키는 과정에서 동일한 튜닝값이 적용되면 더 안좋아질 수도 있을 것 같은데 1) 2) 중 어느것이 옳은 생각일까요?train_test_split을 이용하는 경우 전처리 + X_tr, y_tr을 통해 학습한 모델로 검증한 후 마지막에 전체 train, target으로 다시 학습시키는게 더 좋을 것 같은데(데이터 양의 증가), 튜닝을 한 경우에는 X_tr, y_tr로 학습한 모델로 제출을 하는 것이 옳을까요?train_test_split을 했을때 하이퍼 파라미터 튜닝으로 f1이 0.61 ->0.65로 올라갔으나,cross_val_score에서 같은 튜닝값을 적용하니 f1이 0.71 -> 0.69으로 내려갔습니다. 이런 경우 튜닝전후 어떤 값으로 제출하는게 좋을까요? 시험이 며칠 안남기는 했지만 cross_val_score을 익숙하게 쓸 수 있으면 시험에서도 train_test_split 대신 cross_val_score을 사용하는게 좋을까요? 아니면 train_test_split으로만 검증해도 상관없을까요질문이 많아서 죄송합니다.감사합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
2회 기출 작업형2 결과값
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요아직 강의 보기전 혼자 풀어보았을때 결과가 이런식으로 다르게 나온다면 코드에서 잘못된 부분이 있는거겠죠ㅠㅠ?검증데이터로는 roc_auc_score 0.75 나옵니다(오류없이 실행은 되는데 결과 확률이 다르게 나옵니다ㅠ)
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형 2
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요# F1 스코어(F1 Score) *** 숫자 문자 차이 없음 from sklearn.metrics import f1_score f1 = f1_score(y_true, y_pred, average='macro') # average= micro, macro, weighted print("F1 스코어:", f1) f1 = f1_score(y_true_str, y_pred_str, average='macro') print("F1 스코어:", f1) *RMSE(Root Mean Squared Error) *** from sklearn.metrics import mean_squared_error mse = mean_squared_error(y_true, y_pred) rmse = mse ** 0.5 print("RMSE:", rmse)F1 스코어 : f1 = f1_score(y_true, y_pred, average='macro' 여기서 y_true RMSE: mse = mean_squared_error(y_true, y_pred) 여기서 y_true 두 y_ture 모두 y_val 값을 말하는게 맞나요??
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
검증데이터셋으로 훈련 및 검증 후 다시 훈련(fit) 여부
안녕하세요,6회 기출 유형 작업형2 풀이에서 마지막에 최종 제출 파일에서rf.fit(train, target)으로 다시 훈련한 후에pred = rf.predict(test)로 예측을 하시더라구요, 저는 기존의 강의에서 from sklearn.ensemble import RandomForestClassifier rf = RandomForestClassifier(random_state=2013) rf.fit(X_tr, y_tr) pred = rf.predict(X_val)이렇게 검증데이터 셋으로 훈련 후에 바로 pred = rf.predict(test)로 예측을 했었거든요,최종 파일 제출할 때는rf.fit(train, target)으로 다시 훈련한 후에pred = rf.predict(test) 예측을해야하는 것일까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
기출 7 작업형 1 관련 문의입니다.
ValueError: Length of values (1) does not match length of index (33)와 같은 오류가 뜨는 이유를 잘 모르겠습니다. 실행한 코드입니다. import pandas as pd df = pd.read_csv("https://raw.githubusercontent.com/lovedlim/inf/refs/heads/main/p4/7_1/student_assessment.csv") df = df.dropna() df['id_assessment'].value_counts() print(df.head(10)) con = df['id_assessment'] == 12 df = df[con] from sklearn.preprocessing import StandardScaler ss = StandardScaler() df['score'] = ss.fit_transform([df['score']])
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
test 데이터 예측 결과에서 한 값만 튀는데 이럴 수 있는건가요?
3-5 마지막 문제 중 평가 데이터로 예측하는 부분에서 이런 결과가 나왔습니다. 어떤 부분을 놓쳤는지 모르겠지만 강사님의 예측 결과랑 완전 똑같진 않아요. 그래도 첫번째 자리수까지는 똑같은데요.. 문제는 id가 4213인 값이 혼자 튀는데 이런 경우도 있을 수 있나요? 아니면 제가 뭘 잘못한건가요? 정확도 평가는 88% 나왔습니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
독립표본검정에서요
두 집단의 분산이 같은지 다른지 여부를 모를때 shapiro 검정을 통해 정규성 만족 여부 확인1-1) 정규성을 만족한다면 levene 검정을 통해 등분산 검정을 한다. 등분산 검정 시 0.05보다 크다면 귀무가설 채택(등분산이다) 0.05보다 작으면 대립가설 채택(등분산이 아니다) 1-2) ttest_ind 진행stats.ttest_ind(a,b,equal_var = True) <- 레빈검정 귀무채택시stats.ttest_ind(a,b,equal_var = False) <- 레빈검정 귀무기각 시 정규성을 만족하지 않는다면stats.manwhitneyu(a,b,alternative = 'less') 진행 문의내용위 순서로 진행하는게 맞는건지 문의드리며만 휘트니 검정할때는 만 휘트니 검정 자체가 정규성 불만족할때의 ttest와 같다고 생각하면 되는건지 문의드립니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형2 - 8회 오류
--------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-32-9c792161035b> in <cell line: 2>() 1 # 최종 제출 파일 ----> 2 pred = rf.predict(test) 3 result = pd.DataFrame({'pred':pred}) 4 result.to_csv('result.csv', index=False) 3 frames/usr/local/lib/python3.10/dist-packages/sklearn/base.py in _check_feature_names(self, X, reset) 533 ) 534 --> 535 raise ValueError(message) 536 537 def _validate_data( ValueError: The feature names should match those that were passed during fit. Feature names unseen at fit time: - customerID_CUST0001 - customerID_CUST0002 - customerID_CUST0006 - customerID_CUST0007 - customerID_CUST0008 - ... Feature names seen at fit time, yet now missing: - customerID_CUST0000 - customerID_CUST0003 - customerID_CUST0004 - customerID_CUST0005 - customerID_CUST0009작업형 2 한가지 방법으로 풀어보기를 그대로 해서 8회를 풀엇는데, 이런 에러가 뜹니다. id 값을 없애는 작업을 해줘야할까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
등분산이 같은지 다른지를 만약 모른다면,
문제에서 만약 안주어진다면, 레빈 검정을 우선 진행해서 pvalue값을 확인 해야하는거겠쬬?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
데이터 찾기
테스트 데이터와 train 데이터 프레임 안의 데이터가 서로 포함하지 못한다면, concat을 사용하여 합쳐서 label이나 one hot 인코딩 진행하라고 하셨는데요, 지금은 내부 데이터 양이 작아서 각 데이터 별로 서로 포함여부를 알 수 있는데 몇천 row가 되는 data들은 서로 포함되는지 어떻게 알 수 있을까요?
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
RMSE 질문
안녕하세요 강사님~RMSE 출력 할 때,from sklearn.metrics import mean_squared_error많이 사용하지만, 이번에 확인 해보니까 from sklearn.metrics import root_mean_squared_error가 있어서 사용 가능 할까요? 시험 체험에서도 dir()를 확인 한 결과 metrics 에 root_mean_squared_error 가 있는 걸 확인 했습니다. 감사합니다~
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
범주형 변수차이 발생시 concat 처리
범주형 변수 차이: train과 test 데이터에 포함된 범주형 변수의 카테고리 수가 다를 수 있습니다. 예를 들어, train에 있는 범주가 test에 없거나 그 반대의 경우입니다.=> train(A), test(B)라 예를 들면set으로 A-B했을 경우 변수가 나올때는 강의영상중 concat없이 인코딩 진행하셨고 B-A 변수 나올때 문제될수 있다고 이해했습니다만,A-B이든 B-A이든 변수차이 있으면 무조건 concat한후 인코딩하고 다시 분리하는게 맞는지요? 어느 강의는 그냥 인코딩하시고, 답변을 검색해보면 A-B변수가 나와도 concat하라는 답변이 나와서 명확한 기준을 모르겠습니다. A-B에 변수차이가 나오는 경우는(train에는 있고 test는 없는 변수 있는 경우) 그냥 인코딩해도 무관한것인가요?생략해도 되는 경우이면 단순하게 가는게 실수도 줄일수 있을듯 하여 문의드립니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형 2
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요작업형 2번에서 이진분류와 다중분류를 구별할 수 있는 방법이 궁금합니다. 어떤 데이터를 보고 판단할수있나요?
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
3과목 답안 제출 시 궁금한점이 있어요
안녕하세요, 강의 너무 잘 완독했습니다, 이번주가 드디어 시험이라, 여기서 잘 배운것들로 꼭 합격하고 오겠습니다.질문은, 제가 첫시험이다 보니 3과목 답안제출이 궁금합니다.3과목의 경우 1과목처럼 단순 답만 제출하는 걸까요 아니면 logit 이나 ols를 통해 나혼 print(model.summary()) 값과, 답을 함께 제출하는것일까요?예를 들면, 8회기출유형 (작업형3) 2-1번 문제의 경우 답은 코드 전체 +print(model.summary())를 내는것인지, 마지막 2.343 값만 print로 제출하면 되는건지 궁금합니다
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
이말은 왜 뜰까요?
XGBoost의 'manylinux2014' 변형을 설치했습니다. GPU 알고리즘이나 연합 학습과 같은 특정 기능은 사용할 수 없습니다. 이러한 기능을 사용하려면 glibc 2.28+의 최신 Linux 디스트로로 업그레이드하고 'manylinux_2_28' 변형을 설치하세요.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
예측 정확도 정답 커트라인이 어느정도인가요?
영상과 같이 랜덤포레스트+라벨인코딩 조합으로 예측정확도 0.6나왔습니다. 해당 예측 정확도가 시험에 통과할 정도의 커트라인인지 궁급합니다. 또한 예측정확도가 잘 나오지 않을 경우 랜덤포레스트 이외 xgboost와같은 모델 변경도 시험장에서 크게 고려해야될 사항일까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형3
pred = model.get_prediction(new_data)로 할 때도 있고 pred = model.predict(new_data) 이렇게 할 때도 있나요? 둘의 차이가 뭘까요
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
페이지를 넘어가는 문제 깔끔하게 정리하기
안녕하세요 일코님날씨 많이 추워졌는데 건강 잘 챙기시기 바랍니다 ^^현재 문제가 텍스트로만 이루어졌을 경우 아래와 같이 BreakPage메소드를 통해 페이지에 걸친 문제가 없도록 정리하고 있씁니다.while 찾기("#"): # 샵 "#"표시는 문제의 시작지점입니다. hwp.Run("MoveLineBegin") start_page = hwp.KeyIndicator()[3] start_pos = hwp.GetPos() # hwp.Run("MoveParaEnd") 둘중_빠른것_찾기("#", "<<<") 현재문단블록처리() if 블록내_텍스트_포함_여부("<<<"): hwp.Run("MovePageBegin") hwp.Run("MoveLeft") else: hwp.Run("MoveParaBegin") 위로_찾기_아무거나() # 다음문제로 넘어간뒤, 아무런 텍스트나 위로 찾기 하여 문제의 끝을 특정함 hwp.Run("MoveParaEnd") end_page = hwp.KeyIndicator()[3] endpos = hwp.GetPos() if end_page != start_page: # 문제 시작점과 끝점의 페이지가 다를 경우 BreakPage hwp.SetPos(*start_pos) hwp.Run("BreakPage") hwp.Run("MoveParaEnd") 문제는, 문제의 형식이 표로 되어 있을 때가 있다는 것인데요. 이런식으로 표가 존재하고, 이 표가 넘어갈경우에,, 현재 코드를 적용하면 저 "수정"으로 이동하여 endpos의 위치가 잡히게 되네요..문제가 표로 마무리 될경우에 문제의 끝을 올바르게 특정해서 문제를 깔끔하게 정리할 방법이 없을까요? 감사합니다 !
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
데이터 나누기 질문
from sklearn.model_selection import train_test_splitX_tr, X_val, y_tr, y_val = train_test_split(train.drop('TotalCharges', axis=1),train['TotalCharges'], test_size=0.2, random_state = 2024) X_tr데이터가 train일때랑 train.drop('TotalCharges', axis=1)일때랑 차이가 뭔가요 ??