수치형 변수 스케일링을 할때 cols 에서 왜 TravelInsurance 는 제외시키나요? 그리고 display함수가 print함수와 다른 점은 무엇인가요? # 수치형 변수 스케일링 from sklearn.preprocessing import RobustScaler scaler = RobustScaler() cols = ['Age','AnnualIncome','FamilyMembers','ChronicDiseases'] display(a_train.head()) a_train[cols] = scaler.fit_transform(a_train[cols]) a_test[cols] = scaler.transform(a_test[cols]) a_train.head()
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세 위와 같이 실행했는데 baseline roc_auc가 높게 나옵니다 그리고 y_test 실행결과 label과 점수가 비슷합니다. 어떤 이유일때문일까요?
강의를 보면서 강사님과 똑같이 진행을 하는데 값이 다릅니다. 그리고 영상에서는 max_depth를 설정했을 때가 설정하지 않았을 때 보다 값이 더 올라갔는데 저 같은 경우는 설정한 후 값이 더 내려갔습니다. 정상적인 건가요? #rf from sklearn.ensemble import RandomForestClassifier from sklearn.metrics import roc_auc_score, f1_score, accuracy_score rf = RandomForestClassifier(random_state=2025,max_depth=3) rf.fit(X_tr,y_tr) pred = rf.predict(X_val) pred_proba = rf.predict_proba(X_val) print(roc_auc_score(y_val,pred_proba[:,1])) print(f1_score(y_val,pred)) print(accuracy_score(y_val,pred)) # 0.9227272727272727 # 0.8571428571428571 # 0.8378378378378378 # max_depth = 3 # 0.9242424242424243 # 0.8 # 0.7837837837837838
<모델&평가>에서 fit(학습)을 시킬때는 왜 X_tr,y_tr을 넣고 예측을 할때는 왜 X_val를 넣나요 ? 그냥 아무거나 넣어도 되나요 ? #rf from sklearn.ensemble import RandomForestClassifier rf = RandomForestClassifier(random_state=2025) rf.fit(X_tr,y_tr) pred = rf.predict(X_val)
<데이터 전처리 &피처엔지니어링>에서 왜 id를 drop 하나요? 그리고 <검증 데이터 분리>에서 는 왜 output을 drop 하나요? train = train.drop('id',axis=1) test_id = test.pop('id') test.head() 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.15, random_state=2025)
안녕하세요 우빈님 강의 너무나 잘 듣고 있습니다 🙂 주니어에게 큰 힘이 되고 있습니다 감사합니다 공부를 하다보니 단위테스트와 통합테스트의 경계가 궁금하게 되었습니다. 우빈님은 컨트롤러 / 서비스 / 리포지토리 각 계층에 대해 단위 / 통합 / 단위 테스트라고 구분하셨는데요 어떤 분은 컨트롤러 계층에서 작성한 테스트에 대해 통합테스트라고 주장하셨습니다 @WebMvcTest 또는 @SpringBootTest를 사용해 스프링 컨텍스트의 일부(웹 계층) 또는 전체를 로드해야 한다. 진정한 단위 테스트"는 스프링이나 다른 컨테이너 없이 new 연산자를 사용하여 객체를 인스턴스화하고 테스트하는 것을 의미한다고 하셨습니다. 테스트 대상 범위: 또한 테스트는 특정 컨트롤러 메서드의 로직만을 격리하여 테스트하는 것이 아니라, 특정 URL에 대한 HTTP 요청이 스프링 웹 계층을 통과하여 컨트롤러에 도달하고, 컨트롤러의 응답이 HTTP 응답으로 변환되어 반환되는 전체 과정 중 일부를 시뮬레이션하고 검증하는 관점에서 통합테스트다 라고 주장하셨습니다. 정확한 구분은 어떻게 해야할까요? 사실 이러한 구분이 중요한가 고민도 됩니다. 어차피 테스트에 대한 목적과 경계 설정을 구분하는 것이 중요하지 않은가 싶긴 한데 우빈님 의견이 궁금합니다.
3사분위수 - 1사분위 수 값을 구할 때 선생님 처럼 r2, r1 변수 안 만들고 df = df[:int(len(df) * 0.7)] #70% 데이터 선택 IOQ = df['views'].quantile(.75) - df['views'].quantile(.25) print(IOQ) 이렇게 구해도 되나요?
요즘 서비스 계층 단위테스트를 위해 모킹과 fake 객체 구현을 공부하고 있습니다. 하지만 레포지토리를 일일이 모킹하는 코드를 작성하는 것이 빠른 피드백이 장점인 단위테스트로 의미가 있는지 의문이 들 정도로 시간이 많이 들더라고요. 그래서, 좀 더 효율적인 강사님의 방식을 따라가고 싶어 강의를 듣던 중 의문이 생겨서 질문드립니다. 1. 계층별 테스트 분리 기준에 대한 질문입니다. 컨트롤러, 레포지토리는 단위테스트, 서비스 계층은 레포지토리 부분과 통합테스트 이렇게 분리해서 진행하셨던 이유를 여쭤봐도 될까요? 서비스, 컨트롤러, 레포지토리 계층 각각 단위테스트를 작성하고 컨트롤러에서 레포지토리까지 한번 통합테스트를 작성하는 방법도 있을 것 같고, 묶어볼 방법은 몇 가지 더 있는 것 같습니다. 그런데 강의에서처럼 분리했던 게 가장 효율적이라고 생각하는 기준과 이유…. 이 분리 방식의 발견 과정이 너무 궁금하네요 2. 통합테스트 DB 관련 질문입니다. 서비스계층과 레포지토리 계층을 묶은 상태로 H2 같은 임베디드 데이터베이스를 사용하면 테스트 속도가 상당히 느리게 나오긴 합니다. 이런 부분은 어쩔 수 없이 안고 가는 것인가요? 그리고 운영이나 개발 DB를 postgress같이 H2말고 다른 걸 사용한다고 해도, H2로 통합테스트 테스트하는게 이점이 있을까요? 3. 서비스 계층 단위테스트 관련 질문입니다. 혹시, 부담이 안 된다면, 서비스 계층의 단위테스트가 중요도가 많이 떨어진다고 생각하시는 이유가 Fake든 Mockito를 사용한 Stub이든 데이터베이스를 흉내만 내는 테스트가 의미가 없다고 여기셔서 그런 것일까요? 부족한 질문 읽어주셔서 감사합니다!
제가 푼 내용을 보면 pred = rf.predict(test) : 질문자 pred = rf.predict(x_val) : 해설 위 두가지가 다릅니다. 해당 건 때문에 pred 했을 때, 값 차이가 많이 나는건가요? ㅜ_ㅠ 챗gpt에 물어보니 어떨때는 test고 어떨대는 x_val인지 아직도 모르겠습니다. # 라이브러리 및 데이터 불러오기 import pandas as pd train = pd.read_csv("https://raw.githubusercontent.com/lovedlim/inf/refs/heads/main/p4/8_2/churn_train.csv") test = pd.read_csv("https://raw.githubusercontent.com/lovedlim/inf/refs/heads/main/p4/8_2/churn_test.csv") # train.info() # test.info() target = train.pop('TotalCharges') train = pd.get_dummies(train) test = pd.get_dummies(test) train, test = train.align(test, join='left', axis=1) 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) from sklearn.ensemble import RandomForestRegressor rf = RandomForestRegressor(random_state=0) rf.fit(x_tr, y_tr) pred = rf.predict(test) submit = pd.DataFrame({'pred' : pred}) submit.to_csv('result.csv', index=False) ans = pd.read_csv('result.csv') print(ans)