구글 코랩에서 사용 중인데, 파일 업로드 어떻게 하나요? 코드에 import pandas as pd df = pd.read _csv("type1_data1.csv") df = pd.read _csv(" https://raw.githubusercontent.com/lovedlim/bigdata_analyst_cert/main/part1/ch3/type1_data1.csv ") 이렇게 붙여넣기 했는데 이렇게 하는게아닌가요? 드래그앤드롭 하라고 하셨는데 어디다 드래그앤드롭 하라는 건가요?ㅠ
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세 여기서 계속 오류가 납니다 그리고 궁금한게 있는데요 데이터가 세개일때는 train으로 합쳐줘야해서 concat해서 df를 만든것이 train 데이터가 되는거 아닌가요? df=pd.concat([X_train,y_train['Reached.on.Time_Y.N']],axis=1) df 위에 코드처럼 df를 만들면 저게 train으로 해서 뒤에 쓰여야 할것 같은데 뒤에라벨인코딩 할 때 왜 df[col]=le.fit_transform(X_train[col])가 아니고 X_train[col]=le.fit_transform(X_train[col])l]) 이렇게 되는지 잘 모르겠어요... df는 그럼 concat으로 생성하고 뒤에 안쓰이는거 아닌가요?
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 시간이 너무 없어서, 3유형은 선택과 집중해서 보고 가려고 합니다. from statsmodel.formula.api import ols model = ols('키 ~ 몸무게' , data=df).fit() print(model.summary()) newdata = pd.DataFrame({'몸무게':[50]}) pred = model.get_prediction(newdata) pred.summary_frame(alpha=0.05) 이 부분 말고도 볼만한 부분이 따로 볼만한 부분이 있을까요..
print(train.shape, test.shape) train.head(1) test.head(1) train.info() test.info() train.isnull().sum() test.isnull().sum() train.describe() test.describe() target = train.pop('Segmentation') print(train.shape, test.shape) train = pd.get_dummies(train) test = pd.get_dummies(test) print(train.shape, test.shape) 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=0) X_tr.shape, X_val.shape, y_tr.shape, y_val.shape from sklearn.ensemble import RandomForestClassifier rf = RandomForestClassifier(random_state=0) rf.fit(X_tr, y_tr) pred = rf.predict(X_val) 다음과 같이 작업형 2 기출 4회를 한 셀에 풀고 있는데 target 구문을 겟더미 실행하기 전에 타이핑했습니다. 이후 모델 학습 및 평가를 실행하려고 하니 다음과 같은 에러가 뜹니다. 에러 코드가 복사가 안됩니다. 이 점 양해바랍니다. ㅜㅜ
https://www.kaggle.com/code/agileteam/t3-ttest-1samp 캐글에 있는 학생들의 평균이 75을 넘는 것을 물어보는 문제에서 학생들의 평균과 75를 비교해야하는 것 아닌가요? 그런데 단순히 학생들의 점수와 75를 비교하고 있어서 이해하기 어렵습니다. 코드는 ttest_1samp(scores, mu, alternative='greater') 이렇게 되어있고 scores는 점수리스트입니다.
교재 작업3 회귀 중고차예측문제를 푸는데(평가지표 RMSLE) 마지막에 rmsle 계산할 때 Root Mean Squared Logarithmic Error cannot be used when targets contain negative values. 이런 에러가 계속 나오더라고요 타겟 데이터가 price라서 음수는 없는데 무슨 문제일까 싶어서 train_test_split후 from sklearn.metrics import root_mean_squared_log_error 사이킷런에서 불러와서도 해보고 from sklearn.model_selection import cross_val_score rmsle = -1 * cross_val_score(model , train , target , cv = 5 , scoring = "neg_root_mean_squared_log_error") cross_val_score 사용해서도 해봤는데도 계속 같은 에러가 나왔습니다.. 아무리 해도 안고쳐 지길래 저는 모델이 lgbm이었는데 혹시나 해서 랜덤포레스트로 바꾸니까 정상적으로 돌아가더라고요.. 혹시 lgbm을 사용하면 안되는 문제점이 있을까요?
1. 교재 작업2 다중분류 약물종류 예측에서 크로스벨리데이션으로 평가하는 방법이 나와있는데 제가 이해한게 맞는지 질문드립니다. from sklearn.metrics import f1_score from sklearn.model_selection import cross_val_score from sklearn.ensemble import RandomForestClassifier model = RandomForestClassifier(random_state = 0) f1 = cross_val_score(model ,train, target ,cv=3 , scoring="f1_macro") 마지막 한줄에서 cross_val_score가 train , target을 3(cv=3)덩어리로 나눈 후 각 덩어리?를 model을 통해 학습한 후 나머지 데이터로 평가하여 f1_macro로 각각의 평가지표가 계산되는것이고, 이후 앞으로 돌아가 전처리 등을 통해서 평가지표를 향상할 수 있도록 해본 후에 최종 제출하기 전에 마지막에 model.fit(train,target)을 통해서 전체 train, test로 다시 학습을 시킨 후 제출을 하는 과정이 맞을까요? 이 문제에서 총 train 데이터가 100개라 그런지 f1이 1이 나오길래 검증 데이터수가 너무 적어서 점수가 높게 나왔다고 생각하여 test_size를 0.3로 변경하고 진행을 하였습니다. 이런식으로 하는 방법은 train 데이터 수가 작아지기 때문에 옳은 방법이 아닌걸까요? 3. 하이퍼파라미터 max_depth , n_estimators 등은 lightgbm, 랜포에서 동일하게 사용하는걸까요? lightgbm에 대한 하이퍼파라미터 튜닝은 다루지 않은것 같아서요(아직 기출 강의는 듣지 않아서 강의에서 다뤘을지도 모르겠습니다..) 1)튜닝을 하는 경우에는 데이터셋에 과적합 우려가 있기 때문에 cross_val_score을 사용하는것이 나아보이기도 하고, 2)튜닝값이 분할된 각 데이터셋에 적용되는 것이므로 , 마지막에 전체 데이터로 다시 학습시키는 과정에서 동일한 튜닝값이 적용되면 더 안좋아질 수도 있을 것 같은데 1) 2) 중 어느것이 옳은 생각일까요? train_test_split을 이용하는 경우 전처리 + X_tr, y_tr을 통해 학습한 모델로 검증한 후 마지막에 전체 train, target으로 다시 학습시키는게 더 좋을 것 같은데(데이터 양의 증가), 튜닝을 한 경우에는 X_tr, y_tr로 학습한 모델로 제출을 하는 것이 옳을까요? train_test_split을 했을때 하이퍼 파라미터 튜닝으로 f1이 0.61 ->0.65로 올라갔으나, cross_val_score에서 같은 튜닝값을 적용하니 f1이 0.71 -> 0.69으로 내려갔습니다. 이런 경우 튜닝전후 어떤 값으로 제출하는게 좋을까요? 시험이 며칠 안남기는 했지만 cross_val_score을 익숙하게 쓸 수 있으면 시험에서도 train_test_split 대신 cross_val_score을 사용하는게 좋을까요? 아니면 train_test_split으로만 검증해도 상관없을까요 질문이 많아서 죄송합니다. 감사합니다.
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 아직 강의 보기전 혼자 풀어보았을때 결과가 이런식으로 다르게 나온다면 코드에서 잘못된 부분이 있는거겠죠ㅠㅠ? 검증데이터로는 roc_auc_score 0.75 나옵니다 (오류없이 실행은 되는데 결과 확률이 다르게 나옵니다ㅠ)
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 # F1 스코어(F1 Score) *** 숫자 문자 차이 없음 from sklearn.metrics import f1_score f1 = f1_score(y_true, y_pred, average='macro') # average= micro, macro, weighted print("F1 스코어:", f1) f1 = f1_score(y_true_str, y_pred_str, average='macro') print("F1 스코어:", f1) *RMSE(Root Mean Squared Error) *** from sklearn.metrics import mean_squared_error mse = mean_squared_error(y_true, y_pred) rmse = mse ** 0.5 print("RMSE:", rmse) F1 스코어 : f1 = f1_score(y_true, y_pred, average='macro' 여기서 y_true RMSE: mse = mean_squared_error(y_true, y_pred) 여기서 y_true 두 y_ture 모두 y_val 값을 말하는게 맞나요??