묻고 답해요
143만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Airflow 마스터 클래스
db 통신 라이브러리 사용에 궁금한 부분이 있습니다.
안녕하세요 강사님! 강의 잘 보고 있습니다! 다름이 아니라 개인적으로 공부를 하면서 db와의 통신 부분에서 궁금한 부분이 생겨서 질문드립니다! 에어플로우를 공부하면서 mysql 컨테이너도 함께 띄워서 db와의 통신을 공부하고 있고, 현재 db에 접속해서 저장된 데이터를 불러오고, 새로운 데이터를 insert하는 실습을 하고 있습니다. 몇몇 소스 코드를 보면 데이터를 불러오기 위해서 db와 연결하거나, db의 데이터를 조회할 때는 psycopg2나 pymysql과 같은 라이브러리를 사용하고, 수집 후 전처리된 데이터를 저장 할 때는 SQLAlchemy를 사용하는 코드들을 많이 봤는데, 이렇게 작업에 따라서 다른 라이브러리를 사용하는 이유를 알 수 있을까요?? 제가 알기로는 psycopg2나 pymysql, SQLAlchemy 모두 데이터 조회, 저장 기능을 전부 사용가능한걸로 아는데 어떤 이유에서 작업별로 다른 라이브러리를 사용하는지 궁금합니다!
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형3 정답 제출할 때
체험환경에서 작업형3 정답을 기록할 때 이전 체험 페이지에서 print한 정답을 확인할 수 없던데, 3개의 소수점 데이터를 외워서 정답에 기록해야 하는건가요? 보통 정답을 기록하는 방식이 있는지 궁금합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
범주형 변수 인코딩 관련 질문입니다
올려주신 코드를 다시 학습하기에는 머리가 너무 복잡해서 ..카테고리가 같더라도 데이터셋을 합친 후 인코딩 실행, 이후 분리해줘도 크게 상관 없죠 ?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
레이블 인코딩 오류가 떳나 안떳다 해요
이 오류가 뜨는데, 코딩에는 문제가 없어서 앞에서 부터 다시 실행하면 오류 안뜨다가 다시 재 실행하면 뜨다가 합니다... 선생님 해주신 그대로 따라하면서 공부하고 있기 때문에 틀린 부분은 없습니다.또한 똑같은 코딩을 실행해도 어떨땐 되고 어떨땐 안되서 난감합니다. 어떻게 해야 할까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
2유형 랜덤포레스트 회귀 작업중 워닝 메시지
데이터 결측치 전처리 하는데 이렇게 코드 작업을 했더니 워닝 메시지가 뜨는데시험환경에서도 수정이 필요할까요?# 데이터 전처리 _ 결측치 대체 df['fuel_type'].fillna(df['fuel_type'].mode()[0], inplace = True) df['accident'].fillna(df['accident'].mode()[0], inplace = True) df['clean_title'].fillna(df['clean_title'].mode()[0], inplace = True) [워닝메시지]<ipython-input-37-b2145d16d236>:15: FutureWarning: A value is trying to be set on a copy of a DataFrame or Series through chained assignment using an inplace method. The behavior will change in pandas 3.0. This inplace method will never work because the intermediate object on which we are setting values always behaves as a copy. For example, when doing 'df[col].method(value, inplace=True)', try using 'df.method({col: value}, inplace=True)' or df[col] = df[col].method(value) instead, to perform the operation inplace on the original object. df['fuel_type'].fillna(df['fuel_type'].mode()[0], inplace = True)
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
predict_proba(test)에서 오류가 나요
혼자 문제를 풀어보고 있는데요 여기서 마지막에 평가할때 pred=rf.predict_proba(test) 에서 계속 오류가 납니다..이렇게 오류가 나는 이유가 뭘까요,,,원래 하던데로 그대로 하고 있는데요ㅠ문제가 roc로 평가하는거라서 predict_proba로 하고 있어요
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
기출 8회 데이터 drop
저는 데이터를 drop하지 않고 그냥 바로 target = train.pop['타켓컬럼']한뒤 바로 train =pd.get_dummies(train)test =pd.get_dummies(test) 를 바로해주는데,, 꼭 id값을 drop 해야하나요? 안하면,, 결과가 많이 안좋나요?
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
sum()함수 질문
안녕하세요.저는 지금까지 실습을 할 때 sum()함수의 괄호 안에 아무것도 넣지 않고 진행을 했습니다.그런데 9회 실기 응시가이드 영상을 보니 괄호 안에 sum(numeric_only=True) 를 넣으라고 하셨는데요.그냥 sum함수를 쓸 때마다 무조건 sum(numeric_only=True)를 넣으면 되는 건가요?아니면 9회 실기 응시가이드 영상에서 보여주신 대로 에러가 발생할 때만 넣어주면 되는 건가요?numeric_only=True를 어떤 상황에서 넣어야 되는건지 정확히 모르겠어서 질문 남깁니다.
-
미해결고수가 되는 파이썬 : 동시성과 병렬성 문법 배우기 Feat. 멀티스레딩 vs 멀티프로세싱 (Inflearn Original)
threadpoolexecutor.submit 실행 시 순차 실행
안녕하세요 py_ad_1_5.py 파일 관련 강의 듣다가 질문 드립니다. threading.Thread로 스레드 직접 두 개 만들어서, start()를 했을 때는 두 작업이 병렬적으로 진행되는 것으로 보였는데요 (First, Second에 해당하는 logging이 번갈아 찍혔습니다)하지만, executor.submit으로 실행시에는 First task에 해당하는 logging이 전부 끝난 다음에 Second task에 해당하는 logging이 시작되는 것을 확인했습니다. submit으로 실행시에는 내부에 join이 있다거나 별도의 동작이 있는 걸까요?
-
미해결[2024 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
파이썬 세레니움 for 반복문 메인페이지로 돌아가기
강사님 안녕하세요바쁘실텐데 문의를 드리게 됩니다.파이썬 셀레니움 for 반복문으로 메인페이지에서 하부 화면으로 이동하고 이동하면 하부 화면에 나오는 여러 페이지를 돌면서 작업을 수행하는 코딩을 하려고 합니다.그런데 하부 화면에 나타나는 페이지 전체를 돌면서 작업 수행을 마치고 다시 최상이 for 문이 시작되는 메인 화면으로 돌아가서 다시 메인 두번째 상품에 대한 반복문이 시작되어야 하는데 시작 못하고 멈처버립니다.첫번째 상품의 모든 작업이 끝나는 마지막 코딩에서 메인 for 문이 시작되는 사이 부분에서 문제가 발생하는 것같습니다.파이썬 정적페이지가 있고 동적페이지가 있다고 수강했습니다.정적 페이지는 뷰티풀슢으로 하고 동적 페이지는 셀레니움으로 해야 되고코딩을 하다보면 정적 페이지에서의 FOR 문은 거의 에러 나는 부분이 없이 반복이 잘 되는데동적페이지 셀레니움으로 FOR 문을 코딩하면 에러날 때가 많네요 정적페이지는 첫번째 반복문 수행을 다하고 따로 마지막부분에서 메인페이지로 돌아가는 부분에 다른 명령어를 넣지 않아도 지가 알아서 다시 반복문을 수행하는데동적페이지는 그렇지가 않나 봅니다. 첫번째 작업 수행 끝나는 종료 코딩 다음 부분에 최상단 상품이 사작되는 메인 페이지로 돌아가게 하는 어떤 명령어가 추가 되어야 다시 처음으로 돌아가서 두번째 상품 작업 수행을 하는 것같습니다여기서 몇 단계 하부 페이지로 들어갔다가 작업끝나고 다시 처음 메인 페이지로 돌아가게 하는 코딩을 이것 저것 해보아도 돌아가지를 못하거나 처음 시작 페이지로 화면상으로는 돌아갔는데 두번째 상품에 대한 작업을 진행 못하는 상태로 멈처버립니다.이부분에서의 해결책을 찾고싶습니다.다른 여러 프로그램 언어에 통달하고 있는 분들에게는 아 주 쉽게 해결할 것 같은데 다른 부분은 전혀 모르고 파이썬을 처음 시작하고 단편적으로 알고 있는 지식의 한계에서 이것 저것 시도해 보았으나 결국 해결 못하고 문의를 하게 됩니다.번거롭지만 좋은 답변 주시면 감사하겠습니다. import requests from bs4 import BeautifulSoup import pandas as pd from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys import time from selenium.webdriver.support.select import Select from selenium.webdriver.common.alert import Alert from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC param = { 'pmtn_cls_cd': 11, 'pmtn_seq': 3, 'pmtn_year': 2024, 'pmtn_cnt': 1201, 'comp_cd': 'C', 'pmtnSearch': 'Y', 'include_delete': 'Y', } driver = webdriver.Chrome() # 사이트 불러 오기 url = 'https://ctx.cretec.kr/CtxApp/ssp/selectSbarPmtnList.do' driver.get(url) # 로그인 user_id = '17616921' user_pw = 'zmfhtm10mm**' # 로그인 완료 후 신바람 화면으로 넘어감 id = driver.find_element(By.CSS_SELECTOR, '#ctxId' ) id.send_keys(user_id) time.sleep(1) pw = driver.find_element(By.CSS_SELECTOR,'#password') pw.send_keys(user_pw) time.sleep(1) login = driver.find_element(By.CSS_SELECTOR, '#ctxUserVO > button') login.click() time.sleep(3) #for i in range(1, 15): # 상품 메인 페이지로 들어감 items = driver.find_elements(By.CSS_SELECTOR, '.promore> span') print(len(items)) time.sleep(5) # 메인 페이지 상품그룹을 반복문으로 차례로 입력 for i in items: time.sleep(5) i.click() time.sleep(5) # list 페이지로 진입 #1.스크롤 페이지 번호가 보이도록 내림 #tag = driver.find_element(By.CSS_SELECTOR, '#list > nav > ul') #driver.execute_script("arguments[0].scrollIntoView(true)", tag) #time.sleep(5) pages = driver.find_elements(By.CSS_SELECTOR, '#list > nav > ul > li.page-item.cur-pager > a') page = int(len(pages)) time.sleep(2) # 내부 생세 리스트 페이지로 들어와서 페이지 수 만큼 반복하면서 작업 수행 for j in range(1, page+1): driver.get(f"https://ctx.cretec.kr/CtxApp/ctx/selectPowerSearchList.do?keyword=&smartKeyword=&prod_cd=&item_nm=&brnd_nm=&item_stdz=&modl_no=&agg_brnd_cd=&agg_pmtn=&agg_contentInfo=&agg_origCounDest=&sort=&agg_cate_1=&agg_cate_2=&agg_cate_3=&agg_cate_4=&pmtn_cls_cd=11&pmtn_seq=3&pmtn_year=2024&pmtn_cnt=1201&comp_cd=C&cateSearch=&pmtnSearch=Y&page={j}&rows=&listType=&prodcontents=&prod_cd_multi=&include_delete=Y") time.sleep(5) # 리스트 박스 체크 driver.find_element(By.CSS_SELECTOR, '#powerSearchList > thead > tr:nth-child(1) > th:nth-child(11) > label').click() time.sleep(1) # 장바구니 담기 클릭 driver.find_element(By.CSS_SELECTOR, '#content-container > div.content > div.content-body > div.tab-content > div.searchBtn.current > div > div > button:nth-child(6)').click() time.sleep(1) # 반품불가 클릭 itemback = driver.find_element(By.CSS_SELECTOR, '#showRtnImpsPopup_ok') if "예(장바구니 담기)" in itemback.text: itemback.click() time.sleep(2) #elif "예(장바구니 담기)" not in itemback.text: # driver.find_element(By.CSS_SELECTOR, 'body > div.ui-dialog.ui-corner-all.ui-widget.ui-widget-content.ui-front.alert.ui-dialog-buttons.ui-draggable > div.ui-dialog-buttonpane.ui-widget-content.ui-helper-clearfix > div > button').click() # time.sleep(2) # else: driver.find_element(By.CSS_SELECTOR, 'body > div.ui-dialog.ui-corner-all.ui-widget.ui-widget-content.ui-front.alert.ui-dialog-buttons.ui-draggable > div.ui-dialog-buttonpane.ui-widget-content.ui-helper-clearfix > div > button').click() time.sleep(5) if j == (page): print(j) # 여기서 다시 첫번째 최상위 메인 for 문으로 돌아가서 메인 두 번째 상품에 대한 작업을 수행해야 되는데 돌아가는 방법을 모르겠음 # 생각해 볼 수 있는 방법으론 # 1. driver.back() # 2. driver.switch_to.default_content() # 3. driver.switch_to.window(driver.window_handles[0]) # ...... 등 해봐도 멈처비리네요
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
로지스틱회귀모형에서 C()
안녕하세요.작업형3 로지스틱회귀모형 캐글 문제를 보니 Pclass에만 C()처리하고, Gender는 object형임에도 C()처리 하지 않으셨더라구요. C()는 범주가 3개 이상일 때만 해당되고 범주가 2개일 때는 처리하지 않아도 된다고 이해하면 될까요?model = logit("Survived ~ C(Pclass) + Gender + SibSp + Parch", data=df).fit()
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
np_exp를 쓸필요가 없나요?
섹션5 모델링 평가(회귀) 파트입니다 # RandomForestRegressor from sklearn.ensemble import RandomForestRegressor model = RandomForestRegressor() model.fit(X_tr, y_tr) pred = model.predict(X_val) rmse(np.exp(y_val), np.exp(pred)) # 4691.498598226366 베이스라인 # 4722.06683465538 스탠다드스켈러 # 4705.862619729388 민맥스 스켈러 # 4627.730520367604 log
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
기출2회 2유형 concat
기출 2회는 특이하게, X_train, y_train , X_test 데이터가 있잔하여,, df = pd.concat([x_train, y_train['reached~~']], axis =1)df 로 합치는 이유가 뭔가요? 어차피 df데이터를 따로 활용하는 것도 아니고,, train_test_split 할때도, X_train, y_train 따로 넣어주잖아요,,, 굳이 해야하는 과정인가요?? 분리되어있으면 target = train.pop(['ddd']) 과정을 굳이 안해도 되는 ,, 상황 아닌가요??
-
미해결FastAPI 완벽 가이드
lifespan 적용 관련 문의
안녕하세요 강사님강의 열심히 잘 듣고 있습니다.덕분에 FastAPI에 대한 재미를 더 많이 가지고 있어 감사할 따름입니다. lifespan 적용하신 강의 관련해서 질문이 있습니다.저는 현재 환경을 강의 내용과 다르게 진행하고있습니다. mysql이 아닌 postgresql로 진행하고 있고,postgresql + asyncpg를 이용하여 비동기 처리를 하고있습니다. lifespan 부분을 적용 시 아래 오류가 발생되고있습니다. Exception terminating connection <AdaptedConnection <asyncpg.connection.Connection object at 0x00000257982897B0>>Traceback (most recent call last): File "D:\personnel\Python\fastapi\fastapi_pguide-main\fastapi_pguide-main\AsyncDB_Handling\.venv\lib\site-packages\sqlalchemy\pool\base.py", line 374, in closeconnection self._dialect.do_terminate(connection) File "D:\personnel\Python\fastapi\fastapi_pguide-main\fastapi_pguide-main\AsyncDB_Handling\.venv\lib\site-packages\sqlalchemy\dialects\postgresql\asyncpg.py", line 1117, in do_terminate dbapi_connection.terminate() File "D:\personnel\Python\fastapi\fastapi_pguide-main\fastapi_pguide-main\AsyncDB_Handling\.venv\lib\site-packages\sqlalchemy\dialects\postgresql\asyncpg.py", line 910, in terminate self._connection.terminate() File "D:\personnel\Python\fastapi\fastapi_pguide-main\fastapi_pguide-main\AsyncDB_Handling\.venv\lib\site-packages\asyncpg\connection.py", line 1515, in terminate self._abort() File "D:\personnel\Python\fastapi\fastapi_pguide-main\fastapi_pguide-main\AsyncDB_Handling\.venv\lib\site-packages\asyncpg\connection.py", line 1567, in _abort self._protocol.abort() File "asyncpg\\protocol\\protocol.pyx", line 608, in asyncpg.protocol.protocol.BaseProtocol.abort File "C:\Users\user\AppData\Local\Programs\Python\Python310\lib\asyncio\selector_events.py", line 686, in abort self._force_close(None) File "C:\Users\user\AppData\Local\Programs\Python\Python310\lib\asyncio\selector_events.py", line 737, in forceclose self._loop.call_soon(self._call_connection_lost, exc) File "C:\Users\user\AppData\Local\Programs\Python\Python310\lib\asyncio\base_events.py", line 753, in call_soon self._check_closed() File "C:\Users\user\AppData\Local\Programs\Python\Python310\lib\asyncio\base_events.py", line 515, in checkclosed raise RuntimeError('Event loop is closed')RuntimeError: Event loop is closedThe garbage collector is trying to clean up non-checked-in connection <AdaptedConnection <asyncpg.connection.Connection object at 0x00000257982897B0>>, which will be terminated. Please ensure that SQLAlchemy pooled connections are returned to the pool explicitly, either by calling ``close()`` or by using appropriate context managers to manage their lifecycle.sys:1: SAWarning: The garbage collector is trying to clean up non-checked-in connection <AdaptedConnection <asyncpg.connection.Connection object at 0x00000257982897B0>>, which will be terminated. Please ensure that SQLAlchemy pooled connections are returned to the pool explicitly, either by calling ``close()`` or by using appropriate context managers to manage their lifecycle. 위와 같은 오류가 발생되고 있습니다. 방법을 찾아보려 gpt에게 문의도 해봤지만 강의 내용과 동일하거나 또는 starting, shutting (구 FastAPI)방식을 알려주고 있습니다. 나름 응용을 해보겠다고 진행한 건데.. 번거로운 질문 드려 죄송합니다.ㅜㅜ 제가 구성한 환경은 이와 같이 진행하였습니다. 참고부탁드리겠습니다. python =="^3.10" fastapi == "0.115.4" uvicorn == "0.32.0" python-multipart == "0.0.17" python-dotenv == "1.0.1" jinja2 == "3.1.4" sqlalchemy == "2.0.36" psycopg == {extras = ["binary", "pool"], version = "^3.2.3"} asyncpg == "^0.30.0" aiofiles == "24.1.0"감사합니다.
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형2에서 train, test 합쳐서 인코딩 후 분리하는 부분 질문입니다.
안녕하세요 강사님! [3-4 Feature engineering.ipynb] 파일 복습 중에 # train, test 합쳐서 인코딩 후 분리하기 cols = list(X_train.columns[X_train.dtypes == object]) print(X_train.shape, X_test.shape) all_df = pd.concat([X_train, X_test]) all_df = pd.get_dummies(all_df[cols]) line = int(X_train.shape[0]) X_train = all_df.iloc[:line,:].copy() X_train X_test = all_df.iloc[line:,:].copy() X_test print(X_train.shape, X_test.shape)이부분에서 '원핫인코딩' 대신 '레이블인코딩'을 하면 어떻게 해야될지 의문점이 생겼습니다.레이블 인코딩시에는 train데이터에는 fit_transform() 을 하고 test 데이터에는 transform() 을 하는 것으로 알고 있는데 X_train 데이터와 X_test 데이터를 합쳤을 때는 fit_transform(), transform() 둘 중 어떤 것을 사용하고나서 분리해야되는지 궁금해서 질문 드립니다!아래는 fit_transform()을 이용해서 구현해본 코드입니다.X_train.shape, X_test.shape df = pd.concat([X_train, X_test]) df.select_dtypes(include='O').columns c_cols = ['workclass', 'education', 'marital.status', 'occupation', 'relationship', 'race', 'sex', 'native.country'] df.select_dtypes(exclude='O').columns n_cols = ['age', 'fnlwgt', 'education.num', 'capital.gain', 'capital.loss', 'hours.per.week'] from sklearn.preprocessing import LabelEncoder for col in c_cols: le = LabelEncoder() df[col] = le.fit_transform(df[col]) line = len(X_train) X_train = df.iloc[:line,:].copy() X_test = df.iloc[line:,:].copy() print(X_train.shape, X_test.shape)
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
예시문제 작업형2(신 버전) 모델 학습 질문
코드 1 model.fit(train[cols], target)라고 X_val값에 train[cols]을 대입한 걸로 이해했는데, 코드2검증용 데이터의 train은 라벨인코더가 된 cols가 포함된 train 값이라 그냥 train으로 적은 건가요? 갑자기 헷갈려서 여쭤봅니다 ㅠㅠ,,,..
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
시험환경에서 sum, len 사용시
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요시험환경에서 sum, len 등 함수 사용시 numeric_only=True 입력하지않아도 결과가 나오는데 무조건 적어야하는걸까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
8회 기출 작업형1 문제3번 minmax 스케일링 , 스탠다드스케일링 질문
8회 기출에서 민맥스 스케일링 풀이에서는 from sklearn.preprocessing import MinMaxScalerscaler=MinMaxScaler()민맥스스케일러를 스케일러로 받아와서 풀이하잖아요 전~에 앞쪽에서 풀이 해주신 코드로 외워서 저는from sklearn.preprocessing import minmax_scale로 바로df['특정컬럼']=minmax_scale(df['특정컬럼'])이렇게 하는게 더 쉬워서 이걸로 외워져서 풀었는데 혹시 스탠다드 스케일링도 저렇게 바꿔 쓰는 import 가 있나요!? ㅜㅜ from sklearn.preprocessing import StandardScalerscaler=Standardscaler()df[' ']=scaler.fit_transform(df[[' ']]) 이렇게 sclaer 로 받아오는 풀이밖에 없나용 ㅠㅠimport 뒤를 살짝씩 바꿔봐도 다 오류가 뜨네요 ㅜ ㅜ
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
시험환경에서 세션종료
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요코랩에서는 제대로 돌아가는 코드를 시험환경에 넣었더니 실행시간 1분이 넘어 세션이 종료됩니다ㅠ잘못된 부분이 있는지, 혹시 시험시간에도 이런 상황이 생긴다면 해결방안 있을까요?import pandas as pd train = pd.read_csv("https://raw.githubusercontent.com/lovedlim/inf/main/p2/heart/2files/train.csv") test = pd.read_csv("https://raw.githubusercontent.com/lovedlim/inf/main/p2/heart/2files/test.csv") # train = pd.read_csv("train.csv") # test = pd.read_csv("test.csv") #train.shape, test.shape #((242, 15), (61, 14)) #train.isnull().sum() #결측치 없음 y_train = train['output'] train = train.drop(['id', 'output'], axis=1) test_id = test.pop('id') #train.shape, test.shape #((242, 13), (61, 13)) n_cols = train.select_dtypes(exclude='O').columns c_cols = train.select_dtypes(include='O').columns n_train = train.select_dtypes(exclude='O').copy() c_train = train.select_dtypes(include='O').copy() n_test = test.select_dtypes(exclude='O').copy() c_test = test.select_dtypes(include='O').copy() #스케일러 from sklearn.preprocessing import StandardScaler Scaler = StandardScaler() n_train[n_cols] = Scaler.fit_transform(n_train[n_cols]) n_test[n_cols] = Scaler.transform(n_test[n_cols]) #인코딩 from sklearn.preprocessing import LabelEncoder LE = LabelEncoder() for col in c_cols: c_train[col] = LE.fit_transform(c_train[col]) c_test[col] = LE.transform(c_test[col]) #합치고 검증데이터 분리 X_train = pd.concat([n_train,c_train], axis=1) X_test = pd.concat([n_test,c_test], axis=1) #X_train.shape, X_test.shape #((242, 13), (61, 13)) from sklearn.model_selection import train_test_split x_tr, x_val, y_tr, y_val = train_test_split(X_train, y_train, test_size=0.15, random_state=2024) from sklearn.ensemble import RandomForestClassifier model = RandomForestClassifier() model.fit(x_tr,y_tr) y_val_pred = model.predict_proba(x_val) from sklearn.metrics import roc_auc_score score = roc_auc_score(y_val,y_val_pred[:,1]) #print(score) #0.9092261904761905 pred = model.predict_proba(X_test) df = pd.DataFrame({ 'id': test_id, 'output': pred[:,1] }) df.to_csv('010100.csv', index=False)
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
9회차 시험환경
9회차부터corr, sum,mean 함수사용하면, (numeric_only=True)라고 적어줘야 한다는 말씀이신가요??sum,mean,corr말고 또 어떤 함수에 적어줘야하나요??