파이썬 머신러닝 완벽 가이드를 읽고..
DNN/머신러닝2021. 7. 22. 15:17파이썬 머신러닝 완벽 가이드를 읽고..

21 년 3월 부터 7월까지 약 5개월 간 이책을 읽었습니다. 이 책을 간단히 말하자면 정말 자세합니다. 여기서 자세하다는 의미는 초급자도 이해할수 있도록 설명이 아주 잘 되어있습니다. 머신러닝의 개념을 하나도 모르더라도 약간의 파이썬 개념만 갖춰있으면 누구나 접근할 수 있는 책입니다. 머신러닝 입문자에게 정말 휼륭한 책 같습니다. 책의 저자가 직접 강의하는 영상도 있으니 같이 보시면서 책을 읽으시면 더욱더 좋은 효과가 있을거 같습니다.! - 저자의 인프런 강의 주소 - https://www.inflearn.com/course/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-%EC%99%84%EB%B2%BD%EA%B0%80%EC%9D%B..

군집화 ( k-means , 군집 평가 , 평균이동 , GMM , DBSCAN)
DNN/머신러닝2021. 7. 22. 15:02군집화 ( k-means , 군집 평가 , 평균이동 , GMM , DBSCAN)

# K-means > 군집 중심점은 선택된 포인트의 평균 지점으로 이동하고, 다시 가까운 포인트를 선택 , 다시 중심점을 평균 지점으로 이동하는 과정을 반복하는 알고리즘입니다. 장점 : 알고리즘이 쉽고 간결하다. 단점 : 속성이 많을때 군집 정확도가 떨어진다. 군집의 개수를 지정하기 어렵다. # 군집 평가 - 실루엣 분석(silhouette analysis) 각 군집의 거리가 얼마나 효율적으로 분리돼 있는지 나타낸다. 여기서 효율적이란 군집간 거리가 떨어져 있는 경우를 말한다. # 평균 이동 k-means와 유사하게 중심을 군집의 중심으로 지속적으로 움직이면서 군집화. 하지만 K-평균이 중심에 소속된 데이터의 평균 거리 중심으로 이동하는데 반해 , 평균이동은 데이터가 모여있는 밀도가 가장 높은 곳으로 이..

회귀 [일반선형,릿지,라쏘,엘라스틱 넷, 로지스틱회귀]
DNN/머신러닝2021. 7. 22. 09:27회귀 [일반선형,릿지,라쏘,엘라스틱 넷, 로지스틱회귀]

지도학습에는 크게 두가지가 있습니다. 전에서 했던 분류 , 이번에서할 회귀로 나누어집니다. 우리가 원하는값이 이산값일경우 분류를 하는 것이고 우리가 원하는값이 연속형(숫자값)이면 회귀입니다. 선형회귀는 실제값과 예측값의 차이를 최소화하는 직선형 회귀선을 최적화하는 방식입니다. 과적합을 방지하는 규제모델에 따라 여러가지 유형으로 나누어집니다. 대표적인 선형회귀 모델 - 일반 선형회귀 : 예측값과 실제값의 MSE(예측값과 실제값의 차이의 제곱)을 최소화 할 수 있도록 회귀 계수를 최적화하며 규제는 적용하지 않는 모델 - 릿지(Ridge) 회귀 : 선형회귀에 L2규제를 추가한 회귀 모델으로 L2규제는 상대적으로 큰 회귀계수 값의 예측 영향도를 감소시키기 위해서 회귀계수를 더 작게 만드는 규제 모델입니다. (회..

분류 - Ensemble(앙상블) [결정트리,RandomForest,Boost,스태킹]
DNN/머신러닝2021. 7. 21. 20:27분류 - Ensemble(앙상블) [결정트리,RandomForest,Boost,스태킹]

머신러닝의 학습 방법은 크게 두가지 비지도학습과 지도학습으로 나누어집니다. 지도학습이란 명시적인 정답이 있는 데이터가 주어진 상태에서 하는 방법입니다. 감이 오시나요? 즉, 지도학습의 대표적 방법이 분류입니다.! 현재 다양한 머신러닝 방법으로 분류를 구현하고있습니다. - Navie Bayes : Bayes 통계와 생성모델에 기반 - Logistic Regression : 독립변수와 종속변수의 선형 관계성 - Decision Tree : 데이터 균일에 따른 규칙기반 - Support Vector Machine : 개별 클래스 간의 최대 마진을 찾음 - Nearest Neighbor : 근접거리를 기준 - Neural Network : 심층 연결 - Ensemble : 서로 다른 머신러닝 알고리즘 연결 이처..

성능지표 / 평가
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,..

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개의 데이터를..

image