본문 바로가기

Study_note(zb_data)

(97)
스터디노트 (HAR 데이터 다뤄보기) 📌 Human Activity Recognition import pandas as pd feature_name_df = pd.read_csv('./data/features.txt', sep='\s+', header=None, \ names=['columns_index', 'column_name']) X_train_url = 'https://raw.githubusercontent.com/PinkWink/ML_tutorial/master/dataset/HAR_dataset/train/X_train.txt' X_test_url = 'https://raw.githubusercontent.com/PinkWink/ML_tutorial/master/dataset/HAR_dataset/test/X_test.txt' X..
스터디노트 (앙상블 기법) 📌 앙상블 기법 🔻앙상블 학습을 통한 분류 - 여러 개의 분류기를 생성하고, 그 예측을 결합하여 정확한 최종 예측을 기대하는 기법 - 다양한 분류기의 예측 결과를 결합함으로써, 단일 분류기 보다 신뢰성이 높은 예측 값을 얻는 것 🔻voting 🔻bagging - 데이터의 중복을 허용하여 샘플링, 각각의 데이터에 같은 알고리즘을 적용하여 결과를 투표로 결정 - 각각의 분류기에 데이터를 각각 샘플링해서 추출하는 방식을 부트스트래핑 분할방식이라고 표현 🔻결정 단계에서의 보팅 - 하드 보팅 (다수결의 원칙을 따른다) - 소프트 보팅 (확률의 평균 값을 도출하여 결정 / 동률일 때는 다수결로 결정) 🔻랜덤 포레스트 - 디시전 트리를 여러개를 사용하여 투표하는 방식
스터디노트 (Precision and Recall) 📌 Precision, Recall 🔻Precision과 Recall 을 강제로 튜닝할 수 있다 HOW? -> 강제로 Threshold를 변경 (단, 성능이 좋아지는 지는 의문.) 📌 데이터 분리 및 예측 import pandas as pd from sklearn.model_selection import train_test_split red_wine = pd.read_csv('../data/winequality-red.csv', sep=';') white_wine = pd.read_csv('../data/winequality-white.csv', sep=';') # wine의 컬러로 나누기 red_wine['color'] = 1. white_wine['color'] = 0. # red_wine, whit..
스터디노트 (PIMA 당뇨병 예측) 📌 상관관계 확인하기 import seaborn as sns import matplotlib.pyplot as plt PIMA = pd.read_csv('../data/diabetes.csv') PIMA = PIMA.astype('float') plt.figure(figsize=(12, 10)) sns.heatmap(PIMA.corr(), cmap='YlGnBu', annot=True) plt.show() 📌 이상 데이터 확인 # PIMA==0 이 True로 반환되는 것을 이용 (PIMA==0).astype(int).sum() >>>> Pregnancies 111 Glucose 5 BloodPressure 35 SkinThickness 227 Insulin 374 BMI 11 DiabetesPedigre..
스터디노트 (Logistic Regression) 📌 Logistic Regression - Linear Regression -> 회귀 - 분류기에 사용하기 위한 목적 - 분류는 0 or 1로 예측을 해야하나, Linear Regression을 그대로 적용하면 예측 값은 0보다 작거나 1보다 큰 값이 될 수 있다 - 예측 값을 항상 0과 1 사이의 값을 갖도록 함수를 수정하는 것! (시그모이드를 이용) import numpy as np z = np.arange(-10, 10, 0.01) g = 1 / (1+np.exp(-z)) import matplotlib.pyplot as plt %matplotlib inline plt.plot(z, g); plt.grid() plt.show() plt.figure(figsize=(12, 8)) ax = plt.gc..
스터디노트 (Cost Function 2) 📌 Boston 집 값에 대해 자세하게 알아보자 boston.head() #집 값에 대한 히스토그램 import plotly_express as px fig = px.histogram(boston, x='PRICE') fig.show() 📌 상관 계수 구하기 import matplotlib.pyplot as plt import seaborn as sns corr_mat = boston.corr().round(1) sns.heatmap(data = corr_mat, annot=True, cmap='bwr') 📌 plot 그림 그리기 sns.set_style('darkgrid') sns.set(rc={'figure.figsize':(12, 6)}) fig, ax = plt.subplots(ncols = 2)..
스터디노트 (Cost Function) 📌 Cost Function은 최소화 할 수 있는 것이 좋다. 📌 코드로 한 번 구해보자! import numpy as np a = np.poly1d([1, 1]) b = np.poly1d([1, -1]) a,b >>>> (poly1d([1, 1]), poly1d([ 1, -1])) # (x+1) * (x-1) = x^2 -1 a*b >>>> poly1d([ 1, 0, -1]) # x^2의 계수 -> 1 / x의 계수 -> 0 / 상수항 -> -1 np.poly1d([2, -1])**2 + np.poly1d([3, -5])**2 + np.poly1d([5, -6])**2 >>>> poly1d([ 38, -94, 62]) import sympy as sym theta = sym.Symbol('th') di..
스터디노트 (통계적 회귀) 📌 통계적 회귀 import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns data = pd.read_csv('../data/ecommerce.csv', sep=',') data.drop(['Email', 'Address', 'Avatar'], axis=1, inplace=True) data.head() 🔻Boxplot을 그려보자 plt.figure(figsize=(12, 8)) sns.boxplot(data=data.iloc[:, :-1]); plt.figure(figsize=(12, 8)) sns.boxplot(data=data['Yearly Amount Spent']); 🔻Pairplot으로 ..