목록Python (173)
오답노트

Decision Tree 분석과정을 실제로 눈으로 확인 가능한 알고리즘이다. 계산 비용이 낮아 대규모의 데이터도 빠르게 연산 가능한 장점이 있다. 지니 불순도 분류 후 얼마나 분류가 잘 됐는지 평가하는 지표다. 불순도가 낮을 수록 분류가 잘됐다고 판단한다. 어떤 집단에서 A를 가지는 집단과 B를 가지는 집단 둘로 나눴을 때, 각각의 집단에서 또 다시 True, False를 나눌 수 있다. 이 때, 집단 A의 불순도는 1-((A|T)^2 + (A|F)^2) 이고, 집단 B의 불순도는 1-((B|T)^2 + (B|F)^2) 이다. 수식으로 표현하면 아래와 같다. p 는 집단에서 어떤 사건이 일어날 확률이다. 예를 들어 A|T는 A 집단에서 True가 발생할 확률이다. 정보 증가량 지니 불순도는 어떤 집단(부..
KNeighborsClassifier KNeighborsClassifier는 KNN 알고리즘으로 범주형 데이터를 예측할 때 사용한다. KNeighborsRegressor와 사용법은 같다. 다만 성능을 판단할 때 Accuracy, Recall, Precision, f1-score로 판단한다. from sklearn.preprocessing import MinMaxScaler scaler = MinMaxScaler() x_train_s = scaler.fit_transform(x_train) x_val_s = scaler.transform(x_val) model = KNeighborsClassifier() model.fit(x_train_s,y_train) pred = model.predict(x_val_s..
# 라이브러리 호출 import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sklearn.metrics import * # 데이터 read path = "Attrition_simple2.CSV" data = pd.read_csv(path) data.head() # 불필요 데이터 삭제 data.drop('EmployeeNumber', axis = 1, inplace = True) # 타겟 선언 및 target, feature 분리 target..

Confusion Matrix Accuracy (정분류율) = (Zero Correct + One Correct) / Total * 100 Recall (재현율) = Zero Correct / (Zero Correct + Zero Incorrect) * 100 Precision (정밀도) = Zero Correct / (Zero Correct + One Incorrect) * 100 Accuracy (정분류율)는 전체의 경우에서 예측을 맞춘 경우의 확률이다. Recall (재현율)은 실제 값 중에서 예측을 맞춘 경우의 확률이다. Precision (정밀도)는 예측한 결과 중 예측이 맞은 경우의 경우의 확률이다. 이 세 확률은 각자 다른 관점을 가지고 바라본 것이다. 따라서 셋중에 하나를 가지고 예측을 잘..

Logistic Regression 시그모이드 함수라고도 불려진다. 회귀는 수치형 데이터를 예측하는 사용하지만, 로지스틱 회귀는 범주형 데이터를 예측하는데 사용된다. 선형회귀는 데이터를 가장 잘 표현하는 직선을 찾는 것이다. 하지만 0,1 과 같은 값만 존재한다면 선형회귀로는 데이터를 예측할 수 없다. 하지만 0 또는 1로 수렴하는 함수를 만들면 이러한 문제를 해결할 수 있다. (출처 : https://odsc.medium.com/logistic-regression-with-python-ede39f8573c7) 승산 (Odds Ratio) 승산은 사건이 일어날 가능성 대 사건이 일아나지 않을 가능성의 비다. 예를 들어 일어날 확률이 80% 라면 승산은 0.8(일어날 확률) / 0.2(일어나지 않을 확률)..
KNeighborsRegressor KNN 회귀 알고리즘이다. 수치데이터를 예측할 수 있다 import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn.model_selection import train_test_split from sklearn.neighbors import KNeighborsRegressor from sklearn.metrics import * path = 'boston.csv' data = pd.read_csv(path) data.drop(['black'], axis = 1, inplace = True) target = 'medv' x = data.drop(target,axis=1) y = da..

KNN 예측 데이터의 변수로 부터 실측 데이터의 변수 사이의 거리를 계산하여 그 중 가장 가까운 k개 데이터의 평균으로 타겟 데이터를 예측하는 알고리즘 (출처 : https://pub.towardsai.net/k-nearest-neighbors-knn-algorithm-tutorial-machine-learning-basics-ml-ec6756d3e0ac) 장점으로는 데이터의 분포 형태와 상관이 없다. 설명변수의 개수가 많아도 사용가능하다. 단점으로는 계산시간이 오래걸리고, 훈련 데이터를 모델에 함께 저장하고 있다. 해석이 어렵다. K 값 KNN은 인접한 k 개의 데이터의 평균으로 판단한다. k를 어떻게 설정하느냐에 따라 예측 결과가 달라지게 된다. k 값을 최대 train 데이터의 개수까지 키울 수 있..

선형회귀 (Linear Regression) 데이터를 하나의 직선으로 요약이 가능하다면 선형회귀 알고리즘을 사용할 수 있다. 데이터를 설명 할 때, 여러가지 직선으로 설명할 수 있겠지만 그중에서 가장 잘 설명하는 직선 한 개를 선정하는 방법이다. (출처 : http://primo.ai/index.php?title=Linear_Regression) 단순회귀와 다중회귀로 나눌 수 있다. 단순회귀는 Feature가 1개를 사용하고 다중회귀는 Feature가 두개 이상을 사용하여 모델링하는 것을 말한다. 단순회귀 모델링 코드 import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn.model_selection impor..
모델, 모델링 모델은 데이터로 부터 패턴을 찾아 수식으로 정리한 것이다. 모델링은 오차가 적은 모델을 만드는 과정이다. 목적 샘플을 가지고 전체를 추정하기위해 모델링을 한다. 패턴을 찾는 방법 패턴을 찾는 방법은 두 가지가 있다. 지도학습 (Supervised Learning) 비지도학습 (Unsupervised Learning) 지도학습 지도학습은 답을 알려주면서 패턴을 찾게하는 방식이다. 답에는 숫자형(Regression)과 범주형(Classification) 두가지가 있다. 비지도학습 비지도학습은 데이터 안에서 비슷한 데이터끼리 모아 패턴을 찾게하는 방식이다. 오차 오차는 데이터가 벗어난 정도를 나타낸다. 수식으로는 아래와 같이 나타낼 수 있다. 실제 값 = 모델 + 오차 이 오차를 최소화 하는 것..
수치 → 수치 시각화 [matplotlib] scatter (산점도) plt.scatter(dataframe['feature'], dataframe['target']) # plt.scatter('feature', 'target', data = dataframe) plt.show() 수치화 [데이터 분석] 이변량 분석 - 수치 데이터와 수치 데이터 1 import scipy.stats as spst spst.pearsonr(dataframe['feature'], dataframe['target']) 수치 → 범주 [데이터 분석] 이변량 분석 - 수치 데이터와 범주 데이터 시각화 kdeplot (밀도함수 그래프) sns.kdeplot(x='feature', data = dataframe, hue ='targ..