묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
y_test
# 데이터 및 라이브러리 로드하기 import pandas as pd train = pd.read_csv('/content/train.csv') test = pd.read_csv('/content/test.csv') Train = train.copy() X_train = Train.drop(['Attrition_Flag','CLIENTNUM'],axis=1) y_train = Train['Attrition_Flag'] X_test = test.copy() X_test_CL = X_test.pop('CLIENTNUM') # print(X_train.head()) # print(y_train.head()) # print(X_test.head()) # EDA # print(X_train.shape, X_test.shape, y_train.shape) # print(X_train.isnull().sum()) # print(X_test.isnull().sum()) # print(X_train.describe()) # print(X_test.describe()) # print(X_train.describe(include = object)) # print(X_test.describe(include = object)) # print(y_train.value_counts()) # 데이터 전처리 - 결측치 없음, 이상치 없음 # 피처 엔지니어링 cols1 = list(X_train.columns[X_train.dtypes == object]) # 범주형 cols2 = list(X_train.columns[X_train.dtypes != object]) # 수치형 # print(cols2, X_train.info()) Xc_train = X_train[cols1] # 범주형 Xc_test = X_test[cols1] Xn_train = X_train[cols2] # 수치형 Xn_test = X_test[cols2] Xc_train = pd.get_dummies(X_train[cols1]) # 범주형 데이터 원핫인코딩 Xc_test = pd.get_dummies(X_test[cols1]) from sklearn.preprocessing import RobustScaler Ro = RobustScaler() X_train[cols2] = Ro.fit_transform(X_train[cols2]) X_test[cols2] = Ro.transform(X_test[cols2]) Xn_train = X_train[cols2] # 수치형 Xn_test = X_test[cols2] X_train = pd.concat([Xc_train, Xn_train], axis = 1) X_test= pd.concat([Xc_test, Xn_test], axis = 1) # print(X_train.head()) # print(X_test.head()) # 데이터 분리 from sklearn.model_selection import train_test_split X_tr, X_val, y_tr, y_val = train_test_split(X_train, y_train, test_size = 0.15, random_state=2023) # print(X_tr.shape, X_val.shape, y_tr.shape, y_val.shape) # 모델링 import lightgbm as lgb lg = lgb.LGBMClassifier(random_state=2023) lg.fit(X_tr, y_tr) predict = lg.predict(X_val) predictproba = lg.predict_proba(X_val) # 평가 및 제출 # ROC-AUC, 정확도(Accuracy), F1, 정밀도(Precision), 재현율(Recall) from sklearn.metrics import roc_auc_score, accuracy_score, f1_score, precision_score, recall_score # print(roc_auc_score(y_val, predictproba[:,1])) # print(accuracy_score(y_val, predict)) # print(f1_score(y_val, predict)) # print(precision_score(y_val, predict)) # print(recall_score(y_val, predict)) predictproba_final = lg.predict_proba(X_test) submit = pd.DataFrame( { 'CLIENTNUM':X_test_CL, 'Attrition_Flag':predictproba_final[:,1] } ) # submit.head() submit.to_csv('1.csv', index = False) # 제출 제대로 했나 확인 pd.read_csv('1.csv') # y_test = pd.read_csv('/content/y_test.csv') print(roc_auc_score(y_test, predictproba_final[:,1]))print(roc_auc_score(y_test, predictproba_final[:,1]))만 되고 print(roc_auc_score(y_test, predictproba[:,1]))는 안되는게 정상인가요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
5회기출 작업형2유형을 lightgbm을 활용하여 풀이할 때 질문드립니다
강사님 안녕하세요!시험 전 ligthgbm에 대해서도 말씀해주셔서 감사합니다 다름이 아니라 해당 알고리즘을 활용해보고자 5회기출 작업형 2문제에 풀어보았는데rmse값이 너무 큰 값이 나와.. 문제가 무엇인지 알고싶습니다 ㅠㅠ 제가 어디부분을 잘못 코드 작성하였는지 알 수 있을까요?자동차가격 예측문제로lgb 회귀로 작성하였습니다. 확인 부탁드립니다 감사합니다!
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형 3 풀이 관련
안녕하세요. 늘 좋은 강의 감사합니다.작업형3과 관련해 문의가 있습니다.우선 이번에 예시로 나온 문제 풀이의 경우 "μ d = 치료 후 혈압 - 치료 전 혈압"이기 때문에귀무가설(H0): μ d >=0 대립가설(H1): μ d < 0stats.ttest_rel(df["bp_after"],df["bp_before"],alternative="less")와 같이 코딩을 해야 한다고 알려주셨습니다. (bp_after와 bp_before 순서 헷깔리지 말기!) 그런데 작업형2 예시 중 독립표본 예시의 경우 아래의 가설 검증 시 풀이가 다음과 같았습니다.귀무가설(H0): μ 1 = μ 2, A집단과 B집단 시험 평균 점수는 같다대립가설(H1): μ 1 < μ 2, A집단이 B집단 보다 평균 점수가 작다stats.ttest_ind(df["Agroup"],df["Bgroup"],alternative="less")위의 코딩에서는 Bgroup, Agroup 순서가 아니고 반대인데, 조금 헷깔리더라구요. 설명해주시면 감사하겠습니다~
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
범주형, 수치형 데이터 분리해서 전처리
범주형, 수치형 컬럼을 각각 train, test 나눠서 수치형은 MinMaxscaler범주형은 LabelEncoder 이런식으로 진행을하고나중에 pd.concat으로 합쳐주는 과정을 거치다보면특히 합치는 과정에서 오류를 많이 내고 있는 상황인데요 type2-ex처럼범주형 '주구매상품', '주구매지점' 컬럼을 각각 라벨 인코딩해주고나머지 cols에 수치형 모아서 인코딩하는 방식으로 따로 데이터 분리했다가 결합하는 과정 없이 진행해도 무방한가요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형2모의문제3 lightgbm
안녕하세요 ㅠㅠ 시험때 랜덤포레스트랑 lightgbm 두가지를 준비해가려고 lightgbm을 사용해보는중인데, 아래와같이 오류가발생합니다 ㅠㅠ 이건 무슨의미인가요?작성한 코드 :import pandas as pd train = pd.read_csv('train.csv') test = pd.read_csv('test.csv') y_test = pd.read_csv('y_test.csv') #데이터전처리 결측치없음, 오브젝트없음 from sklearn.model_selection import train_test_split x_tr,x_val,y_tr,y_val = train_test_split(train.drop('output',axis=1),train['output'],test_size=0.2,random_state=2022) #모델링 import lightgbm as lgb model = lgb.LGBClassifier(random_state=2022,max_depth=5) <----여기서 오류가 발생합니다 model.fit(x_tr,y_tr) pred = model.predict_proba(x_val) 오류 :AttributeError: module 'lightgbm' has no attribute 'LGBClassifier'
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형 1 예시문제 민맥스스케일 과정 중 질문
안녕하세요~ 다름이 아니고 민맥스스케일 과정 중 df['qsec'] = scaler.fit_transform(df[['qsec']]) 에서 df[['qsec']] 이처럼 언제 대괄호가 두개 쓰이는건지 이해가 잘 가지않습니다 ㅠㅠ 즉, 왜 df['qsec']가 되지 않는지요.. ㅠㅠ
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
T2-1 원핫인코딩
안녕하세요 T2-1 원핫인코딩을 하는 과정에서 컬럼을 지정하는 것에 관하여 질문을 드립니다.위 데이터 중에서 어떤 기준으로 features를 고르는 것인지 알고 싶습니다
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형2 유의사항
안녕하세요 강사님작업형2유형 유의사항에평가용 데이터 개수와 예측 결과 데이터 개수 불일치시 0점이라 되어있는데요. train.shape, test.shape 찍었을때 만약(712,7) (179,7) 오 나왔다면여기서( 712,7)이랑 (179,7)에서 컬럼이 7로 같으니까 개수가 위 주의사항에서의 데이터 개수가 일치한다고 보는건가요? 데이터 개수라는게 어떤걸 의미하고 이것이 일치하는지를 어떻게 확인할수있나요?만약 roc_auc_score등으로 평가지표가 산출이된다면 제출할때 데이터개수 불일치로 인해 0점맞을 걱정은 안해도되는건가요?저기 주의사항에 있는 데이터개수 불일치라는게 정확히 뭘 의미하고 어떻게 확인하는지를 모르겠네요ㅠㅠ
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
[섹션6] 작업형2 모의문제2 mape 평가 관련 질문입니다.
안녕하세요~ 계속 반복한 끝에 미숙하게나마 직접 데이터를 가공해서 모델을 만들어서 돌려보는 데까지 성공했습니다. 정말 좋은 강의 감사합니다. 저 같은 경우에는 name, host_id, host_name, last_review, reviews_per_month 이런 결측치가 많거나 object인 컬럼들은 모두 날려줬고LabelEncoer, MinMaxScaler를 사용해서 피처엔지니어링을 해줬습니다.그렇게 해서 평가에 사용한 모델은 RandomForestRegressor 고요.다른 결과치들은 선생님께서 방송 중에 만들어주신 모델에 비해서 살짝 살짝 낮지만… 그래도 결과값이 나오긴 나와서 다행이라고 생각하고 있는데요.(정말 고맙습니다!) 딱 하나 아래 mape 요 놈은 결과값이 inf로 나옵니다.MAPE(Mean Absolute Percent Error)요건 Inf - 아마 무한대겠죠?분모에 해당하는 수가 0에 가까워서 그런 게 아닐까 싶기도 한데요. 이 평가지표를 쓰라고 한다면 MinMaxScaler는 쓰면 안 되는 걸까요? 요게 영향을 주지 않았을까 싶어서요. 출근을 해야해서 일단 생각을 여기까지 해보고 퇴근하고 다시 올려보겠습니다.랜덤포레스트 모델하고 LightBGM 요렇게 두 가지만 쓰려고 작정하고 준비하고 있습니다.그럼~
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형2 모의문제 2 질문있습니다!
안녕하세요!작업형 2 모의문제 2의 마지막에 csv파일을 제출할 때 에러가 발생하는데, 어떤 이유인지 찾아봐도 안보여 질문드립니다. 그리고 작업형 2유형의 train과 test데이터 파일만 주어진 경우, 어떤 문제는 n_train, c_train, n_test, c_test로 나누는 문제가 있고 그렇지 않은 문제들이 있어서 헷갈립니다ㅠ 그래서 문제를 읽고 데이터를 분리해야하는 상황이 궁금합니다!import pandas as pd train = pd.read_csv('train.csv') test = pd.read_csv('test.csv') # print(train.head()) # print(test.head()) # print(train.info()) 1. 불필요한 컬럼제거 2. 결측치 대치 3. 인코딩 4. 스케일링 # print(test.info()) train = train.drop(columns ='id') test_id = test.pop('id') # print(test_id) cols = ['host_id','neighbourhood_group','neighbourhood','name', 'host_name', 'last_review'] # print(train.shape) train = train.drop(cols, axis =1) test = test.drop(cols, axis =1) # print(train.shape) # train = train.drop(columns ='host_id') # test = test.drop(columns ='host_id') # train = train.drop(columns ='neighbourhood_group') # test = test.drop(columns ='neighbourhood_group') # train = train.drop(columns ='neighbourhood') # test = test.drop(columns ='neighbourhood') # train = train.drop(columns ='name') # test = test.drop(columns ='name') # train = train.drop(columns ='host_name') # test = test.drop(columns ='host_name') # train = train.drop(columns ='last_review') # test = test.drop(columns ='last_review') # print(train.info()) # print(test.info()) # print(train.isnull().sum()) # print(test.isnull().sum()) train['reviews_per_month'] = train['reviews_per_month'].fillna(0) test['reviews_per_month'] = test['reviews_per_month'].fillna(0) # print(train.isnull().sum()) # print(test.isnull().sum()) #라벨 인코딩 from sklearn.preprocessing import LabelEncoder cols =train.select_dtypes(include = 'object').columns for col in cols: encoder = LabelEncoder() train[col] = encoder.fit_transform(train[col]) test[col] = encoder.transform(test[col]) # print(train.info()) # print(test.info()) # print(train.describe()) # print(test.describe()) # 스케일링 from sklearn.preprocessing import minmax_scale cols2 = train.select_dtypes(exclude = 'object').columns for col in cols2: train[col] = minmax_scale(train[col]) cols2 = test.select_dtypes(exclude = 'object').columns for col in cols2: test[col] = minmax_scale(test[col]) # print(train.describe()) # print(test.describe()) from sklearn.model_selection import train_test_split X_train, X_val, y_train, y_val = train_test_split(train.drop('price', axis=1), train['price'], test_size=0.2, random_state=20) # print(X_train.head()) from sklearn.ensemble import RandomForestRegressor rf = RandomForestRegressor() rf.fit(X_train, y_train) pred = rf.predict(X_val) # print(pred) #id,price sumit = pd.DataFrame({'id': test_id, 'price' : pred}) submit.to_csv('10004.csv', index=False)
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
3회 기출유형(작업형2) 코드 인코딩 방법 관련 질문
안녕하세요. 우선 좋은 강의 너무 감사드립니다.3회 기출유형(작업형2) 코드 인코딩 방법 관련 질문드립니다.풀이 영상에서 원핫인코딩 방법을 선택해주셨던데 시험 문제를 풀때 1)원핫인코딩을 할지 2)라벨인코딩을 할지는 어떤 정보를 보고 선택하나요?저는 라벨 인코딩이 익숙해서 아래 처럼 작성했는데 인코딩 방식이 무관하다면, 아래처럼 라벨인코딩으로 진행해도 될지 문의드립니다.# 수치형 데이터와 범주형 데이터 분리 n_train = train.select_dtypes(exclude=object).copy() c_train = train.select_dtypes(include=object).copy() n_test = test.select_dtypes(exclude=object).copy() c_test = test.select_dtypes(include=object).copy()cols = c_train.columns for col in cols: le = LabelEncoder() c_train[col] = le.fit_transform(c_train[col]) c_test[col] = le.transform(c_test[col]) c_train.head()
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
하이퍼파라미터 질문입니다.
안녕하세요 강사님교차검증을 통해 하이퍼파라미터를 사용할 때, 분류모델인 랜덤포레스트 외에도 의사결정나무, XGBOOST, 회귀모델인 로지스틱 등 전 모델에 동일하게 사용이 가능한가요?random_state의 값을 다른 값을 찾을 필요없이 0으로 고정해도 괜찮을까요?기존방식대로 검증 데이터를 분리하여 하이퍼파라미터 최적 값을 찾는 방법은 없을까요? 하이퍼파라미터를 사용하지 않고 기존방식으로 검증 데이터를 분리 후 성능지표가 가장 좋은 모델을 사용하는 방식으로 해도 점수감점이 없을까요?4가지 질문에 대한 답변을 해주시면 감사합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
df.sum() 과 sum(df) 차이가 뭔가요?
df.sum() 과 sum(df) 차이가 무엇인지 질문드립니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
캐글 폰트 크기 설정
캐글 글자가 너무 작아서 안보이는데 크기 설정 어떻게 하나요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
삭제예정콘텐츠 강의
'(삭제 예정 콘텐츠) 회귀모형'라는 강의가 있는데 빅데이터분석기사 실기 시험에 필요한 내용일까요? 수강해야 되는지 몰라서 질문드립니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
Lightgbm 관련 질문
Ligthgbm을 쓰면 결측치 처리가 필요없고, 범주형 데이터 인코딩도 필요없다고 하셨는데트리 관련 모델이라 수치형 변수 스케일링도 딱히 필요가 없고,이상치 처리에 대해서도 딱히 필요가 없나요??
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형2 모의문제2 lightGBM 적용 질문
import pandas as pd train = pd.read_csv('train.csv') test = pd.read_csv('test.csv') pd.set_option('display.max_columns', None) # print(train.shape, test.shape) # print(train.head()) # print(test.head()) # print(train.info()) # print(test.info()) cols = train.select_dtypes(include='object') for col in cols : train[col] = train[col].astype('category') test[col] = test[col].astype('category') # 이걸 안 하면 lgb.predict(test) 구문에서 에러남 from sklearn.model_selection import train_test_split X_tr, X_val, y_tr, y_val = train_test_split(train.drop('price', axis=1), train['price'], test_size = 0.2, random_state=2023) import lightgbm lgb = lightgbm.LGBMRegressor(random_state = 2023) lgb.fit(X_tr, y_tr) pred = lgb.predict(X_val) from sklearn.metrics import r2_score, mean_absolute_error, mean_squared_error # print("r2 : ", r2_score(y_val, pred)) #0.2392705394376351 # print("mae : ", mean_absolute_error(y_val, pred)) #71.81171796246842 # print("mse : ", mean_squared_error(y_val, pred)) #63344.209788490516 pred_res = lgb.predict(test) pd.DataFrame({'price': pred_res}).to_csv('result.csv', index=False) print(pd.read_csv('result.csv')) y_test = pd.read_csv("y_test.csv") print(r2_score(y_test, pred_res)) #0.22012967580409581안녕하세요, 딴짓님lightGBM 모델 설명 주셔서 적용해보았는데요.이렇게 하는 게 맞을까요?for col in cols : train[col] = train[col].astype('category') test[col] = test[col].astype('category')이 부분을 하지 않으면 에러가 나긴 하더라구요. train[col]을 하지 않으면 아래와 같은 에러메시지가 나옵니다.'DataFrame.dtypes for data must be int, float or bool.Did not expect the data types in the following fields: name, host_name, neighbourhood_group, neighbourhood, room_type, last_review' test[col]을 하지 않으면 아래와 같은 에러메시지가 나옵니다.'train and valid dataset categorical_feature do not match.' lightGBM모델은 데이터 타입이 int, float, bool 이 세가지만 허용하게 되어 object 타입을 category 타입으로 변경train만 변경해주면 test[col]을 하지 않았을 때와 같은 에러메시지가 출력되니 test도 category로 변경이게 맞을까요? 평가지표 같은 것도 주석으로 작성했는데, lightGBM을 이렇게 사용하는 것이 맞는지 확인 한 번 부탁드립니다!
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
preprocessing MinMaxScaler와 minmax_scale의 차이가 궁금합니다.
작업형2 수치형데이터 인코딩 MinMaxScaler로 열심히하다가,작업형1 min-max scale 문제에 위 수치형데이터 인코딩을 하면서 순간 혼돈이 왔었는데요,MinMaxScaler와 min-max scale의 preprocessing 차이가 궁금합니다..!
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
모의문제3 작업형1 출력오류 질문입니다.
안녕하세요 강사님 모의문제3 작업형1 7번 출력 시 발생한 오류를 해결하지 못해 질문드립니다.강사님의 코드와 비교했을 때 iloc/loc만 다를뿐 나머지는 동일한 코드인데 출력값이 202로 다릅니다...어떤 문제가 있어서 그럴까요? 그리고 이외의 2가지 질문 더 있습니다..! 실제 시험에서 평가지표(R-Squared, MAE, MSE, RMSE, RMSLE, MAPE)의 수치를 나타내어야 하는가요? 만일 그렇다면, 다음과 같이 함수로 만들 수 있도록 모두 외워야하나요? 아니면 시험환경에서 주어지나요?작업형2에서 csv파일은 만들어서 제출 후 오류가 있음을 발견해 다시 csv파일을 만들어서 제출해도 상관이 없을까요?시험칠 때 코드에서 주석다는 것은 큰 문제 없을까요? 긴 질문이지만 답변해주시면 감사합니다...ㅜ
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형 2 시험에서 제출 시 평가를 꼭 해야하나요 ?
회귀는 rmse, 분류는 roc 등으로 평가가 있는데,실제 시험에서 평가 없이 바로 제출해도 무방한가요 ?