본문 바로가기

Python17

Scikit-learn의 기초 - 분류(의사결정나무, 랜덤포레스트, xgboost) 1. 의사결정나무(DecisionTreeClassifier)란? 보기의 예시의 모델은 value에 [37, 34, 41]이 들어 있는 것으로 보아, 3가지 범주를 가지고 있고 RootNode에서 첫 번째에 해당하는 범주와 나머지 범주를 완벽히 분리해낸 것으로 보인다. 그리고 제일 밑 LeafNode에서 두 번재, 세 번째에 해당하는 범주 또한 거의 완벽히 분리된 것으로 나온다. 즉, 의사결정나무는 주어진 데이터 x값을 활용하여 스무고개 하듯, 계속 질문하는 과정을 통해 값들을 분류해나간다.(불순도가 낮아지는 방향을 향해 움직인다) 2. sklearn의 유방암 데이터를 이용한 의사결정나무 예시 1) x_train, y_train 학습데이터 생성, x_test, y_test 검증데이터 생성 import pa.. 2023. 11. 23.
Scikit-learn의 기초 - 지도학습 데이터 split(학습, 검증용), 교차 검증 ★ 학습 및 검증용 데이터 구분하기 위한 데이터 샘플(사이킷런 라이브러리 포함 자료_당뇨) import pandas as pd from sklearn.datasets import load_diabetes dataset = load_diabetes() df = pd.DataFrame(data=dataset.data, columns=dataset.feature_names) df['target'] = dataset.target 1. 지도학습 데이터 split from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split(df.drop('target', axis=1), df['target.. 2023. 11. 22.
Scikit-learn의 기초 - 데이터 전처리(레이블, 스케일링, 차원축소) ★ 사교육비 관련 5개년 데이터 출처(Kosis)를 이용하여 공부해보겠습니다. import pandas as pd df = pd.read_csv('https://raw.githubusercontent.com/NeatyNut/csv/main/%ED%95%99%EA%B5%90%EA%B8%89%EB%B3%84_%EC%82%AC%EA%B5%90%EC%9C%A1%EB%B9%84_%EC%B4%9D%EC%95%A1_20231122115229.csv', encoding='cp949') ★ 링크는 개인 깃허브이므로 연결이 안될 수도 있습니다 1. 레이블 데이터 전처리 ★ Why? "머신러닝 모델은 문자 데이터를 인식하지 못하기 때문" ★ ★ 문자 데이터를 가진 컬럼 뽑기 (pandas에선 'object'인 컬럼들을 뽑는.. 2023. 11. 22.
Pandas의 기초 - 데이터 가공(정렬, 그룹핑) 1. 정렬(Index 또는 특정 col의 값 기준으로) 1) 인덱스 기준(sort_index()) data.sort_index(ascending=True) # 오름차순(ascending 생략가능) data.sort_index(ascending=False) # 내림차순 2) 특정 col의 값 기준(sort_values()) # "회사"컬럼만을 기준으로 정렬할때 data.sort_values("회사", ascending=True) # ascending은 생략가능 # "회사", "메뉴"순으로 정렬할때 data.sort_values(by=["가격","회사"], ascending=[True, False]) 2. 그룹별 집계(Groupby()) data.groupby("가격").count() #.count()는 s.. 2023. 11. 21.