#1.문제정의 #평가:ROC-AUC #target:'성별' 1 #최종파일:"result.csv"(컬럼 1개 pred, 1확률값) #2.라이브러리 및 데이터 불러오기 import pandas as pd train = pd.read _csv("data/customer_train.csv") test = pd.read _csv("data/customer_test.csv") #3.탐색적 데이터분석(EDA). shape head info isnull.sum. value_counts. describe target pd.set_option('display.max_columns', None) print(train.shape, test.shape) print(train.head(2)) print(test.head(2)) print( train.info ()) print( test.info ()) print(train.isnull().sum()) print(test.isnull().sum()) print(train['성별'].value_counts()) #결측치채우기 train = train.fillna(0) test = test.fillna(0) print(train.isnull().sum()) print(test.isnull().sum()) # 4.데이터전처리 - object데이터를 인코딩 df = pd.concat([train,test]) df = pd.get_dummies(df) train = df[:len(train)].copy() test = df[len(train):].copy() print(train.shape, test.shape) #5. 검증 데이터 분할 from sklearn.model_selection import train_test_split X_tr, X_val, y_tr, y_val = train_test_split(train.drop('성별', axis=1), train['성별'], test_size=0.2, random_state=10) print(X_tr.shape, X_val.shape, y_tr.shape, y_val.shape) #6. 머신러닝 학습 및 평가 from sklearn.ensemble import RandomForestClassifier from sklearn.metrics import roc_auc_score model = RandomForestClassifier(random_state=0) model.fit (X_tr, y_tr) pred = model.predict_proba(X_val) score = roc_auc_score(y_val, pred[:,1]) print(score) # 7. 예측 및 평가 파일 생성 pred = model.predict_proba(test) submit = pd.DataFrame({'pred':pred[:,1]}) submit.to _csv("result.csv") print( pd.read _csv("result.csv")) 이렇게 했는데요. pred = model.predict_proba(test)만 작성하면 오류가 나는 이유가 뭘까요?? Makefile:6: recipe for target 'py3_run' failed make: *** [py3_run] Error 1 Traceback (most recent call last): File "/goorm/Main.out", line 64, in <module> pred = model.predict_proba(test) File "/usr/local/lib/python3.9/dist-packages/sklearn/ensemble/_forest.py", line 674, in predict_proba X = self._validate_X_predict(X) File "/usr/local/lib/python3.9/dist-packages/sklearn/ensemble/_forest.py", line 422, in validate X_predict return self.estimators_[0]._validate_X_predict(X, check_input=True) File "/usr/local/lib/python3.9/dist-packages/sklearn/tree/_classes.py", line 407, in validate X_predict X = self._validate_data(X, dtype=DTYPE, accept_sparse="csr", File "/usr/local/lib/python3.9/dist-packages/sklearn/base.py", line 421, in validate data X = check_array(X, **check_params) File "/usr/local/lib/python3.9/dist-packages/sklearn/utils/validation.py", line 63, in inner_f return f(*args, **kwargs) File "/usr/local/lib/python3.9/dist-packages/sklearn/utils/validation.py", line 720, in check_array assert all_finite(array, File "/usr/local/lib/python3.9/dist-packages/sklearn/utils/validation.py", line 103, in assert all_finite raise ValueError( ValueError: Input contains NaN, infinity or a value too large for dtype('float32').
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] HelloSpringApplication.java 의 main 실행 했을 때 사진과 같은 화면이 뜹니다. locallhot는 연결이안됩니다. JDK는 17.0.11.9 버전으로 다운받았습니다. 어디가 잘못된걸까요..
실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
안녕하세요 강사님 강의를 들으면서 이번에 처음 JPA를 알아가고 있는 중입니다. 헌데 궁금한점이 JPA 특성인것인지 아니면 H2 DB 문제인지 그것도 아니면 제 Intellij 설정 문제인지 모르겠지만 select가 두번이 되는 이유가 무엇때문이지 궁금해서 질문 드립니다. 실질적인 동작에 문제가 생기지는 않겠지만 N+1 관련 강의를 듣다보니 불필요하게 쿼리가 호출되면 안좋은것 같아 여쭈어 봅니다. @Test @DisplayName("대출 기록이 없는 유저도 응답에 포함") fun getUserLoanHistoriesTest() { //given userRepository.save(User("A",null)) //when val results = userService.getUserLoanHistories() //then assertThat(results).hasSize(1) assertThat(results[0].name).isEqualTo("A") assertThat(results[0].books).isEmpty() } 위의 코드를 동작시켰을때 Hibernate: insert into user (id, age, name) values (default, ?, ?) Hibernate: select user0_.id as id1_1_, user0_.age as age2_1_, user0_.name as name3_1_ from user user0_ Hibernate: select userloanhi0_.user_id as user_id4_2_0_, userloanhi0_.id as id1_2_0_, userloanhi0_.id as id1_2_1_, userloanhi0_.book_name as book_nam2_2_1_, userloanhi0_.status as status3_2_1_, userloanhi0_.user_id as user_id4_2_1_ from user_loan_history userloanhi0_ where userloanhi0_.user_id=? Hibernate: select user0_.id as id1_1_, user0_.age as age2_1_, user0_.name as name3_1_ from user user0_ Hibernate: select userloanhi0_.user_id as user_id4_2_0_, userloanhi0_.id as id1_2_0_, userloanhi0_.id as id1_2_1_, userloanhi0_.book_name as book_nam2_2_1_, userloanhi0_.status as status3_2_1_, userloanhi0_.user_id as user_id4_2_1_ from user_loan_history userloanhi0_ where userloanhi0_.user_id=? Hibernate: delete from user where id=? 출력 부분에 위에 처럼 뜨는데요 제가 이해한 바로는 insert는 save 때문에 한번인 반면에 getUserLoanHistoreies 부분에 findAll로 한번의 쿼리를 불러오는 거라서 user와 와 userloanhistory 테이블을 각각 한번 씩 조회 해야 하지 않는가 싶어서 질문 드립니다. 추가로 확인해 보보니 LEFT join에 fetch를 추가했을때 위의 select user와 user_loan_history는 left join 쿼리문으로 변한는 반면 아래의 select user와 user_loan_history는 남아 있습니다. 따로 user를 find 하는 곳이 없는 것 같은데 이런 현상이 나오는 이유가 뭘까요?.... 추측 하기로는 AfterEach로 clear할때 deleteAll을 사용해서 사용했던 테이블을 모두 select 하는건가 싶긴 한데... 제가 이해를 잘 못해서 그런건지 이부분이 어렵네요....
안녕하세요 선생님, 작업형3 범주형 변수 인코딩 질문드립니다. [예시문제 작업형3(신버전)]의 6:37 부분을 보면 Gender는 인코딩이 되지않아서 C로 감싸주시더라구요. 근데 [시험응시전략] 강의에서는 '회귀, 로지스틱 회귀에서 숫자이지만, 범주형 변수로 명시된 것이 있다면 C()로 감싸서 처리할 것, 범주형 변수 object 값이 문자로 있다면 알아서 바꿔준다'라고 말씀하셨어요. 이부분이 헷갈립니다. 1) [시험응시전략]에서 말씀대로라면 [예시문제 작업형3]의 Gender는 C 처리할 필요없이, 알아서 바뀌는게 아닌가요? 2) 캐글에 T3-2-example-py 을 보면, 여기서는 gender를 C로 감싸서 인코딩 해주지 않으셨더라구요. 기준이 헷갈립니다.
'age'컬럼의 이상치를 모두 더하시오! print(sum(df['age']<lower) + sum(df['age']>upper)) 컬럼의 이상치를 다 더한다는 의미를 이렇게 해석했는데,, # 이상치 age합 print(df[cond1|cond2]['age'].sum()) 왜 선생님은 '또는'이라는 조건을 사용하셨나요?
안녕하세요. 섹션12 3회 기출유형 작업형 1 강의 9:54 경에서 '하드코딩 하지말라' 라는 메시지가 나오는데, 정답이 있는 작업형 1, 3은 정답만 맞으면 만점처리 되는거 아닌가요? 하드코딩을 하거나 눈으로 세거나 혹시 채점하면서 코드문(풀이과정)까지 봐서, 답은 맞아도 풀이가 정답이 아니라면 틀릴수도 있나요...? 아래 비슷한 질문이 있는거같은데, 응시자 유의사항 보면 정답만 맞추라는 뉘앙스인데, 이번 8회 실기는 어떻게 해야하나요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] PDF 교안 최신버전(20240411 ver)으로 다시 확인해봤는데 Caw 오타 그대로인거 같아서 문의드립니다.
선생님! 작업형 2 문제 푸는 방식을 정해서 시험장에서 그 방식대로만 풀려고 하는데 혹시 회귀나 분류 모두 randomforest 하나만 사용해서 학습시켜 예측값을 도출해도 2유형에서 고득점 받는데 무리 없을까요? 다른 모델 식까지 외우기에는 너무 시간이 많이 걸릴거 같아서요 ㅎㅎ 혹시 랜포말고 더 추천하시는 모델이 따로 있을까요?
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 안녕하세요 강사님 수업 잘 듣고 있습니다! 다름이 아니라 제가 분류/회귀 문제에서 랜덤포레스트와 xgboost 두 가지 코딩을 이용하려 하는데 이번 문제의 경우 랜덤포레스트는 돌아가지만 xgboost 같은 경우는 오류가 발생하더라구요 모든 데이터에 사용 가능한 줄 알았는데 데이터마다 사용할 수 있는 모델이 한정적인가요?? from xgboost import XGBClassifier model = XGBClassifier() model.fit(X_tr, y_tr) pred = moedl.predict(X_val) 위와 같이 실행했고, 아래는 에러코드입니다! ValueError: Invalid classes inferred from unique values of `y`. Expected: [0 1 2 3], got [1 2 3 4]
========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 안녕하세요. 정말 JPA를 제대로 배우며 유익한 시간을 보내고 있는 수강생입니다. 질문 1. 페치조인2 - 한계 강의를 듣던 중 @BatchSize 를 조절하여 N+1 문제를 해결하는 예시를 보여주시는데 보여주신 예시의 로그와 제가 테스트 해봤을 때의 로그가 좀 다르게 나와 질문드립니다. 인강에서 보여주실 때에는 load one-to-many 라고 주석이 달리면서 실제 조건문에서는 ? 가 2개만 찍혀있는데 제가 테스트 해보니 BatchSize에 지정해준 숫자 만큼 로그에 ? 가 찍히는것을 확인 할 수 있었습니다. 혹시 제가 잘 못 테스트 한 것 일까요? 질문 2. 또한 강의에서 일반적으로 BatchSize 를 전역 설정으로 해놓고 100~1000 사이의 크기를 지정하여 사용하신다고 말씀하셨는데 이는 DB 조회 쿼리 횟수는 줄어들어 N+1 문제는 완화할수 있지만 지연 로딩 시 내가 접근한 객체의 수 만큼만 로드하는 것이 아닌 무조건 배치 사이즈 만큼 로드되기 때문에 그 간격이 크면 메모리적인 낭비가 되는거 아닌가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. for (int i = 0; i < numbers.size(); i++) { System.out.print(numbers.get(i)); if(i<numbers.size()-1){ System.out.print(", "); } } i < number.size()-1 쪽이 제대로 이해가 안되는거같아서 질문합니다. 정수 입력을 1,2,3 입력했으면 numbers.size() = 3 i값 = 0 , numbers.size =3 i값 = 1 , numbers.size = 3 마지막 반복인 i값 = 2 , numbers.size = 3 을 할때는 2<3-1 은 맞지않으니 마지막 3뒤에 " , " 출력안됨 제가 이해한게 맞을까요 ?