[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 사이의 확률로 변환합니다.   \[   \sigma(z) = \frac{1}{1 + e^{-z}}   \] - 여기서 \(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...
[Zero-base]Linear Regression
·
Data Analyst/ML
지도 학습 & 비지도 학습지도학습 : 정답(Label)과 문제(feature) 이 있는 데이터셋을 사용해 모델을 학습하는 방법입니다. 주어진 입력 데이터에 대해 올바른 출력을 예측할 수 있도록 모델을 훈련시킵니다. 종류1. Classifier(분류)2. Regreession(회귀) 비지도 학습 : 정답(Label)이 없는 데이터를 이용해 패턴이나 구조를 찾아내는 기계 학습 방식입니다. 즉, 입력 데이터에 대한 명확한 정답이 주어지지 않은 상태에서 데이터를 이해하고, 이를 바탕으로 그룹화하거나 특징을 추출합니다. 종류1. 군집2. 차원 축 저희는 저번에 Iris 품종 구별(Classifier)를 하였습니다. 이번에는 회귀 중 선형 회귀에 대해 알아 볼 것입니다.우선 선형 그래프란 x축과 y축의 값으로 구성..
[Zero-Base] Machine Learning - 1
·
Data Analyst/ML
꽃 잎과 꽃 밭침의 길이와 너비로 IRIS 꽃의 품종을 분류하는 모델을 만들어보자.# 사이킷런에 있는 아이리스 꽃에 대한 데이터셋을 가져옵니다.from sklearn.datasets import load_irisiris = load_iris()# 해당 iris에서 사용할 수 있는 함수들 목록을 불러옵니다.iris.keys()위의 코드를 사용하면 iris에 관련한 데이터 셋을 가져올 수 있습니다.그리고 keys()를 활용해 기본 정보를 볼 수 있는 함수 목록들을 볼 수 있습니다. # 특성 : 해당 iris 품종의 꽃받침 길이, 너비 또는 꽃잎의 길이, 너비가 있는 것을 확인할 수 있습니다.iris.feature_names # Label : 즉 iris 품종 우리가 예측해야 할 값.('setosa', 've..
ML - Matplotlib SubPlots
·
Data Analyst/ML
plt.subplots()우선, numpy를 통해 데이터를 생성해보겠습니다.import numpy as np# a는 np.linspace를 사용하여 0부터 10까지 11개의 균등한 간격의 숫자를 생성a = np.linspace(0,10,11)# b는 a의 각 원소를 4제곱한 값을 가진 배열b = a ** 4# x는 0부터 9까지의 정수 배열을 생성x = np.arange(0,10)# x의 각 원소에 2를 곱한 값을 가진 배열y = 2 * x plt.subplots() 객체는 더 자동화된 축 관리자로 작용합니다. 이로 인해 여러 플롯을 나란히 표시하는 것이 훨씬 쉬워집니다.튜플 언패킹을 사용하여 Figure 객체와 numpy 배열의 축을 모두 잡는 방법에 주목하세요.# plt.figure()와 유사하게 사..
hmm06
'Data Analyst/ML' 카테고리의 글 목록 (2 Page)