묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형 2 이상치 제거 부분
영상보다가 처음에 결측치 제거 부분에서 실수로 "value"부분에서 따옴표를 넣어 test의 age컬럼이 object형식으로 저장되었습니다그래서 이상치 파트에서 문자랑 정수가 섞여 조건문 작성시에 오류가 발생하였는데다시 원래대로 결측치 있는 부분을 fillna(vlaue)로 저장시키는 방법은 없나요?test파일을 test = test_backup.copy() 이렇게 해놔야 하나요?value = int(train["age"].mean()) print("평균값: ", value) train["age"] = train["age"].fillna(value) test["age"] = test["age"].fillna("value")
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
train_oh, test_oh 의미
train와 test의 데이터가 15개로 동일하지만 train_oh와 test_oh의 데이터는 왜 다른지 궁금합니다..제가 정확히 train_oh와 test_oh는 각각 train과 test의 문자데이터를 수치형 데이터로 변환하는것으로 이해했는데 그렇다면 train과 train_oh의 데이터 갯수는 동일해야 하는것이 아닌 의문이 들어 질문남깁니다 ㅠ
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
기출1 작업형2 코드 질문
import pandas as pdtrain = pd.read_csv("data/customer_train.csv")test = pd.read_csv("data/customer_test.csv")#1 문제정의 #분류 (ROC_AUC ), TARGET = '성별' 제출할 데이터 2482개 # 사용자 코딩#2EDA print(train.shape, test.shape) #제출할 데이터 2482개print(train.info()) print(train.isnull().sum())print(test.isnull().sum()) #환불금액 결측치 2295개 #3 데이터 전처리 #결측치 처리 aa = train['환불금액'].mode()[0] print(aa)train['환불금액'] = train['환불금액'].fillna(aa)test['환불금액'] = test['환불금액'].fillna(aa)print(train.isnull().sum())print(test.isnull().sum())target = train.pop('성별')train = pd.get_dummies(train)test = pd.get_dummies(test)test = ★test.reindex(columns=train.columns, fill_value=0)#검증데이터 분리 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=0)print(X_tr.shape, X_val.shape, y_tr.shape, y_val.shape)#학습 및 예측from sklearn.ensemble import RandomForestClassifierrf = RandomForestClassifier(random_state=0)rf.fit(X_tr, y_tr)pred = rf.predict_proba(X_val)from sklearn.metrics import roc_auc_scoreroc_auc = roc_auc_score(y_val, pred[:,1])print(roc_auc)pred = rf.predict_proba(test)submit = pd.DataFrame({'pred':pred[:,1]})submit.to_csv('result.csv', index=False)print(pd.read_csv('result.csv').head(3))print(pd.read_csv('result.csv').shape)# 답안 제출 참고# 아래 코드는 예시이며 변수명 등 개인별로 변경하여 활용# pd.DataFrame변수.to_csv("result.csv", index=False) 기출1회작업형2번 문제 중 결측치를 최빈값으로 채운 뒤 코드 작성하였지만 오류가 떴습니다. 검색결과 train과 test의 컬럼 개수가 다르다고 합니다. Q. ★test.reindex(columns=train.columns, fill_value=0) 해당 코드를 추가하면 정상적으로 돌아가는데 해당 코드를 추가해도 답에 이상이 없을까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
회귀 평가지표 관련해서 질문드립니다!
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요 안녕하세요다름이 아니라 강의에서 회귀 중 MAPE, RMSE, RMSLE 등은 sklearn.metrics에 없다고 따로 외워야 한다고 하셨는데요 사이킷런 홈페이지 들어가봤는데 다 적혀있기는 해서, 혹시 이제는 metrics 통해 그대로 사용하면 되는 게 맞는지 여쭙습니다!제가 확인한 사이트도 링크 첨부하였습니다. https://scikit-learn.org/stable/modules/generated/sklearn.metrics.mean_squared_log_error.html
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
7회 작업형3 2-1문제
예를 들어, Feature4가 있다고 가정하고 이것이 ERP와의 상관관계가 -0.999라고 한다면 답은 Feautre1인가요? Feature4인가요?(즉, 상관관계가 높은 값을 고를 때는 절대값을 취해서 고려하나요?)
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
7회 작업형3 1-2문제 코드가 같은데 결과값이 다릅니다 ㅠ
아래와 같이 똑같이 입력했는데 결과값이 아예 다른데 무엇이 문제일까요?ㅠㅠimport pandas as pd df=pd.read_csv("clam.csv") df #데이터분할에서 만들기 train = df.iloc[:210, : ] test=df.iloc[210: , : ] #로지스틱 회귀모델 만들기 #잔차이탈도는 로짓에서 볼수없고 glm에서 볼수있다. from statsmodels.formula.api import glm import statsmodels.api as sm model = glm("gender~ age + length + diameter + height + weight", data=train, familiy=sm.families.Binomial()).fit() print(model.summary())
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
범주가 다른 컬럼의 스케일링 방법 질문
스케일링도 데이터 프레임별 범위에 따라 fit() 할 프레임을 구분해줘야할까요?train['a'] 컬럼이 1~100 범위이고test['a'] 컬럼은 1~200 범위라면B먼저 fit하고 A는 transform 을 해줘야하나요?아니면 각각 fit_transform 해야할까요? 범주형 컬럼 인코딩의 경우를 생각해보니 문득 위와 같은 상황에서 어떻게 해야하는지 궁금하네요.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
df.dropna(subset = 'views') VS df.dropna(subset = ['views'])
df.dropna(subset = 'views') VS df.dropna(subset = ['views'])대괄호 쓴것과 안쓴것에 큰 차이가 있나요? 결측치가 들어있는 행은 똑같이 사라지는 것 같습니다.
-
해결됨[2025] SQLD 문제가 어려운 당신을 위한 노랭이 176 문제 풀이
실전 문제 2회 질문
안녕하세요,실전 문제 2회의 3번 문제에 대해 질문이 생겨 글을 남기게 되었습니다.강사님의 개념 강의에서는 '엔터티는 다른 엔터티와 최소 한 개 이상의 관계가 있어야 한다.'라고 배웠는데, 해당 문제의 풀이에서는 엔터티가 반드시 다른 엔터티와 관계를 가질 필요는 없다고 명시되어 있어 어떤 것이 정확한 개념인지 궁금합니다.특히 시험에서 선지로 위의 내용이 나오는 경우, 어떤 것을 맞다고 판단해야 할지 기준을 잘 모르겠습니다. 그리고 추가로,이번 실전문제 2회에서는 주어진 상황에 따른 알맞은 쿼리를 고르는 형식의 문제가 대부분이었는데,강사님께서 문제 구성을 임의로 하신 것인지, 실제 시험이 그러한 형식인지 여쭤보고 싶습니다.감사합니다.
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
설정 문의!
사진과 같이 corr 쓰고 ( 괄호를 쓰면 저렇게 함수 설명창이 나옵니다.. 글자를 가리게 되므로 끄고 싶은데, 설정에서 체크박스 다 해제했는데도 뜨네요..ㅠ 어떻게 없애야하나요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형1 모의문제1 문제3
# your code import pandas as pd df = pd.read_csv("https://raw.githubusercontent.com/lovedlim/inf/main/p1/members.csv") #1 #print(df.shape) df = df.dropna(subset=['views']) #print(df.shape) #2 df['f3'] = df['f3'].fillna(0) df['f3'] = df['f3'].replace('silver',1) df['f3'] = df['f3'].replace('gold',2) df['f3'] = df['f3'].replace('vip',3) print(int(df['f3'].sum()))이렇게 작성 후 실행하면 결과가 밑에 처럼 나옵니다.133 <ipython-input-57-2ecc61ea0b50>:14: FutureWarning: Downcasting behavior in `replace` is deprecated and will be removed in a future version. To retain the old behavior, explicitly call `result.infer_objects(copy=False)`. To opt-in to the future behavior, set `pd.set_option('future.no_silent_downcasting', True)` df['f3'] = df['f3'].replace('vip',3)문제 3번에서 두번째 점과 관련된 질문입니다.강의에서 알려주신 넘파이를 꼭 사용해야 하나요?이전 강의에서 넘파이에 대한 내용이 따로 언급이 없으셔서 혼자 문제 풀어볼 때 넘파이 사용하지 않고 풀어본 것인데.. 깔끔하게 133만 나오지 않아서요ㅜㅜ
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
시험환경 rmse
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요 안녕하세요, 코랩말고 이제 시험환경에서도 rmse 지원 되는건가요?
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
평가지표 및 모델 관련
안녕하세요 :)현재 문제를 풀었을 땐, sklearn.metrics 에서 문제에서 주어진 모든 평가지표를 제공하고 있는데 시험 때도 동일하게 사용하면 될까요?from sklearn.metrics import r2_score, mean_absolute_error, mean_squared_error, root_mean_squared_error, root_mean_squared_log_error, mean_absolute_percentage_errorlightGBM 모델을 사용하면 RMSLE에 대해 마이너스 값에 대한 에러가 발생하는데, 이 경우 해당 모델을 사용하지 않는 게 좋을까요?문제에 제시된 모든 평가지표들에 대해서 에러가 안 떠야 채점 받을 때 불이익이 없는 건지 궁금합니다..!r-squared 값이 0.18로 굉장히 작은 편인데.. 결과가 이럴 수도 있나요?보니까 수업에서 배우지 않은 모델들도 굉장히 많은데 (ex. 릿지, 라쏘, XGBoost) ,분류/회귀 모두 '랜덤포레스트, lightGBM' 모델만 사용해서 문제를 풀어도 괜찮을까요? (여유가 되면 XGBoost 까지)
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
6회기출 3유형 1번째 문제에서
df['항암약'].value_counts() 이 뒤에 인덱스를 솔팅하셨는데 꼭 솔팅을 해야만 하는 과정인지요?
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
문제 2번 질문
혹시 이렇게 코드짰을때 문제가 되는게 무엇일까요 ??출력값은 0으로 나옵니다
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
f1-scorer과 f1-macro는 다른거 아닌가요?
평가지표는 f1-macro인데 강의에서는 f1-score로 풀이해주셔서요~
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
다중회귀분석 결정계수
안녕하세요 :)'문제 2-2'에서 '문제 2-1'에 적합한 모델의 결정계수를 구하라고 돼있는데,다중회귀분석은 수정결정계수를 봐야 하지 않나요?다른 분의 같은 질문에 대한 답변을 보니까 '적합한'을 '작업한'으로 이해하면 된다고 하셨는데'기출 7회 - 작업형3 - 문제 2-2'에서는다중회귀분석의 적합한 결정계수를 구하는 건 수정결정계수를 구해야 한다고 하셨거든요.'적합한 모델'이든 '적합한 결정계수'든 '적합한'의 위치에 상관 없이다중회귀분석의 결정계수는 수정결정계수를 봐야 하지 않나요?!
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
sum 함수 에러 문의
선생님께서 적어주신대로 sum 함수 이용하여 데이터 개수 구할 경우 에러가 뜨는데 이유를 알 수 있을까요?len 함수 이용할 경우 에러가 안뜹니다
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
6회기출 작업형 1을 저는 이런 코드로 풀어봤는데요
강의를 듣기전에 혼자 풀어보고 그러고 있는데 저는 아래와 같이 코드를 짜서 풀었는데일단 답은 나오는데 이런식으로 앞으로 풀면 나중에 문제를 헤쳐나가기에 어느부분이 부족할까요 정말 단순하게 생각하고 짜본 코드입니다. ㅜimport pandas as pd df=pd.read_csv("data6-1-2.csv") df['학생전체']=df['1학년']+df['2학년']+df['3학년']+df['4학년']+df['5학년']+df['6학년'] #학생전체/교사수(교사한명당) df['교사한명당']=df['학생전체']/df['교사수'] df.sort_values('교사한명당',ascending=False) #re=df.groupby("학교명")["교사수"].sum() #re.sort_values()
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
5회 기출 작업형2 코드 봐주시면 감사하겠습니다.
혼자 작성해보고 결과값도 나온거같은데 문제없는 코드일지요~ import pandas as pd train=pd.read_csv("train.csv") test=pd.read_csv("test.csv") #train.info(), test.info() #원핫인코딩(범주형을 수치형으로) target=train.pop("price") 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=2022) #랜덤포레스트회귀? from sklearn.ensemble import RandomForestRegressor model=RandomForestRegressor(max_depth=7, random_state=2022) model.fit(X_tr, y_tr) pred=model.predict(X_val) pred # 모델성능평가 from sklearn.metrics import root_mean_squared_error re=root_mean_squared_error(y_val, pred) re pred = model.predict(test) result=pd.DataFrame({ "pred" : pred } ) result.to_csv("55.csv", index=False)