[Zero-base] KNN(KNeighbors Classifier) - 1
·
Data Analyst/ML
KNeighbors Classifier (K - 최근접 이웃 분류 모델)새로운 데이터를 분류할 때 가장 가까운 데이터 포인터들을 기반으로 결정을 내립니다.즉, 새로운 데이터가 주어지면, 그 데이터가 속할 카테고리를 주변 이웃 데이터들과의 거리를 보고 결정합니다.동작 원리근처 이웃의 수를 결정해야 합니다. 예를 들어 k = 5라면 5 개의 이웃을 찾아 그들의 분류 결과에 따라 새로운 데이터를 분류합니다.(아래 사진 참조)거리 계산 : 유클리드 거리 공식을 사용합니다.이 계산을 통해 가장 가까운 이웃 k개를 선택합니다. 그 이웃들의 카테고리가 많은 쪽이 새로운 데이터의 카테고리가 됩니다.K-최근접 이웃 분류 모델 장단점KNN은 매우 간단하나, 정확도가 떨어지는 편입니다.참고 그림이번 글은 KNN의 기본 개념..
[Zero-base] Precision and Recall
·
Data Analyst/ML
Precision and RecallPrecision(정밀도) : 양성이라고 예측한 것에서 맞힌 비율입니다.Recall(재현율) : 참인 데이터들 중에서 참이라고 예측한 비율입니다.(TPR(True Positvie Rate))위의 그림으로 보면  precision과 Recall의 확률들이 어떻게 나오는 지 확인 가능합니다. 그리고https://hmm06.tistory.com/51 해당 페이지를 확인하시면 precision과 recall 그리고 Roc Curve에 대한 설명이 적혀있습니다. [Zero-base] Scaling & 분류 모델 평가ScalingLabel Encoder글자를 만나면 숫자로 바꿔준다.글자로 되어있는 특성(feature)들을 다 숫자로 바꿔야만 머신러닝 딥러닝이 잘 동작한다.1. 우..
[Zero-base] Cross Validation(교차 검증) - 2
·
Data Analyst/ML
1. wine 데이터를 활용하겠습니다.import pandas as pdred_url = 'https://raw.githubusercontent.com/PinkWink/forML_study_data/refs/heads/main/data/winequality-red.csv'white_url = 'https://raw.githubusercontent.com/PinkWink/forML_study_data/refs/heads/main/data/winequality-white.csv'red_wine = pd.read_csv(red_url, sep=';')white_wine = pd.read_csv(white_url, sep=';')red_wine['color'] = 1white_wine['color'] = 0wi..
[Zero-base] Cross Validation(교차 검증) - 1
·
Data Analyst/ML
Cross Validation(교차 검증)이란?우리가 가진 데이터를 잘게 나누어서 여러 번 학습하고 시험해보는 방법입니다. 예를 들어 공부를 하고 나서 문제를 여러 번 풀어보는 것과 비슷합니다. 예시를 들어 설명하겠습니다.1. 데이터 나누기우리가 학교에서 배운 내용을 친구들과 나눠서 공부한다고 생각해봅시다. 상대는 100장의 문제지를 가지고 있습니다. 이제, 이 문제지를 5개의 작은 묶음으로 나눕니다. 그러면 각각 20장씩 5개의 묶음이 생깁니다. 2. 한 묶음은 시험용, 나머지는 공부용: 이 5개의 묶음 중에서 1개의 묶음(20장)을 시험지로 사용합니다. 나머지 4개의 묶음(80장)은 공부할 때 사용합니다. 이제, 이 80장으로 열심히 공부하고, 공부가 끝나면 시험(20장)을 보면서 얼마나 잘 공부했는..
[Zero-base] Logistic Regression - 2
·
Data Analyst/ML
PIMA 부족 당뇨병 질환 발생 데이터1. 해당 데이터를 가져오겠습니다.PIMA_url = 'https://raw.githubusercontent.com/PinkWink/ML_tutorial/refs/heads/master/dataset/diabetes.csv'PIMA = pd.read_csv(PIMA_url)PIMA.head() 확인 결과 해당 컬럼과 값들을 확인 할 수 있었습니다. 2. 결측치 확인을 하기 위해 해당 값들 중 0인 값이 있는지 확인해보겠습니다.(PIMA == 0).astype(int).sum()# 0인 값들의 개수를 세기 위해 0인 값들을 더해줍니다.여기서 PIMA == 0을 설정하면 True로 바뀌게 될 것이고 해당 값을 int형으로 바꿔주면 1이 될 것입니다. 그 상태에서 sum을..
[Zero-base] Logistic Regression - 1
·
Data Analyst/ML
로지스틱 회귀 (Logistic Regression)1. 로지스틱 회귀란?- 로지스틱 회귀는 이름은 회귀 분류이지만 이진 분류(binary classification)를 위한 지도 학습 알고리즘입니다. 종속 변수(target)가 0과 1 같은 범주형 값을 가지는 경우에 사용됩니다. - 선형 회귀처럼 독립 변수와 종속 변수 간의 관계를 찾지만, 출력이 연속적인 값 대신 확률로 나타납니다. 2. 시그모이드 함수 (Sigmoid Function)- 로지스틱 회귀는 시그모이드 함수를 사용해 결과값을 0과 1 사이의 확률로 변환합니다.   σ(z)=11+ez - 여기서 z는 선형 회귀의 예측값으로, 독립 변수들의 선형 결합입니다. 즉, \(z = \..
[Zero-base] Pipeline
·
Data Analyst/ML
Pipeline- 보통 ML을 할 때 순서가 Scaler 사용해서 스케일링 후 그 다음 test_train_split() 사용하여 훈련세트와 테스트 세트로 데이터를 분리해줍니다. 그리고 모델을 사용하여 분류해주는 작업을 해줍니다.즉,  Scaler -> test_train_split(분리) -> DecisionTreeClassifier(분류) 이러한 순서입니다.- Pipeline은 이렇게 나눠져 있는 3가지 작업을 하나의 작업으로 묶어주는 것을 의미합니다.Python을 통해 알아보겠습니다. 저는 와인 데이터를 이용하여 Pipeline을 만들어 보겠습니다. 1. 와인데이터를 가져와서 X(features), y(label)를 정해줍니다.import pandas as pdred_url = 'https://ra..
[Zero-base] Scaling & 분류 모델 평가
·
Data Analyst/ML
ScalingLabel Encoder글자를 만나면 숫자로 바꿔준다.글자로 되어있는 특성(feature)들을 다 숫자로 바꿔야만 머신러닝 딥러닝이 잘 동작한다.1. 우선 데이터를 만들어 줍니다.import pandas as pddf = pd.DataFrame({ 'A' : ['a', 'b', 'c', 'a', 'b'], 'B' : [1, 2, 3, 1, 2]}) 2. LabelEncoder를 통해 'A' 컬럼 기준으로 학습 시켜보겠습니다. from sklearn.preprocessing import LabelEncoderle = LabelEncoder()le.fit(df['A']) 3. 학습시킨 값들을 보니 array(['a', 'b', 'c'], dtype=object) 이렇게 a, b, c를..
[Zero-base] Linear Regression(Wine 구별, Scaler)
·
Data Analyst/ML
Wine 데이터를 Scaling 하고 레드 와인과 화이트 와인으로 구별해보자!!Scaler란?동일한 범위 내로 데이터를 만들기 위해 사용하는 방법입니다. 종류1. min-max scaler- 최소 0 최대 1 이내의 범위에 데이터를 위치 시키는 방법이다.2. standard scaler- 각각의 데이터들이 평균이 0, 표준편차가 1이 되도록 만드는 방법이다.등등...TIP데이터 분석을 할 때 중요 특성에 대해서 알고있어야한다. 해당 중요 특성이 그래프나 분석할 때 영향을 많이 주기 때문이다.그래서 사용하는 함수인 feature_importances_ 함수를 사용하면 됩니다. 이제 본격적으로 Wine Data를 활용하여 Scaling을 하고 레드와인과 화이트 와인을 구별해보겠습니다. 1.우선 데이터를 받아..
[Zero-base]Linear Regression 2(보스턴 집 값 예측)
·
Data Analyst/ML
보스턴 집 값 예측하기!!from pandas import read_csvurl = 'https://raw.githubusercontent.com/PinkWink/forML_study_data/refs/heads/main/data/boston_housing.csv'column_names = ['CRIM', 'ZN', 'INDUS', 'CHAS', 'NOX', 'RM', 'AGE', 'DIS', 'RAD', 'TAX', 'PTRATIO', 'B', 'LSTAT', 'PRICE']boston_pd = read_csv(url, delimiter=r'\s+', names=column_names)boston_pdurl을 통해 csv파일을 pandas를 통해 DataFrame으로 만들어 주는 작업을 하였습니다.1...
hmm06