작업형2 모의문제3에서 xgb모델을 사용할 때 max_depth 기본 설정이 3으로 되어 있어서 max_depth=3을 코드에 넣었을 때와 넣지 않았을 때가 값이 똑같아야 한다고 설명해주셨는데 저는 값이 다르게 나와요. 왜 다르게 나올까요.. 그리고 머신러닝 강의를 따라하다보면 결과 값이 종종 영상과 다르게 나오는 경우가 있는데 코드를 똑같이 작성해도 값이 다를 수 있나요? from xgboost import XGBClassifier xgb=XGBClassifier(random_state=2022) xgb.fit(X_tr,y_tr) pred=xgb.predict(X_val) pred_proba=xgb.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.9192546583850931 0.8444444444444444 0.8108108108108109 from xgboost import XGBClassifier xgb=XGBClassifier(random_state=2022, max_depth=3) xgb.fit(X_tr,y_tr) pred=xgb.predict(X_val) pred_proba=xgb.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.8975155279503105 0.8444444444444444 0.8108108108108109
강사님 안녕하세요. 강의 목차에는 없지만 SpringBoot + Kotlin 환경에서 Redis 캐싱 사용 관련되서도 여쭤봐도 될까요? Kotlin에선 직렬화 + 역직렬화 관련해서 자바 + lombok를 사용했던 방법과 살짝쿵 다르게 써야하더라구요.. 여러 방안을 생각중인데 어떤 방법이 Best Practice인지 궁금해서욥 감사합니다.
for col in cols le = labelencoder() C_Train[col] = le.fit_transform(C_train[col]) 여기에서요. col 이라는 피처는 for col 반복문 에서 처음 생겼는데 C_train[col] 변수에 담을 transform(c_train[col])의 피처 col은 어디서 생겨난지 모르겟어서요.. 반복문 처음에 col로 피처를 생성한거를 c_train[col]이라고 명시하는 순간 col 칼럼이 생기면서 그 값을 알아서 가져오는 건가요???
안녕하세요. 강의 열심히 듣고 있습니다. Hot-article 관련 테스트 코드 중, verify 메소드에 대해 잘 몰라서 하는 질문일수도 있겠으나 헷갈리어 질문 드립니다. HotArticleServiceTest.java 코드를 작성중에 @Test void handleEventIfScoreUpdatableEventTest() { // given Event event = mock(Event.class); given(event.getType()).willReturn(mock(EventType.class)); EventHandler eventHandler = mock(EventHandler.class); given(eventHandler.supports(event)).willReturn(true); given(eventHandlers.stream()).willReturn(Stream.of(eventHandler)); // when hotArticleService.handleEvent(event); // then verify(eventHandler, never()).handle(event); verify(hotArticleScoreUpdater).update(event, eventHandler); } 위의 코드에서, verify(eventHanler, never()).handle(event); 로 검증하는 부분이 왜 never() 가 되는걸까요? 강의중에 eventHandler 가 바로 불리지 않는다고 말씀하시긴 하셨는데, HotArticleService.java 의 handleEvent() 메소드 안에서 hotArticleScoreUpdater.update(event, eventHandler) 를 호출하면 update() 에서 전달한 eventHandler 의 handle() 메소드를 결국에는 사용하게 되지 않나요? verify가 외부클래스인 HotArticleScoreUpdater의 메소드에서 사용하는거까지는 검지하지 못하기 때문일까요?
안녕하세요. 「앞서 Airflow 예제를 개선해보자 (v3) - 실습 편」 강의 수강 중 궁금한 점이 있어 문의드립니다. DAG 실행 시 생성되는 tmp 파일이 제대로 생성되었는지 확인하고 싶어, CLI 환경이 아닌 웹 UI상에서 확인할 수 있는 방법이 있는지 알아보던 중 궁금한 점이 생겼습니다. /opt/airflow 디렉토리 구조는 CLI 환경에서만 확인 가능한 것인지, 웹 UI상에서는 해당 경로의 파일 구조를 직접 확인할 수 없는 것인지 궁금합니다. 추가로 확인이 가능한 부분이 있다면 현업에서는 어떻게 주로 확인하는지도 궁금합니다!
원래 원핫인코딩은 범주형 변수에만 적용가능하지 않나요? 강사님께서는 굳이 수치형과 범주형을 나누지 않고 train = pd.get_dummies(train), test = pd.get_dummies(test)하셨는데 이렇게 굳이 나누지 않고 원핫인코딩을 적용해도 괜찮나요?
안녕하세요! 3주차 강의 중 3-9까지 수강하던 중 궁금한 점이 생겨 질문드립니다. 강의에서는 새로운 테이블을 만들고 배치를 적용하여 쿼리 실행 속도를 향상시키는 방법을 설명해주셨는데, 제가 듣기로 이직 준비를 하면서 "A안과 B안이 있었는데, 그 중 B안이 더 적합한 이유는 ~였다"는 식으로 여러 해결책을 비교하고 선택한 근거를 설명하는 것이 좋다 는 조언을 자주 접했습니다. 그런데 이외에도 쿼리 성능을 튜닝하는 방법은 더 많을 거 같은데, 실무에서 그 방법들을 모두 비교한 뒤 선택하는 것이 현실적으로 쉽지 않을 것 같다는 생각이 들어서요.. 정리하자면 면접 자리에서 "왜 다른 방법은 고려하지 않았나요?"라고 질문이 들어올 수 있는데 이를 어떻게 준비해야 할지 궁금합니다. 실무나 면접에서 성능 개선 경험을 어필할 때, 모든 방안을 다 시도해본 것처럼 설명해야 할까요? 아니면, 제가 시도한 A안 중심으로 왜 그 방식이 효과적이었는지를 설명하고, 다른 방식도 있었다는 정도만 언급해도 괜찮을까요? 앞으로 성능 개선을 학습하고 경험을 쌓아갈 때 어떤 관점에서 문제를 접근하고 정리하면 좋을지도 함께 조언 주시면 감사하겠습니다.
2주차 끝 숙제 중 링크드리스트의 끝에서 k번째 값 출력하기 문제를 처음에 먼저 혼자 풀어볼 땐 링크드리스트를 순회하면서 각 노드를 따로 생성한 배열에 담고 return 할 땐 -k 인덱스로 끝에서 k번째 값을 가져오도록 해봤습니다. 답은 나오긴 하는데 혹시 이런 식으로 풀어도 되나요?? cur = self.head arr = [] while cur is not None: arr.append(cur) cur = cur.next return arr[-k]
캐글 이야기를 많이 하시고 저도 데이터 분석가라면 캐글에 친숙해지고 캐글 컴페티션을 잘해야 한다고 생각하는데요 캐글이 전부 영어로 되어있고 페이지 번역이 되긴하지만 실제 노트북에서 모델을 돌리는 과정이나 튜토리얼안의 스크립트나 코멘트들은 페이지번역도 안되는 문제가 있더라구요 어떻게 공부 하셨는지가 궁금합니다. 영어실력부터 쌓아야 하는건가요? 데이콘이라는 한국 사이트가 있긴하지만 대부분 유료화 되어있고 혹시 영어 원문 그대로 보셨는지 아니면 다른 방법이 있으셨는지도 궁금합니다.
안녕하세요 강사님, 강의 잘 듣고 있습니다. 혹시 슬라이드 형태로 공유 주시는 자료를 별도 pdf나 파일로 업로드 해주실 수 있으실지 문의드립니다. e.g.) 섹션 5. [작업형2] 머신러닝 및 평가지표 - 머신러닝 프로세스 매번 일부 슬라이드를 스크린샷 해서 보고 있어 살짝 불편합니다. 혹시 가능할지 확인해주시면 감사하겠습니다 :)
안녕하세요 좋은 강의 감사드립니다~ 게시글 목록 조회시 select * from article where board_id = 1 order by article_id desc limit 30 offset 1499970; 1.여기 쿼리문에서 where 절이 먼저 실행되어 (board_id, article_id) 생성된 secondary Index 에서 board_id = 1 인 데이터들을 찾아서 2.어차피 article_id 도 정렬이 되어 있으니 이 부분에서 offset 을 순차적으로 skip 하면서 결국에 마지막에 3.select * 문을 수행하는게 아닌가요? 2번 과정에서 order by article_id 를 위해 clusterd Index 에서 데이터를 조회하는 과정이 추가되나요? > 게시글 목록 API - 페이지 번호 기반 - N번 페이지, M개 게시글 - 설계 > 20:07 마지막에 최종적으로 select * 문을 조회할때만 clusterd Index 에서 데이터를 조회하는거 아닌가요? 왜냐하면 이미 secondary Index 에서 article_id 가 정렬되어 있기 때문에 그냥 skip 하고 마지막에만 clusterd Index 에서 데이터를 조회할 것 같습니다.
제가 일단 판다스기본 보고있는데.. 코드가 원리같은건 이해를 하겠는데 직접 타이핑할때 아직 세세하게 기억이 나질않아서 꼭 답을 보면 생각나더라구요.. 괄호 사용이나 메서드 사용법같은.. 현재 제 상태면 판다스 기본만 일단 계속 봐야하나요? 아니면 진도를 계속 나가도 되나요..? 이게 진도를 나가면서 문제통해서 배우는건지 판다스기본 완벽하게 마스터하고 나가야하는지 모르겠습니다 ㅠ
학습 관련 질문을 최대한 상세히 남겨주세요! 고민 과정도 같이 나열해주셔도 좋습니다. 먼저 유사한 질문이 있었는지 검색해보세요. 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요! 강의 재밌게 잘 듣고 있는 취준생입니다! 테스트 실행 도중에 데드락이 발생하여 이에 관해 여쭤보고자 합니다. 구체적으로인 상황은 article_view_count 테이블에 존재하지 않는 레코드를 삽입 AND 어플리케이션 실행 후, 첫 테스트 코드 실행 을 만족하는 상황에서 DeadLock 에러가 발생합니다. 아마 Lock 획득실패로 인한 에러가 표출되는것으로 보이며 에러 로그는 하단에 첨부했습니다. 제가 생각한 원인은 다음과 같습니다. UPDATE문임에 따라 해당 레코드에 X-Lock이 걸리며, 100개의 요청마다 UPDATE쿼리가 날라가지만, 첫 INSERT 요청의 트랜잭션이 완료되지 않아 이후의 트랜잭션이 잠금 대기 롤백 첫 INSERT 요청이 오래 걸리는 이유를 알고 싶습니다. 양질의 강의 제공해주셔서 감사합니다! 2025-05-01T19:46:27.647+09:00 WARN 27109 --- [kuke-board-view-service] [io-9003-exec-63] o.h.engine.jdbc.spi.SqlExceptionHelper : SQL Error: 1213, SQLState: 40001 2025-05-01T19:46:27.647+09:00 ERROR 27109 --- [kuke-board-view-service] [io-9003-exec-63] o.h.engine.jdbc.spi.SqlExceptionHelper : Deadlock found when trying to get lock; try restarting transaction Hibernate: update article_view_count set view_count = ? where article_id = ? and view_count < ? 2025-05-01T19:46:27.653+09:00 ERROR 27109 --- [kuke-board-view-service] [io-9003-exec-63] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: org.springframework.dao.CannotAcquireLockException: could not execute statement [Deadlock found when trying to get lock; try restarting transaction] [insert into article_view_count (view_count,article_id) values (?,?)]; SQL [insert into article_view_count (view_count,article_id) values (?,?)]] with root cause com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException: Deadlock found when trying to get lock; try restarting transaction
type 확인 후 cols = ['age', 'fnlwgt', 'education.num', 'capital.gain', 'capital.loss', 'hours.per.week'] 이렇게 수치형 데이터의 열만 복사하는 거 말고 cols = X_ train.select _dtypes(exclude='object').copy()를 사용해도 되나요?
스케일링, 인코딩 등 데이터 작업후에 위로 올라가서 다시 실행하면 처음이라 결과값이 달라지고 오류가 생기는데 한 번 실행한 작업은 다시 건드리면 안되나요? 라벨인코딩, 원핫인코딩 모두 실행하고 분리한 데이터 다시 합쳤을 때 컬럼이 107로 나와야하는데 처음이랑 그대로인 15가 나오더라구요 다시 올라가서 실행하니 전부 오류가 뜹니다 ㅜㅠ!!