본문 바로가기

Python231

비지도학습 : K-means(평균) 알고리즘 □ K-means(평균) 알고리즘 ○ 평균값이 클러스터 중심에 위치하기 때문에 클러스터 중심 또는 센트로이드라고 부름 ○ 무작위로 k개의 클러스터 중심을 정함 ○ 각 샘플에서 가장 가까운 클러스터 중심을 찾아 해당 클러스터의 클러스터의 샘플로 지정 ○ 클러스터에 속한 샘플의 평균값으로 클러스터 중심을 변경 ○ 클러스터 중심에 변화가 없을때까지 2번으로 돌아가 반복 □ 코드 **비지도학습이라 fit 과정에서 타겟데이터를 사용하지 않음. ○ 데이터 로드 #데이터 로드 import numpy as np fruits = np.load("C:/dPython/fruits_300.npy") fruits_2d = fruits.reshape(-1,100*100) #차원죽소를 통한 2차원 변경 for 모델훈련을 위해 fr.. 2024. 4. 6.
비지도학습 : 군집 알고리즘 기본 □ 비지도학습 : 타깃이 없을때 사용하는 머신러닝 알고리즘임. □ 예제 #라이브러리 import numpy as np import matplotlib.pyplot as plt #데이터 로드 fruits = np.load("../jupyterNotebook/data/fruits_300.npy") print(f"차원 : {fruits.ndim}") print(f"형태 : {fruits.shape}") print("첫번째 차원은 샘플개수 300, 두번째 차원은 높이 100, 세번째 차원은 너비 100") print("\n") print(fruits[:3]) #첫번째 행 데이터 출력 print(fruits[0,0,:]) #이미지화 : imshow plt.imshow(fruits[0], cmap="gray") p.. 2024. 3. 26.
교차검증 Ⅱ □ Cross_val_score() ○ 폴드세트설정 + For문활용 트레이닝/검증 데이터 학습 + 에측평균 성능산출작업을 한번에 작업함 ○ 파라미터 - estimator : 모델 - x : feature 데이터 - y : 타겟(라벨) 데이터 - scoring : 평가함수 ex)accuracy, recall 등 - cv : 폴드시행 세트 수 #cross_val_score() from sklearn.tree import DecisionTreeClassifier from sklearn.model_selection import cross_val_score from sklearn.datasets import load_iris import numpy as np iris_data = load_iris() #데이터 저.. 2024. 3. 26.
교차검증 Ⅰ □ 학습 데이터를 다시 분할하여 학습 데이터와 학습된 모델의 성능을 일차 평가하는 검데이터로 나눔. □ 수능을 보기전 수많은 모의고사를 치룬다고 생각하면됨. □ K-Fold 교차검중과 Stratified K-Fold가 있는데 Stratified K-Fold를 많이 사용하는 편임. ○ 일반 K-Fold ○ Stratified K-Fold - 불균형한 분포도를 가진 레이블(결정 클래스) 데이터 집합을 위한 K-Fold 방식 - 학습데이터와 검증 데이터 세트가 가지는 레이블 분포도가 유사하도록 검증 데이터 추출 □ 예제 ○ 일반 K-Fold #라이브러리 from sklearn.tree import DecisionTreeClassifier from sklearn.metrics import accuracy_sco.. 2024. 3. 26.
사이킷런(scikit-learn)과 지도학습 모델, 데이터셋 구축 □ 사이킷런(scikit-learn) ○ 파이썬 기반의 다른 머신러닝 패키지도 사이킷런 스타일의 API를 지향할 정도로 쉽소 파이썬 스러운(단순) API를 제공 ○ 머신러닝을 위한 다양한 알고리즘과 개발을 위한 편리한 프레임워크와 API 제공 ○ 오랜 기간 실전환경에서 검증되어있으며 매우 많은 환경에서 사용되는 라이브러리 ○ 주로 NUMPY와 SCIPY 기반위에 구축된라이브러리임 ○ 사이킷런 버전확인 #사이킷런 버전확인 import sklearn print(sklearn.__version__) □ 지도학습 모델 분류 : Classifier 회귀/예측 : Regressor DecisionTreeCassifier LinearRegression RandomForestClassifier Ridge Gradien.. 2024. 3. 26.
Ensemble Model □ 정형 데이터를 다루는데 가장 뛰어난 성과를 내는 알고리즘이 앙상블 학습(ensemble learning) □ 앙상블 학습의 대표적인 모델을 랜덤 포레스트(Random Forest)를 들 수 있음. □ 랜덤 포레스트는 결정 트리를 랜덤하게 만들어 결정트리(나무)의 숲을 만듬. □ 그리고 각 결정 트리의 예측을 사용해 최종 예측을 만듬. □ 데이터를 랜덤하게 만드는데 이 데이터를 만드는 방법이 독특. 우리가 입력한 훈련 데이터에서 랜덤하게 샘플을 추출하여 훈련 데이터를 만드는데 이 때 한 샘플이 중복되어 추출될수 있음. □ 이러한 샘플을 중복이 허용되는 샘플, 즉, 부트스트랩 샘플(bootstrap sample)이라고 부름. □ 랜덤하게 선택한 샘플과 특성을 사용하기 때문에 훈련 세트에 과대적합되는 것을.. 2024. 3. 25.
교차검증 □ 교차검증이란 테스트 세트만으로 모델학습의 일반화 정도를 검증하기에 부족하여, 기존 트레이닝세트에서 검증세트를 분리 후 Fold 교차검증을 통해 모델에 대한 학습 일반화를 향상시키는 것. □ 예제 ○ 데이터 호출 import pandas as pd wine = pd.read_csv("https://bit.ly/wine_csv_data") ○인풋/타깃 데이터 분리 #타깃데이터 target = wine["class"].to_numpy() #특성데이터 data = wine[["alcohol", "sugar", "pH"]].to_numpy() print(data.shape) ○트레이닝, 테스트 데이터 나누기 #훈련/테스트 세트 나누기 from sklearn.model_selection import train_.. 2024. 3. 22.
Decision Tree(결정트리 알고리즘) □ 로지스틱회귀란 LinearRegression에서 발전된 모델로 분류에 사용되는 모델임. □ 이진분류인가 또는 다중분류인가에 따라 시그모이드 함수와 소프트맥스 함수를 적용하여 분류된 타겟에대한 확률을 출력함. □ 예제 ○ 데이터 호출 #라이브러리 및 데이터호출 import pandas as pd wine = pd.read_csv("https://bit.ly/wine_csv_data") wine.head() ○ 데이터 EDA #데이터 EDA print(wine.info()) print(wine.describe()) ○ 인풋/타겟 데이터 분리 #데이터 분리 : 인풋, 타겟 data = wine[["alcohol", "sugar", "pH"]].to_numpy() #셋 배열로변환 target = wine[".. 2024. 3. 22.
확률적경사하강법 □ 확률적경사하강법 □ 새로운 데이터가 추가될 때마다 새로운 모델을 생성/학습해야함 □ 기존의 모델과 모델 세팅등을 최대한 유지하면서 업데이트하는 최적화 방법. 알고리즘 모델은 아님. 즉, 훈련방법 또는 최적화 방법임 ○ 확률적경사하강법 : 훈련세트를 한번 모두 사용하는 과정 ○ 미니배치 경사하강법 : 여러개씩 꺼내기 ○ 배치경사 하강법 : 몽땅꺼내기 □ 에포크 : 훈련세트를 한번 모두 사용하는 과정 □ 손실함수는 0에 가까울수록 아주 큰음수가 되기 때문에 손실을 아주크게만들어 모델에 큰 영향을 끼침 □ 예제 ○ 데이터 호출 import pandas as pd fish = pd.read_csv("https://bit.ly/fish_data") fish.head() ○ 인풋, 타겟데이터 분리 #데이터전처리.. 2024. 3. 22.