묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
에러 이유
안녕하세요! 캐글에 올려주신 자료로 공부 중 에러가 떴는데 어떻게 해결해야할지 몰라 질문 남깁니다!너무 길어서 보기 어려운 점 미리 사과드립니다..ㅠㅠimport pandas as pdtrain = pd.read_csv("/kaggle/input/big-data-analytics-certification-kr-2024-3/train.csv")test = pd.read_csv("/kaggle/input/big-data-analytics-certification-kr-2024-3/test.csv")# EDA# print(train.shape, test.shape) #(1168, 81) (292, 80)# print(train.info()) #float64(3), int64(35), object(43)# print(test.info()) #float64(3), int64(34), object(43)# print(train.isnull().sum().sort_values(ascending=False)[:10])#범주형 데이터가 너무 많아서 수치형만 선택train=train.select_dtypes(exclude=['object'])test=train.select_dtypes(exclude=['object'])# print(train.head(2))# print(train.isnull().sum()) #LotFrontage 218, GarageYrBlt 69# print(test.isnull().sum())# print(train['LotFrontage'].describe())# print(train['GarageYrBlt'].describe())#전처리(결측치, 타겟값 분리)target=train.pop('SalePrice')train=train.drop('Id',axis=1)test_id=test.pop('Id')train['LotFrontage']=train['LotFrontage'].fillna(train['LotFrontage'].mean())train['GarageYrBlt']=train['GarageYrBlt'].fillna(train['GarageYrBlt'].mean())train['MasVnrArea']=train['MasVnrArea'].fillna(train['MasVnrArea'].mean())test['LotFrontage']=test['LotFrontage'].fillna(test['LotFrontage'].mean())test['GarageYrBlt']=test['GarageYrBlt'].fillna(test['GarageYrBlt'].mean())test['MasVnrArea']=test['MasVnrArea'].fillna(test['MasVnrArea'].mean())# print(train.isnull().sum().sum()) # print(test.isnull().sum().sum())#데이터 분리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 RandomForestRegressorrf=RandomForestRegressor(random_state=0)rf.fit(X_tr, y_tr)pred=rf.predict(X_val)#평가from sklearn.metrics import mean_squared_errordef rmse(y, y_pred): return mean_squared_error(y, y_pred)**0.5# print(rmse(y_val, pred))#중앙값 : 34668.70085343153#평균 : 33430.8118326734# 최댓값 : 34100.46200633792#최솟값 : 34023.36640178194#예측pred=rf.predict(test)submit=pd.DataFrame({'Id':test_id, 'SalePrice':pred})submit.to_csv('0000.csv', index=False)pd.read_csv('0000.csv')--------------------------------------------------------------------------- ValueError Traceback (most recent call last) Cell In[55], line 68 60 return mean_squared_error(y, y_pred)**0.5 61 # print(rmse(y_val, pred)) 62 #중앙값 : 34668.70085343153 63 #평균 : 33430.8118326734 (...) 66 67 #예측 ---> 68 pred=rf.predict(test) 69 submit=pd.DataFrame({'Id':test_id, 'SalePrice':pred}) 70 submit.to_csv('0000.csv', index=False) File /opt/conda/lib/python3.10/site-packages/sklearn/ensemble/_forest.py:981, in ForestRegressor.predict(self, X) 979 check_is_fitted(self) 980 # Check data --> 981 X = self._validate_X_predict(X) 983 # Assign chunk of trees to jobs 984 n_jobs, _, _ = _partition_estimators(self.n_estimators, self.n_jobs) File /opt/conda/lib/python3.10/site-packages/sklearn/ensemble/_forest.py:602, in BaseForest._validate_X_predict(self, X) 599 """ 600 Validate X whenever one tries to predict, apply, predict_proba.""" 601 check_is_fitted(self) --> 602 X = self._validate_data(X, dtype=DTYPE, accept_sparse="csr", reset=False) 603 if issparse(X) and (X.indices.dtype != np.intc or X.indptr.dtype != np.intc): 604 raise ValueError("No support for np.int64 index based sparse matrices") File /opt/conda/lib/python3.10/site-packages/sklearn/base.py:548, in BaseEstimator._validate_data(self, X, y, reset, validate_separately, **check_params) 483 def _validate_data( 484 self, 485 X="no_validation", (...) 489 **check_params, 490 ): 491 """Validate input data and set or check the `n_features_in_` attribute. 492 493 Parameters (...) 546 validated. 547 """ --> 548 self._check_feature_names(X, reset=reset) 550 if y is None and self._get_tags()["requires_y"]: 551 raise ValueError( 552 f"This {self.__class__.__name__} estimator " 553 "requires y to be passed, but the target y is None." 554 ) File /opt/conda/lib/python3.10/site-packages/sklearn/base.py:481, in BaseEstimator._check_feature_names(self, X, reset) 476 if not missing_names and not unexpected_names: 477 message += ( 478 "Feature names must be in the same order as they were in fit.\n" 479 ) --> 481 raise ValueError(message) ValueError: The feature names should match those that were passed during fit. Feature names unseen at fit time: - SalePric
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
수치형을 스캐일링 할 수 있는 방법 중 선택
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요민맥스, 스탠다드, 로버스트를 어떨 때 사용하면 좋을지 알 수 있는 방법이 있을까요??로버스트는 이상치 존재 시 정교해질 수 있는 장점 정도만 알고 있는데 쉽게 구분하는 방법을 알려주시면 감사하겠습니다!
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
대응표본검정 검정통계량
안녕하세요대응표본검정을 할 때, μd는 문제에서 주어지는 건가요? μd = (after - before)의 평균: 인자를 ttest_rel(df['after'], df['before']) 조건에 명시된 순으로 로 넣고μd = (before- after)의 평균: ttest_rel(df['before'], df['after']) 로 넣는게 맞나요?pvalue는 같지만 검정통계량(statistic)이 음수 양수로 나오는데, 검정통계량을 묻는다면 출력된 그대로 넣으면 되는걸가요..? 대응표본 검정은 무조건 단측 검정인건가요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
원핫인코딩
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요원핫인코딩 말고 라벨인코딩을 하는 이유는 무엇인가요? 라벨인코딩 말고 원핫인코딩을 사용하려면 어떻게 해야하나요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
logit에서 잔차이탈도 구하기
3유형 로지스틱회귀에서 잔차이탈도를 구하려면 logit이 아닌 glm을 권장하셨는데요.logit에서 제공하는 llf에 -2를 곱한 값으로 잔차이탈도를 구한다면 굳이 glm 사용할 필요는 없지 않나요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형3
선생님 제가 강의 1회독은 다 했지만 작업형 3이 제일 자신이 없는데 혹시 남은 기간동안 작업형3을 어떻게 공부하는게 좋을까요,, 최대한 작업형1, 2를 열심히 하고 3은 최소한으로 중요한 부분만 보고 가려고 합니다 ㅜ강의에 나오는 작업형 3 구버전 예시문제랑 기출6,7회만 계속 반복해보려고 하는데 괜찮을까요? 작업형 3에서 추렸을때 최소한 이것은 알고 가야한다는 개념이 있을까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
결측치 처리
3-5 Classification파일에서 아래와 같이 처리하면, 수치형 뿐 아니라 명목형 변수의 결측치도 0으로 채워지는것 아닌가요?그렇게 해도 상관없는건지 궁금합니다. # 간단한 결측치 처리 X_train = X_train.fillna(0) X_test = X_test.fillna(0)# 간단한 결측치 처리 X_train = X_train.fillna(0) X_test = X_test.fillna(0)
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
기출4회 작업형2 결과...
예측 결과를 아래와 같이 데이터프레임으로 만드는 것은 이해가 됩니다.실제로도 정상적으로 데이터프래임셋이 형성되었고요.submit = pd.DataFrame({ 'ID': test_ID, 'Segmentation': pred }) submit그런데,. 제출하는 코드를 실행하면 강의에서는 점수(Score: 0.30477)가 나온다고 하는데저는 read_csv로 확인하면 위의 데이터프레임 셋이 그대로 나옵니다.점수는 어떻게 확인하나요?submit.to_csv("submission.csv", index=False)
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
실기 시험환경에 대해 질문드려봅니다.!
시험환경에서 작업형1, 3의 답을 제출할 때작업형1, 작업형3 답안제출 페이지로 들어가서 답을 제출하잖아요? 그런데 보니깐.예를들어 작업형1은 총 세문제니깐.제가 한문제씩 풀고, 답을 제출하려고 답안제출 페이지에 들어갔다 나오니깐 기존의 코딩들이 다 초기화가 되더라고요.. 그러면은. 한꺼번에 문제를 다 풀고답안제출 페이지에 들어가서 한꺼번에 답을 다 작성해야될까요.?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
예시문제 체험하기 오류
빅분기 실기 체험하기 사이트로 연결하니까 계속 저런 오류만 나오는데 어떻게 해야 할까요?ㅜㅜ
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
7회 기출 작업형3에서 문제 2-2. 질문이있어요.
문제 : 문제2-2. CPU 컬럼이 100미만인 것만 찾아 ERP를 종속 변수로, 나머지 변수들을 독립 변수로 설정해 선형회귀 모델을 만들고 적합한 결정계수를 구하시오. (반올림하여 소수 셋째자리까지 계산) 라고 되어있는데요. df.describe()하면 CPU max 값이 99.796225 라고 나와서.. # 1) CPU가 100 미만인 데이터 필터링 cond = df['CPU'] < 100이거 하면 그럼 모든 행이 포함되는 게 아닌가요?
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
predict, get_prediction 차이가 궁금합니다
newdata 데이터 프레임 생성 후 model.predict(newdata) pred = model.get_prediction(newdata)pred.summary_frame(alpha=0.05) # 신뢰구간, 예측값 구하기 1,2번의 차이가 무엇인지 궁금합니다
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
rmse, mape 오류
<rmse>import numpy as npdef rmsle(y_test, y_pred): return np.sqrt(np.mean(np.power(np.log1p(y_test) - np.log1p(y_pred)), 2)) print(np.sqrt(np.mean(np.power(np.log1p(y_test) - np.log1p(y_pred)), 2))) 이렇게 입력하면 예측값은 안뜨고 power() takes from 2 to 3 positional arguments but 1 were given 라고 뜹니다 ㅠ 뭐가 문제인 건가요?<mape>import numpy as npdef mape(y_val, pred): return np.mean(np.abs((y_val - pred)/y_val))**100 print(np.mean(np.abs((y_val - pred)/y_val))**100) 이렇게 입력하면 예측값은 안뜨고 inf라고만 뜹니다. rmse와 mape 둘다 왜 예측값은 안뜨는건가요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
캐글 1유형 문의
https://www.kaggle.com/code/agileteam/t1-23-drop-duplicates 안녕하세요 강사님캐글에 정리해주신 1유형 문제 중 궁금한게 있어서 질문드립니다. 지문 내용 중- 결측치는 f1의 데이터 중 10번째 인덱스에 위치한 값으로 채움풀이를 보면 f1 컬럼 기준 내림차순 정렬 수행 후, 10번째 인덱스 값(10번째로 큰 값)으로 풀이 되어있습니다.문제 지문에 상위 혹은 10번째로 큰 값이라는 내용이 없어서 처음 풀이 시, 저는 주어진 데이터에서 정렬 없이 10번째 인덱스 값을 사용하여 풀이하였습니다.시험에서 위와 비슷한 유형의 문제 풀이 시 내림차순 정렬을 기본 전제로 풀이해야하나요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
시험환경 적응
안녕하세요. 현재 노트북으로만 진행해왔는데요.시험전에 시험환경에 적응하는게 좋다는 말을 듣긴했는데, 어디서 어떻게 적응할 수 있는지 모르겠습니다.시험환경에서 기출문제를 풀어볼 수 있는건가요?시험환경에서 어떤것이라도 해볼 수 있는 링크나 방법이 궁금합니다.1유형에서 답을 제출할때 제출하는 칸에 코드를 넣는것인지, 숫자를 넣는것인지 모르겠습니다.코드를 넣는게 맞다면, 코드가 길어지면 어떻게 해야할까요? 한줄로 이어 붙이면 될까요?케글에 있는 작업형1 모의고사2 번 문제인데, 만약에 코드가 답이라면 cond = (df['f1'].isnull())df = df[cond]result = df['f5'].median()print(result) 이렇게 붙여넣으면 될까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
train.pop('A') 와 train['A'] 가 어떤 차이가 있나요?
기출4회 작업형2 설명 중에서target = train.pop('Segmentation') 코드가 있는데이게 a = train['Segmentation'] 과 어떤 차이가 있나요?target이나 a 나 train 데이터프레임에서 Segmentation 컬럼을 추출하는 것은 동일하지 않나요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형2 random_state
안녕하세요! 작업형 2에서 random_state 때문에 혼선이 오네요 ㅠㅠ 제가 잘못 이해를 한건지, 검증데이터 분리 / 모델링시 고정? 용도로 사용한다고 인지했는데, 막상 문제 풀어보니 설정값에 따라 10점 차이가 나더라구요 ㅜㅜ random_state=2022 (71점) / random_state=0 (85점)차이가 왜케 많이 나는걸까요? ㅠ 혹시 추천하시는 값이 있으실까요? # 검증 데이터 분리 from sklearn.model_selection import train_test_split from sklearn.model_selection import train_test_split X_tr, X_val, y_tr, y_val = train_test_split(train.drop('TravelInsurance', axis=1), train['TravelInsurance'], test_size=0.1, random_state=2022) # from sklearn.model_selection import train_test_split # X_tr, X_val, y_tr, y_val = train_test_split(train.drop('TravelInsurance', axis=1), # train['TravelInsurance'], # test_size=0.1, # random_state=0) # 모델링 from sklearn.ensemble import RandomForestClassifier from sklearn.ensemble import RandomForestClassifier rf = RandomForestClassifier(n_estimators=400, max_depth=9, random_state=2022) rf.fit(X_tr, y_tr) pred = rf.predict_proba(X_val)[:,1]
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
회귀(기출5회)
안녕하세요 RMSE나 어렵다면 MSE를 사용하면 된다고 하셨는데요 from sklearn.metrics import mean_squared_errordef rmse(y_true,y_pred) : 1. 사이킷 런에서 mse 를 불러왔는데 다음줄에서def rmse를 사용하는 이유가 무엇인지 모르겠습니다2. 그리고 y_true, y_pred 라는 변수를 트레인_테스트 분리 한적이 없는데 이건 어떤걸까요? mse = mean_squared_error(y_val,pred) 이 부분은 다른 한가지 방법으로 푼것과 동일하고 이해가 가는데요return mse **0.5result=rmse(y_val,pred) 3. 이건 단순 암기?;;의 영역으로 보면될까요? mse로 풀면 된다고 하셨는데 결과는 rmse로 출력하고 있는 것 같고 rmse/mse가 혼재된상태로 코드를 작성하는거같아서요print('/n rmse:',result)mse방식으로 통일된 형태(조금더 쉽게,,)로 평가하는 방법이 있을지 궁금합니다감사합니다
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형 3 summary
안녕하세요 작업형3의 서머리에서의 결정계수라던지 용어에 대해서 정리된 파일이나 참고할 자료라 있을까요??영어랑 한글이 자꾸 헷갈려서 질문드립니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
섹션14 5회 기출문제 작업형 1-2 질문
안녕하세요, 5회 작업형 1-2 질문입니다.아래와 같이, cond 변수를 만들어주고,변수들을 내림차순 정렬 해봤는데요.아래 구문 그대로 실행 시 '과체중 또는 위험체중' 조건에서 bmi가 25.0000인 row가 출력됩니다. 과체중 또는 위험체중 : Gender Height Weight Height(m) bmi 7841 Female 157.0 56.7 1.570 23.002962 5311 Female 154.2 54.7 1.542 23.004806 8467 Female 159.6 58.6 1.596 23.005509 8304 Female 159.6 58.6 1.596 23.005509 6165 Female 155.6 55.7 1.556 23.005730 ... ... ... ... ... ... 7126 Female 151.8 57.6 1.518 24.996485 9661 Female 164.2 67.4 1.642 24.998479 903 Male 172.4 74.3 1.724 24.998520 9473 Female 160.5 64.4 1.605 24.999757 5355 Female 160.0 64.0 1.600 25.000000 조건에서 25 미만으로 당연히 걸러질거라 생각했는데.리스트에 들어갔고, 실제로 정답은 맞습니다.이 경우는 무슨 경우인가요? import pandas as pd df = pd.read_csv("5-2bmi.csv") # your code df['Height(m)'] = df['Height'] / 100 df['bmi'] = df['Weight'] / (df['Height(m)'] ** 2) # print(df.info()) # print(df.head()) # 정상체중 cond1 = df['bmi'] >= 18.5 cond2 = df['bmi'] < 23 # 위험체중 cond3 = df['bmi'] >= 23 cond4 = df['bmi'] < 25 # bmi 정상 사람수 : 1986 # print((df[cond1 & cond2].sort_values('bmi', ascending=True))) a = len(df[cond1 & cond2].sort_values('bmi', ascending=True)) # print(len(df[cond1 & cond2].sort_values('bmi', ascending=True))) # bmi 위험체중 사람수 : 2130 print('과체중 또는 위험체중 :') print(df[cond3 & cond4].sort_values('bmi', ascending=True)) # ★ b = len(df[cond3 & cond4].sort_values('bmi', ascending=True)) # print(len(df[cond3 & cond4].sort_values('bmi', ascending=True))) print(int(abs(a-b))) # 144