묻고 답해요
149만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
벼락치기 3유형
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요시간이 너무 없어서, 3유형은 선택과 집중해서 보고 가려고 합니다.from statsmodel.formula.api import olsmodel = ols('키 ~ 몸무게' , data=df).fit()print(model.summary()) newdata = pd.DataFrame({'몸무게':[50]})pred = model.get_prediction(newdata)pred.summary_frame(alpha=0.05) 이 부분 말고도 볼만한 부분이 따로 볼만한 부분이 있을까요..
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
target 값
print(train.shape, test.shape) train.head(1) test.head(1) train.info() test.info() train.isnull().sum() test.isnull().sum() train.describe() test.describe() target = train.pop('Segmentation') print(train.shape, test.shape) train = pd.get_dummies(train) test = pd.get_dummies(test) print(train.shape, test.shape) 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) X_tr.shape, X_val.shape, y_tr.shape, y_val.shape from sklearn.ensemble import RandomForestClassifier rf = RandomForestClassifier(random_state=0) rf.fit(X_tr, y_tr) pred = rf.predict(X_val)다음과 같이 작업형 2 기출 4회를 한 셀에 풀고 있는데 target 구문을 겟더미 실행하기 전에 타이핑했습니다. 이후 모델 학습 및 평가를 실행하려고 하니 다음과 같은 에러가 뜹니다. 에러 코드가 복사가 안됩니다. 이 점 양해바랍니다. ㅜㅜ
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
train과 test 컬럼수가 안맞을때
인코딩 한 다음 train과 test 컬럼수가 안맞을때test컬럼이 많을경우train = train.reindex(coulumns = test.columns, fill_values =) 이렇게 해도 되나요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
3-6 검증데이터 분리에서 갑분y.. 뭘까요?
안녕하세요3-6 회귀- 검정데이터 분리에from sklearn.model_selection import train_test_split X_tr, X_val, y_tr, y_val = train_test_split(train.drop('charges'), axis=1),하고y값으로 chages를 넣어주면 된다고 하셨는데 이 부분이 이해가 안가요.train, test하다가 갑자기 y값이 나온 것과 train.drop('charges')에서 charges를 제외하는데 y값에 charges를 넣는게 이해안됩니다...
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
concat시
cols = train.select_dtypes(include = 'object').columns ncols = train.select_dtypes(exclude = 'object').columns all_df = pd.concat([train,test]) c_all_df = pd.get_dummies(all_df[cols], drop_first = True) n_all_df = all_df[ncols] line = int(train.shape[0]) c_train = c_all_df.iloc[:line] c_test = c_all_df.iloc[line:] n_train = n_all_df.iloc[:line] n_test = n_all_df.iloc[line :] train = pd.concat([c_train,n_train], axis = 1) test = pd.concat([c_test, n_test], axis = 1) train.shape test.shape 강의 19분 49초 쯤 보면, object type만 concat을 시켰더라구요, 근데 실제로 수치형 데이터도 있을 수 있으니깐 위의 코드처럼 수치형도 별도로 불러와서 최종 train과 test / concat을 해줘야 하는거 아닐까해서요. 제가 저렇게 object type만 불러오는지 모르고 accruacy score 점수 매겨봤는데 0.49가 나오더라구요.. 저 방법이 맞는지 문의드리며, 좀더 간단한 코드가 있을까요? 저게 제일 직관적이긴 할것 같은데,,,,
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
캐글 작업형3 예시문제에서 단일표본 T검정 질문있습니다.
https://www.kaggle.com/code/agileteam/t3-ttest-1samp캐글에 있는 학생들의 평균이 75을 넘는 것을 물어보는 문제에서 학생들의 평균과 75를 비교해야하는 것 아닌가요?그런데 단순히 학생들의 점수와 75를 비교하고 있어서 이해하기 어렵습니다.코드는 ttest_1samp(scores, mu, alternative='greater') 이렇게 되어있고 scores는 점수리스트입니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
원핫 인코딩 시
cols = train.select_dtypes(include = 'object').columns # print(train.nunique()) # train.info() all_df = pd.concat([train,test]) all_df = pd.get_dummies(all_df[cols], drop_first = True) line = int(train.shape[0]) train = all_df.iloc[:line] test = all_df.iloc[line:] 원핫 인코딩 시cols로 object 항목들 불러올때train.select_dtypes(include = 'object').columns로 써도 되나요? 강의에서는 list(train.columns[train.dtypes == object])로 불러왔는데, 두개 다 외우기는 힘들어서 하나만 가지고 가려고 하거든요.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형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는 없는 변수 있는 경우) 그냥 인코딩해도 무관한것인가요?생략해도 되는 경우이면 단순하게 가는게 실수도 줄일수 있을듯 하여 문의드립니다.