본문 바로가기

전체 글349

데이터 인코딩(레이블 인코딩, 원-핫 인코딩) □ 데이터 전처리 ○ 데이터클린징 ○ 결손값 처리(NULL/NaN처리) ○ 데이터인코딩(레이블,원핫인코딩) *머신러닝은 문자열을 취급하지않기 때문에 숫자열로 치환해야함 ○ 데이터스케일링 ○ 범위 척도를 맞추는것 ○ 이상치 제거 ○ Feature 선택, 추출 및 가공 □ 데이터 인코딩 : 머신러닝 알고리즘은 문자열 데이터 속성을 입력 받지 않으며 모든 데이터는 숫자형으로 표현되야함 ○ 레이블(Lable) 인코딩 - LabelEncoder 클래스 - fit(), transform() 이용 #데이터 인코딩 : 레이블 인코딩 from sklearn.preprocessing import LabelEncoder items = ["TV","냉장고","전자랜지","컴퓨터","선풍기","선풍기","믹서","믹서"] # .. 2024. 4. 6.
비지도학습 : 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.