훈련 노하우
DNN/딥러닝2021. 7. 5. 18:05훈련 노하우

ML 모델이 실전에서 좋은 성능을 내게 하려면 어떻게 해야될까요 ? 학습 / 테스트 데이터 세트의 학습이 가장 중요할것 입니다. 하지만 테스트 세트로 모델을 튜닝하면 실전에서 좋은 성능을 기대하기 힘듭니다. 답을 알고있는 상태로 시험을 치면 시험을 잘 볼 수 밖에 없고, 만약 시험문제를 조금 바꾸면 좋은 성적을 기대하기 힘들겁니다. 그래서 모델을 튜닝할때 훈련세트,검증세트,테스트세트를 나눠야 합니다. 1. 데이터 세트 준비하기 from sklearn.datasets import load_breast_cancer from sklearn.model_selection import train_test_split cancer = load_breast_cancer() x = cancer.data y = cancer..

성능지표 / 평가
DNN/머신러닝2021. 6. 25. 18:13성능지표 / 평가

모델의 성능을 판단하는 평가지표 중 하나가 정확도(accuracy)이다. 하지만 정확도는 불균형한 레이블 값 분포에서 ML 모델의 성능을 판단할 경우 적합한 평가지표가 아닙니다. 다음과 같이 sex 피처가 1이면 0 , 0이면 1로 예측하는 아주 간단한 예측 분류기를 통해 정확도르 도출하겠습니다. from sklearn.base import BaseEstimator class MyDummyClassifier(BaseEstimator): def fit(self,X,y=None): pass def predict(self,X): pred = np.zeros((X.shape[0],1)) for i in range(X.shape[0]): if X['Sex'].iloc[i] ==1: pred[i] = 0 else:..

사이킷런으로 타이타닉 생존자 예측
DNN/머신러닝2021. 6. 23. 21:42사이킷런으로 타이타닉 생존자 예측

import pandas as pd import matplotlib.pyplot as plt import seaborn as sns %matplotlib inline titanic_df = pd.read_csv('./train.csv') titanic_df.head() info() 메소드를 사용해 결측치를 확인해 본다. titanic_df.info() RangeIndex: 891 entries, 0 to 890 Data columns (total 12 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 PassengerId 891 non-null int64 1 Survived 891 non-null int64 2 Pclass..

로지스틱 회귀
DNN/딥러닝2021. 6. 23. 21:24로지스틱 회귀

퍼셉트론 1957년 코넬 항공 연구소에서 이진 분류 문제에서 최적의 가중치를 학습하는 퍼셉트론(Perceptron)알고리즘을 발표. 퍼셉트론은 마지막 단계에서 샘플을 이진 분류하기 위하여 계단 함수 사용. 아달린 퍼셉트론을 개선한 적응형 선형 뉴런 로지스틱 회귀 아달린에서 조금 더 발전한 형태. (활성화 함수는 비선형 함수를 사용) 시그모이드 함수 만드는 과정 오즈 비(odds ratio) > 로짓 함수 > 시그모이드 함수 odds ratio 란 성공 확률과 실패확률의 비율을 나타내는 통계 로짓 함수 > odds ratio에서 로그 함수를 취하여 만든 함수. 로짓 함수를 z라 놓고 z에 관해 식을 변환하면 로지스틱회귀는 이진분류가 목적이므로 -무한대 ~ +무한대까지 같은 z의 값을 조절해야 합니다. 그래..

붓꽃 품종 예측 , 사이킷런 , Model Selection , 데이터 전처리
DNN/머신러닝2021. 6. 23. 20:17붓꽃 품종 예측 , 사이킷런 , Model Selection , 데이터 전처리

붓꽃 품종 예측. 1. 붓꽃 데이터를 불러온다. 2. 데이터와 타겟값을 나눈다. 3. 데이터 세트를 분리 한다. 4. 학습한다.(결정트리 사용) 5. 예측한다. 6.예측 정확도를 확인한다. import pandas as pd from sklearn.datasets import load_iris from sklearn.tree import DecisionTreeClassifier from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score iris = load_iris() iris_data = iris.data iris_label = iris.target X_train,X_test,y_train,..

머신러닝의 기초
DNN/딥러닝2021. 6. 23. 08:35머신러닝의 기초

이번 장에서는 경사하강법&오차 역전파 알고리즘을 응용해 선형회귀모델을 만들어 보는 시간을 갖도록 하겠습니다. 1. 먼저 문제 해결을 위해 당뇨병 환자의 데이터를 준비하겠습니다. from sklearn.datasets import load_diabetes diabetes = load_diabetes() 2. 입력과 타겟 데이터의 크기를 확인하겠습니다. print(diabetes.data.shape, diabetes.target.shape) (442, 10) (442,) 3.당뇨병 환자의 데이터를 시각화 하겠습니다. import matplotlib.pyplot as plt plt.scatter(diabetes.data[:,2],diabetes.target) #모든 특성을 하나의 그래프에 그릴 수 없으므로 하..

Pandas
DNN/머신러닝2021. 6. 22. 15:59Pandas

Series - 판다스의 기본 객체 중 하나. - numpy의 ndarray를 기반으로 인덱싱 기능을 추가하여 1차원 배열을 나타냄. import pandas as pd import numpy as np s1 = pd.Series([1,2,3]) #파이썬 enumerate 느낌 s1 0 1 1 2 2 3 s2 = pd.Series(['a','b','c']) s2 0 a 1 b 2 c s3 =pd.Series(np.arange(200)) s3 0 0 1 1 2 2 3 3 4 4 ... 195 195 196 196 197 197 198 198 199 199 다음과 같이 인덱스도 사용자 지정으로 바꿀 수 있습니다. s4 = pd.Series([1, 2, 3], ['a', 'b', 'c']) s4 a 1 b 2..

Numpy(넘파이)
DNN/머신러닝2021. 6. 22. 13:52Numpy(넘파이)

numpy는 리스트와 비슷합니다. 하지만 왜 리스트를 쓰지 않을가요? 넘파이는 다차원 배열을 좀 더 효율적으로 다룰 수 있고 C로 구현되어있어 list보다 빠른 속도를 가지고 있기 때문입니다. 또한 라이브러리에 구현되어있는 함수들을 이용해 짧고 간결한 코드를 작성할수 있다는 장점을 가지고 있습니다.! -실습 1차원,2차원 배열을 생성해보겠습니다. import numpy as np array1 = np.array([1,2,3]) array2 = np.array([[1,2,3]]) print(array1) print(array2) type(array1) #[1 2 3] #[[1 2 3]] #numpy.ndarray array1 과 array2의 차이는 무엇일까요? 1차원 배열인 array1는 3개의 데이터를..

차원 축소(Dimension Reduction)
DNN/머신러닝2021. 6. 21. 19:55차원 축소(Dimension Reduction)

차원 축소 > 차원축소는 매우 많은 피처로 구성된 다차원 데이터 세트의 차원을 축소해 새로운 차원의 데이터 세트를 생성하는 것입니다. *차원의 저주 위 그림과 같이 차원이 증가할수록 해당 피처가 설명할수있는 비율이 감소합니다. 일반적으로 차원축소는 feature selection 과 feature extraction으로 나눌 수 있습니다. feature selection은 특정 피처에 종속성이 강한 불필요한 피처를 삭제하는 개념. fetaure extraction은 기존 피처를 저차원의 중요 피처로 압축해 추출하는 개념. - PCA PCA는 여려변수 간에 존재하는 상관관계를 이용해 이를 대표하는 주성분(Principal Component)을 추출해 차원을 축소하는 기법. 가장 높은 분산을 가지는 데이터의..

image