묻고 답해요
143만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
길벗 책으로 공부 중인데 데이터 불러오는 방법
인강은 자료 다운로드 받아서 드래그앤드롭하면 되는 거 알겠는데책으로 할 때는 자료 어떻게 불러오나요?작업형1 연습문제 풀고 있는데 복붙하면 자료 안 불러져와서 에러 뜨네요빠른 답변 해주세요ㅠㅠ
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
데이터 불러오는 방법
구글 코랩에서 사용 중인데, 파일 업로드 어떻게 하나요?코드에import pandas as pd df = pd.read_csv("type1_data1.csv") df = pd.read_csv("https://raw.githubusercontent.com/lovedlim/bigdata_analyst_cert/main/part1/ch3/type1_data1.csv")이렇게 붙여넣기 했는데 이렇게 하는게아닌가요? 드래그앤드롭 하라고 하셨는데 어디다 드래그앤드롭 하라는 건가요?ㅠ
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
데이터 안 불러져오는데 어떻게 해야하나요?
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요데이터 안 불러져오는데 어떻게 해야하나요?
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
6회 기출유형 6-2 작업형 질문
전체 학생수의 계산 값이 너무 크게 나옵니다..
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
데이터프레임 만드는데서 오류가 납니다.
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세여기서 계속 오류가 납니다그리고 궁금한게 있는데요 데이터가 세개일때는 train으로 합쳐줘야해서 concat해서 df를 만든것이 train 데이터가 되는거 아닌가요?df=pd.concat([X_train,y_train['Reached.on.Time_Y.N']],axis=1) df위에 코드처럼 df를 만들면 저게 train으로 해서 뒤에 쓰여야 할것 같은데 뒤에라벨인코딩 할 때 왜df[col]=le.fit_transform(X_train[col])가 아니고 X_train[col]=le.fit_transform(X_train[col])l])이렇게 되는지 잘 모르겠어요... df는 그럼 concat으로 생성하고 뒤에 안쓰이는거 아닌가요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
시험 환경에 csv파일 생성 예시 코드가 주어지나요?
시험 환경에 csv파일 생성 예시 코드가 주어지나요?케글 모의고사 보니까 주어져 있어서요!
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
6-3문제 질문입니다.
import pandas as pd import numpy as np df = pd.read_csv('data6-1-3.csv') print(df.shape) # print(df) df['sum'] = df.iloc[:,1:7].sum(axis=1) # print(df.head()) df['year'] = df['날짜'].str[:4] # 2022 12 # 2020 11 # 2021 9 # 2024 9 # 2023 9 df1 = df.groupby('year')['sum'].mean() # print(df1) df1 문제풀이를 보니까 groupby이후에 그냥 12로 나누셨던데 년도자료마다 갯수가 달라서 12로 나누면 안되는건아닌지 궁금합니다 아래는 선생님 풀이입니다. # 3. 연도별 그룹핑(총범죄).sum() result = df.groupby("연도")['총범죄'].sum()/12
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형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']])