묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
자주 활용되는 판다스 예제 11:35초경에 사용하시는 스킬...
룽고를 적고 한 번에 작음따옴표로 채우시는데 단축키같은게 있는건가요?(룽고 -> '룽고')굉장히 편리해보여서요
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
f1_score
안녕하세요 코딩이 초보라 열심히 따라하고 있는데 f1_score 값이 위의 그림과 같이 error가 났네요 . 뭐가 잘못되었을까요 ?확인 부탁드립니다
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업유형2(신버전) pred 결과값 문의
안녕하세요,문제에서 보면 제출 csv 파일형식 예시라고 해서pred 결과값이 0,1 값으로 구성되어 있는데, pred 확률값으로 제출하는게 맞는지 궁금합니다. 문제에서는 남성을 예측하라 / 여성을 예측하라는거 없이 성별 예측결과를 저장하라고 되어있습니다.그럼 predict_proba가 아닌 predict 함수를 써야되는게 아닌가 싶어서요 roc_auc_score 평가시에는 반드시 predict_proba를 사용해야되는게 맞을까요? (roc_auc_score 평가시 predict로도 일단 코드는 돌아갑니다.)
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
3회 기출문제 작업형2 질문드립니다.
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요unamed:0 칼럼에 대해 질문드립니다. (사진에서 첫번째 칼럼)unamed:0 칼럼은 시험 때 제출해야할 ID와 관련된 것이 아닌가요? ㅜㅜ 중간에 test_id 안 만드셔서 의문점이 들었어요.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
여성인 확률을 물어볼 경우 문의 (roc_auc)
혹시 질문에서 여성(0값)일 확률을 물어볼 경우, pred[:,0]으로 roc_auc_score이나 DataFrame 결과값 때 값을 넣으면 될까요??
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
5회 기출유형 작업형2 질문입니다.
# 데이터 불러오기 import pandas as pd train = pd.read_csv("train.csv") test = pd.read_csv("test.csv") y_train = train.pop('price') X_train = train X_test = test #print(X_train.head(3)) #print(y_train.head(3)) #print(X_test.head(3)) #print(X_train.info()) X_train = X_train.drop(columns = ['model', 'transmission', 'fuelType']) X_test = X_test.drop(columns = ['model', 'transmission', 'fuelType']) #print(X_train.info()) #print(X_test.info()) from sklearn.ensemble import RandomForestRegressor model = RandomForestRegressor() model.fit(X_train, y_train) model_pred = model.predict(X_test) #print(model_pred) pd.DataFrame({'pred':model_pred}).to_csv('수험번호.csv', index=False) 수험번호 = pd.read_csv("수험번호.csv") print(수험번호.head())선생님 안녕하세요 위와 같이 가장 기본형으로 작업을 했습니다. 맨 마지막에 파일을 불러오니 정수형이 아닌 소숫점까지 나오더라구요.이걸 정수형으로 바꾸려면 어디에서 int를 씌워야 할까요?(참고로 선생님께서도 소수점으로 제출하셨지만, 만약에 정말 시험이라면 정수로 제출해야겠죠?)int(model_pred)해도 오류가 나오고, 맨 위에서 아얘 처음부터 해도 오류가 나오네요... 2 코딩을 선생님께 배운지 2주도 채 되지 않아 가장 기본형으로 진행하려고 합니다. 보통 기본형으로 해도 30점 이상 받을 수 있을까요? 일반적으로 후기에 따르면 어느정도일지 궁금하네요. 매번 감사드립니다 ^^
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
예시문제 작업형2 신버전
알려주신대로 풀어보았습니다import pandas as pdtrain = pd.read_csv("data/customer_train.csv")test = pd.read_csv("data/customer_test.csv")train= train.fillna(0)test= test.fillna(0)from sklearn.preprocessing import LabelEncodercols = ['주구매상품','주구매지점']for col in cols:le = LabelEncoder()train[col]=le.fit_transform(train[col])test[col]=le.transform(test[col])target = train.pop('성별')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)from sklearn.ensemble import RandomForestClassifiermodel=RandomForestClassifier()model.fit(X_tr,y_tr)pred=model.predict_proba(X_val)from sklearn.metrics import roc_auc_score# print(roc_auc_score(y_val,pred[:,1]))pred=model.predict_proba(test)submit = pd.DataFrame({'pred': pred[:,1]})submit.to_csv("result.csv",index=False) 이렇게 제출했는데1.# print(roc_auc_score(y_val,pred[:,1]))이부분은 값을 확인만하고 주석처리하는것이죠?2.from sklearn.metrics import roc_auc_score이렇게만 해도 roc-auc 평가가 적용되나요?3.문제풀때 프린트문은 다 주석처리 하면될까요4.test_size=0.2,random_state=0숫자는 아무거나 적어도 되나요? 5. model=RandomForestClassifier() 이부분에도 랜덤스테이트를 넣으면 좋다고 하셧는데 위와 동일한 랜덤스테잌트인 0을 넣으면 되나요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
drop(), dropna(),fillna() 관련 질문
좋은 강의 감사합니다. 제목에 기재한 메소드들에 대해 실습하다 헷갈리는게 있어서,개념 정립차원에서 정리글을 작성해봤는데, 맞는지 확인 좀 부탁드려도 될까요? ////////////////////////////////////////////////////////////////////////////////////////////예: trian데이터 셋에서 작업, "A","B" 칼럼에 결측치 있다고 가정 @@@ drop() // 삭제 메소드@1개의 특정 칼럼(열) 삭제train = train.drop(["A"], axis=1)# "A" 로 해도 진행 됨.@1개의 특정 (칼럼에 해당 하는) 행 삭제train = train.drop(인덱스값, axis=0) @ 복수의 특정 칼럼(열) 삭제train = train.drop(["A","B"], axis=1)@ 복수의 특정 (칼럼에 해당 하는) 행 삭제train = train.drop([인덱스값들], axis=0) @@@ dropna() // 결측치 삭제 메소드@ 결측치 존재하는 칼럼 전체삭제train = train.dropna(axis=1)@ 결측치 존재하는 행 전체삭제train = train.dropna(axis=0) #axis=0 은 기본값이라 생략가능. @ 복수의 결측치 존재 칼럼(열) 삭제train = train.dropna(["A","B"], axis=1)에러 : TypeError: DataFrame.dropna() got multiple values for argument 'axis'@ 복수의 (특정 칼럼 내) 결측치 존재 행 삭제train = train.dropna(subset=["A","B"], axis=0)# train이라는 데이터 셋을 대상으로( train. ), 결측치가 있는 것들 행(axis=0 이 기본)을 제거할 것인데( dropna() ), 그 결측치 우뮤의 기준은 "A","B"칼럼이다 (subset=["A","B"]) @@@ fillna() // 결측치 채움 메소드train.fillna(0) # train데이터셋의 결측치를 전부 0으로 채움 @특정 칼럼의 결측치들을 특정 값으로 동일하게 채움train["A"] = train["A"].fillna(0) # "A" 칼럼의 결측치를 모두 0으로 채워 train의 "A"칼럼에 대입하고, 결과를 동일이름의 변수로 적용@특정 행의 결측치들을 특정 값으로 동일하게 채움# 어떤 인덱스(행)이 갖는 여러 칼럼을 동일한 값으로 채우는 경우는 사실상 없으므로, 알 필요 없음(...??)//////////////////////////////////////////////////////////////////////////////// 일단 여기까지 정리한게 다인데, @ 복수의 결측치 존재 칼럼(열) 삭제train = train.dropna(["A","B"], axis=1) 이렇게 하면 오류 발생해서...dropna() 메소드로 결측치 존재하는 특정 칼럼만 지정해서 삭제하려면 어떻게 해야하나요? 그리고 fillna()메소드에서 @특정 행의 결측치들을 특정 값으로 동일하게 채움이런 경우는 없을테니, 그냥 넘어가도 괜찮은지 궁금합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
기출문제 질문
선생님 안녕하세요! 기출 등에서 궁금한 점이 있어 질문드립니다. 1. 기출 1회 작업형 2에서 train데이터와 test데이터의 고유데이터 수가 다르다면 set을 사용하여 어떤 부분이 다른지 알 수 있는 방법을 알려주셨는데 그럼 이 부분을 어떻게 하면되는것일까요? 강의에서는 뭐가 나온건지만 알려주시고 따로 처리를 하시거나 그러지 않으신것같아서요! 2. 기출 2회 작업형 1에서 문제를 푸는데 아래와 같은 에러?워닝?이 떴는데 이유를 잘 모르겠습니다! 이걸 제거하려면 어떻게 해야할까요?3. 작업형 1의 경우에 답을 꼭 마지막에 print()문으로 표시를 해줘야하는 것 맞을까요? 작업형 1,3 모두 따로 답변하는 란이 있는것같았는데 그럼 1,3 모두 풀이과정을 쓰는 곳에선 문제 각각 print()문으로 답을 표시해야 할까요??
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형 2 체험 환경에서 왜 계속 아래와 같은.. 오류가 뜰까요 ?
(사진)
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
캐글 T1-16 문제 풀이중 질문드립니다.
선생님 안녕하세요~ 지금 T1 캐글 문제 풀어보고 있는데,import pandas as pd# 데이터 불러오기df = pd.read_csv("../input/bigdatacertificationkr/basic1.csv")df.head(5)#f2가 0인 데이터 정렬df2 = df.loc[df['f2']==0].sort_values('age', ascending = True)#앞에서부터 20개 데이터 추출df2 = df2.iloc[:19]before = df2['f1'].var()df2['f1']= df2['f1'].fillna(df2['f1'].min()).var()after = df2['f1'].var()print(round(after-before,2)) 이렇게 했을 때 정답값이 저는 -390.68으로 나오는데, 선생님 풀이를 보면 정답 : 38.44으로 나오더라고요.혹시 어디서 틀렸는지 알 수 있을까요? 앞에서부터 20개의 데이터 추출할때저처럼 df2.iloc로 사용해도 무방한가요..?! ㅜㅜ# 앞에서 부터 20개의 데이터 df = df[:20]
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
6회 기출 유형(작업형2) xgboost 관련 질문있습니다!
안녕하세요 다중분리를 할 때 xgboost classification을 적용하는 과정에서 문제가 생겨서 질문드립니다.처음 데이터셋 그대로 xgboost를 쓰니까"ValueError: Invalid classes inferred from unique values of y. Expected: [0 1 2 3 4], got ['High' 'Low' 'Medium' 'Very High' 'Very Low']" # 참고로 y는 train 데이터에서 타겟변수만 따로 pop해놓은 변수입니다.이런 에러가 뜨더라구요, 그래서 for문을 이용해서for i in range(len(y)): if y[i] =='Very Low': y[i] = 0 elif y[i] =='Low': y[i] = 1 elif y[i] =='Medium': y[i] = 2 elif y[i] =='High': y[i] = 3 elif y[i] =='Very High': y[i] = 4이렇게 바꾸니까, 모델과 pred는 돌아가긴 돌아가는데, f1_score(pred, y_val, average= 'macro')로 점수를 내는 과정에서 새로운 오류가 생겨 점수가 나타나지 않습니다..ValueError: Classification metrics can't handle a mix of multiclass and unknown target 이라고 떴고, 이전과 비교를 해보니까랜덤 포레스트 classifier를 돌릴 때 pred는 'Low' 'High' 'Very Low' 'Medium' 'Low' 'Low' 'Low' 'Low' 'High' 'High' ... 이런식으로 되어있는 반면xgboost는 [1 3 0 2 1 1 1 1 3 3 3 3 0 2 1 3 3 3 3 1 2 3 1 2 0 3 3 1 1 0 0 3 0 1 4 0 40 3 1 4 2 2 1 2 3 0 3 1 0 3 1 3 0 0 1 1 2 0 0 4 1 4 2 3 1 2 4 4 4 3 1 0 00 0 4 1 0 4 0 0 3 2 0 1 2 4 3 4 0 1 1 0 1 2 3 0 0 1 3 3 0 0 4 0 2 3] 이렇게 콤마로 되어있는걸 알게되었습니다.그래서 모델을 돌린 뒤for i in range(len(pred)): if pred[i] == 0: pred[i] = 'Very Low' elif pred[i] == 1 : pred[i] = 'Low' elif pred[i] ==2: pred[i] = 'Medium' elif pred[i] ==3: pred[i] = 'High' elif pred[i] ==4: pred[i] = 'Very High' 다시 원상복구를 시켜서,['Low', 'High', 'Very Low', 'Medium', 'Low', 'Low', 'Low', 'Low', 'High', 'High', 'High', 'High', 'Very Low', 'Medium',...] 이 형식으로 만들었고,pred = pd.DataFrame(pred)으로해서.. 음.. 만들었는데 여전히 되지 않습니다.. 결론은 저런 과정을 통해.. 해결하고자 했는데 여전히 못하고있고..xgboost를 사용하려면 어떻게 해야되나요 ?이런 과정을 거치지 않고서도 xgboost를 돌리려면 어떻게 해야하나요?입니다. 감사합니다!
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
빅분기 응시환경 체험에서 데이터셋 변경
ㄱ빅데이터 분석기사 응시환경 체험 화면에서 제시된 데이터셋인 data/mtcsrs.csv를 기출 문제들의 데이터셋으로 변경하는 방법이 있을까요?>?기출문제들을 실제 시험환경에서 풀어보고 싶습니다
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
pred_proba 관련해서 질문드립니다!
안녕하세요 선생님 최근에 올려주신 강의를 통해 어떤 확률 값을 제출하는지 명시가 안되어 있을 경우에는 양성인 값 pred_proba[:,1]를 제출하는 것을 잘 알았습니다!그러면 만약에 어떤 확률을 제출하라는 말이 없고 타겟값이 뇌졸중 0 : 뇌졸중 양성, 1: 뇌졸중 음성 이런식으로 되어 있을 경우에는 뇌졸중 양성인 pred_proba[:,0]을 제출하는게 맞을까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
pred_proba 질문
데이터를 예측할 때 predict가 아니라 predict.proba를 사용하였을 때,데이터프레임을 제작할 때 pred_proba[:,1]로 작성하는 것을 외웠지만 [:,1]을 작성하는 이유를 모르겠어서 질문 드립니다!
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
카이제곱 독립성 검정에서 각 항목의 빈도수가 이상하게 나와요.
import pandas as pd df = pd.DataFrame({ '남자': {'합격': 100, '불합격': 200}, '여자': {'합격': 130, '불합격': 170}}) from scipy.stats import chi2_contingency chi2_contingency(df)Chi2ContingencyResult(statistic=5.929494712103407, pvalue=0.01488951060599475, dof=1, expected_freq=array([[115., 115.], [185., 185.]]))위 코드를 실행하면 expected_freq 값이 행별로 동일하게 나오는데.. 혹시 이유가 있을까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
예시문제 작업형2(신버전) 질문입니다.
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요분명 CSV 파일 예시는pred0010 이렇게 되어있는데,pred[:,1]로 하면 확률로 표시되는데... 그래도 가능할까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
2회 기출 작업형 1문 풀이 질문있습니다.
주어진 데이터셋(members.csv)의 'views' 컬럼 상위 10개 데이터를 상위 10번째 값으로 대체한 후 'age'컬럼에서 80 이상인 데이터의 'views' 컬럼 평균값 구하기문제에서는 view 칼럼 내림차순으로 정렬된 df에서 10번째 값으로 상위 10번째 값으로 모두 대체후에 age 조건 이후 view 평균값을 구해주셨는데, 문제를 읽어보면 원래 기존의 df 에서 10번째 값까지 상위 10번째 view 값으로 대체 후에 정답을 구해야 하지 않나요? 주어진 데이터셋을 정렬한 후에 값을 구하면 답이 달라지는것 같습니다!
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형 2,3 관련 질문
선생님 안녕하세요! 공부하다가 헷갈리는 부분에 대해 질분드립니다🙂 1. 작업형 3에서 회귀 분석에서 범주형 변수는 get_dummies 사용하지 않고 선형 회귀 분석 하듯이 하면 되는것 맞을까요?? 2. 강의 이원 분산 분석 편에서 사후 검정 중 Tukey HSD를 진행할 때 비료에 .astype(str)를 하는 이유는 무엇인가요?? 3. 작업형 2에서 수치형 데이터로만 모델 성능을 예측할 때 이미 검증데이터 분리에서from sklearn.model_selection import train_test_splitX_tr, X_val, y_tr, y_val = train_test_split(train[cols], train['성별'], test_size=0.15, random_state=0) 로 했다면 모델 학습 시model.fit(X_tr, y_tr)로만 하면 되지 않나요?? 왜 fit(X_tr[cols])로 또 해줘야하는지 궁금합니다!
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업2
1. 빠르게(인코딩 없이 드랍) 베이스라인을 만들고 (데이터 분할과 랜덤포레스트 모델 random_state값 고정) 검증 - 1차 제출인코딩 후 검증 -> 점수 좋아졌다면 - 2차 제출(결측치가 있다면) 결측치 처리 다양한 방식 시도 - 3차 제출다른 질문에서 이렇게 답변하셨는데 인코딩 없이 드랍시에도 데이터분할 treain_test_split 을 해야하는거군요?? 처음부터 드랍말고 라벨인코딩이나 원핫인코딩을 하면 무조건 성능이 좋은건 아닌가요? 라벨인코딩과 원핫인코딩 둘중 하나를 선택하셔서 풀이하시던데기준이 궁금합니다