안녕하세요! 모의고사풀어보기 2에서 시험 환경에 선생님이 올려주신 코드를 그대로 복사해서 print(test)를 해보면 아래와 같이 인덱스가 오름차순으로 정렬되지 않아 마지막 값에 'index':test.index를 했을 때도 선생님 화면과 다르게 나오던데, 혹시 데이터가 바뀐 걸까요..? 늘 친절히 알려주셔서 감사합니다!!
안녕하세요? 독립성 검정강의에서 문제를 꼬아서 낸다고 하면 데이터를 정제된 데이터로 바꾸는 데이터 프레임으로 만드는거 혹시 어떻게 하면 좋을지 잘 모르겠어요 ㅠㅠ df.groupby('근무지')['근무기간'].sum() 해서 합계는 다 구하겠는데, 데이터 프레임으로 만드는건 피봇 기능을 써야할것 같은데...
# 랜덤포레스트 from sklearn.ensemble import RandomForestClassifier rf=RandomForestClassifier(random_state=2023) rf.fit(X_tr,y_tr) pred=rf.predict_proba(X_val) pred=rf.predict_proba(X_test) pd.DataFrame({'ID':X_test['ID'],'Reached.on.Time_Y.N':pred[:,1]}).to_csv('dddd.csv',Index=False) 위 코드로 실행 시 , 아래 ID값에 대한 오류가 나와 오류 해석 및 해결방법 문의드립니다,, KeyError Traceback (most recent call last) /usr/local/lib/python3.10/dist-packages/pandas/core/indexes/base.py in get_loc(self, key, method, tolerance) 3801 try: -> 3802 return self._engine.get_loc(casted_key) 3803 except KeyError as err: 4 frames pandas/_libs/hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item() pandas/_libs/hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item() KeyError: 'ID' The above exception was the direct cause of the following exception: KeyError Traceback (most recent call last) /usr/local/lib/python3.10/dist-packages/pandas/core/indexes/base.py in get_loc(self, key, method, tolerance) 3802 return self._engine.get_loc(casted_key) 3803 except KeyError as err: -> 3804 raise KeyError(key) from err 3805 except TypeError: 3806 # If we have a listlike key, _check_indexing_error will raise KeyError: 'ID'
안녕하세요. 강의 잘 듣고 있습니다. csv 파일 내보낼 때 (강의) pd.DataFrame({ 'index': test.index, 'target':pred }).to_csv("____.csv", index=Faslse) < 나> reset_index()쓰고 해도 되는지 궁금합니다. # 내보내기 submit = pd.DataFrame({ 'target': pred }).reset_index().to_csv("result.csv", index = False) <나 결과> -- "Unnamed:0" ? submit = pd.DataFrame({ 'target': pred }).to_csv("result.csv") reset_index()도 안 쓰고 csv 파일 내보내기 할때.. .false도 안 쓰니 "Unnamed:0"이라는 칼럼이 생겼습니다. 얘는... result.csv에서 자동으로 만들어낸 인덱스? 인가요? submit에 넣어준 칼럼도 아닌데 왜 생기는건가요?
안녕하세요. 작업형2 모의문제1에서 평가 시 roc_auc_score를 쓸 때는 predict_proba와, roc_auc_score(y_val, pred[:,1])형태를, 나머지 평가 방법을 쓸 때는 predict와 (y_val, pred)형태를 쓰시던데요!! 문제에서 신용카드 이탈 확률을 찾는거라 predict_proba라고 생각했는데, 그냥 predict를 쓰는 것은 평가 방법 때문인가요? (일단 roc제외한 평가에는 predict를 쓰고 마지막 제출 시 proba로 다시 예측하는건지?) 수치형 컬럼 전처리에서 col=['age', 'bmi', 'children'] <-수치형 컬럼나열 from sklearn.preprocessing StandardScaler scaler=StandardScaler train[col]= scaler.fit _transform(train[col]) test[col]=scaler.transform(test[col])형태로 전처리를 하면 keyError: "None of [Index(['age', 'bmi', 'children'], dtype='object')] are in the [index]" 이런 에러가 자꾸 발생하는데 어디가 잘못된건지 궁금합니다!!
선생님 안녕하세요! 작업형 2 유형 예시문제 관련해 질문이 있습니다. ▲ '환불금액' 결측치 대체 전 ▲ '환불금액' 결측치 대체 후 '환불금액' 결측치가 기존에는 float형이었는데 중앙값으로 대체하니 object형으로 바뀌었는데, 이렇게 하는게 맞는지 궁금합니다. 그리고 다음과정인 범주형 → 수치형으로 바꿀때 '환불금액'도 바꿔야하나요? 매번 양질의 강의 제공해주셔서 감사합니다!
안녕하세요! 캐글 질문을 올려도되는지 모르겠으나,,ㅠㅠ 질문할 곳이 없어 한 가지만 여쭤보려고 합니다 https://www.kaggle.com/code/agileteam/t2-4-house-prices-regression/notebook 이 문제에서 마지막에 csv파일 만드실 때 id값을 y_test.Id로 넣으시던데요! 수험자에게 y_test데이터가 주어지는 건가요..? 그동안은 x_test데이터에서 id등을 불러와서 썼는데, 이 문제처럼 x_test데이터에 그 값이 없으면 y_test에서 불러오면 되는걸까요..? 강의와 무관한 질문 죄송합니다ㅠ
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.head()) # print(test.head()) # print(train.info()) # print(test.info()) from sklearn.preprocessing import LabelEncoder cols = train.select_dtypes(include='object') le = LabelEncoder() for col in cols : train[col] = le.fit_transform(train[col]) test[col] = le.transform(test[col]) # print(train.head()) # print(train.info()) train = train.drop('Unnamed: 0',axis=1) test = test.drop('Unnamed: 0', axis=1) 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.2,random_state=0) # print(help(train_test_split)) from sklearn.ensemble import RandomForestClassifier rf = RandomForestClassifier() rf.fit(X_tr, y_tr) pred = rf.predict_proba(X_val) # print(pred) import lightgbm as lgb model = lgb.LGBMClassifier() model.fit(X_tr, y_tr) lgb_pred = model.predict_proba(X_val) from sklearn.metrics import roc_auc_score # print(roc_auc_score(y_val, pred[:, 1])) # print(roc_auc_score(y_val, lgb_pred[:, 1])) res = model.predict_proba(test) submit = pd.DataFrame({'index': test.index, 'y_pred': res[:, 1]}) submit.to_csv('950326.csv', index=False) print(pd.read_csv('950326.csv')) lightgbm을 randomforest와 비교해서 두 가지 정도만 준비해가려고 작업형 2를 다시 풀고있습니다. LightGBM을 쓰려고 하니 아래와 같은 오류가 발생했습니다. 'LightGBMError: Do not support special JSON characters in feature name.' 이게 혹시나 다운로드 파일의 'Unnamed: 0' 컬럼 때문인가 해서 drop해보고 코드를 작성하니 정상적으로 돌아가더군요. train = train.drop('Unnamed: 0',axis=1) test = test.drop('Unnamed: 0', axis=1) LightGBM은 컬럼에 특수문자가 있으면 안 되는 게 맞는지 확인 한 번만 부탁드립니다!
안녕하세요. 작업형2 모의문제1를 스스로 코딩하는 과정에서 발생한 오류를 해결하지 못하겠습니다.. 다음은 제가 작성한 코드파일입니다. 정확도, 정밀도, 재현율, F1 출력 시 오류가 발생한 것을 볼 수 있으며, 문제점을 파악하기 어렵습니다... 피드백 부탁드립니다.. 감사합니다.
<ipython-input-94-20cf5f2ccdef>:9: FutureWarning: Index.__or__ operating as a set operation is deprecated, in the future this will be a logical operation matching Series.__or__. Use index.union(other) instead. 문제를 풀고서 답을 구했는데 이런식으로 워닝메시지가 뜨는데요! 답은 정확히 똑같이 나왔는데 워닝메시지가 뜨면 시험 상황에서 혹시 코드를 고쳐야 할까요? 아니면 워닝 메시지가 나와도 답은 똑같이 출력되면 그냥 제출해도 상관이 없나요?
안녕하세요. 데이터 인코딩 관련하여 궁금한 점이 있어서 질문남기게 되었습니다. 선생님께서 알려주신대로, 인코딩을 필수로 진행하되, 라벨인코딩과 원핫인코딩은 선택하여 자유롭게 진행하여도 학습에 문제가 없다고 이해하였습니다. 예시문제를 라벨인코딩과 원핫인코딩으로 둘다 진행하던 중, 라벨인코딩시에는 X_train데이터와 X_test데이터의 컬럼 수가 동일하여 학습에 문제가 없었으나, 원핫인코딩을 진행하니 X_train데이터와 X_test 데이터의 컬럼 수가 달라져서 학습 시, 오류가 발생하는 점을 확인하였습니다. 어떤 점이 문제이며, 원핫인코딩을 이용하려고 한다면 어떻게 접근해야할지 여쭤볼 수 있을까요? 라벨인코딩 시 X_train, X_test의 shape => (3500,9), (2482,9) 원핫인코딩시 X_train,X_test의 shape => (3500,73), (2482,72) => 컬럼 수가 일치하지않아 학습 시, 에러 발생 import pandas as pd pd.set_option('display.max_columns',None) X_test = pd.read_csv("data/X_test.csv") X_train = pd.read_csv("data/X_train.csv") y_train = pd.read_csv("data/y_train.csv") # 사용자 코딩 # print(X_train.info(),X_test.info()) # 결측치 처리 # print(X_train.isnull().sum()) X_train['환불금액'] = X_train['환불금액'].fillna(0) X_test['환불금액'] = X_test['환불금액'].fillna(0) X_test_id = X_test.pop('cust_id') X_train = X_train.drop(['cust_id'],axis = 1) # 1. LabelEncoder cols = X_train.select_dtypes(include='object').columns from sklearn.preprocessing import LabelEncoder le = LabelEncoder() for col in cols: X_train[col] = le.fit_transform(X_train[col]) X_test[col] = le.transform(X_test[col]) print(X_train.shape,X_test.shape) # 2. one-hot Encoder X_train = pd.get_dummies(X_train) X_test = pd.get_dummies(X_test) print(X_train.shape,X_test.shape) X_train = X_train.drop('cust_id',axis =1) 과 X_train = X_train.drop(['cust_id'],axis =1) 를 각각 실행하였을 때, 에러없이 cust_id 컬럼이 동일하게 삭제되는 점을 확인했는데 혹시 drop시 컬럼명에 대괄호를 묶고 안묶고의 차이가 있을까요??