목록PYTHON/데이터분석 (42)
도찐개찐
랜덤포레스트 앙상블 학습 알고리즘 중 대표적인 학습 알고리즘 여러 개의 의사결정나무들을 생성한 다음, 각 개별 트리의 예측값들 중에서 가장 많이 선택된 클래스로 예측하는 알고리즘 물론, 배깅분류기에 의사결정트리를 넣는 대신 결정트리에 최적화되어 있는 포레스트분류기를 사용 import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns from sklearn.model_selection import train_test_split from sklearn.ensemble import VotingClassifier from sklearn.ensemble import RandomForestClassifier fr..
배깅bagging boostrap aggregating 보통 구축한 트리에는 랜덤성이 없는데 랜덤한 데이터를 이용해서 트리를 구성하는 방법은? 훈련 데이터셋에서 중복을 허용하여 무작위 추출sampling => 배깅 통계학에서 샘플데이터의 수가 적거나 샘플이 치우쳐 있는 경우에는 과적합의 문제 발생 머신러닝의 경우에도 학습데이터의 양이 작거나 너무 학습데이터에 특화해서 학습하게 되면 학습데이터에 대해 좋은 결과를 내지만 실제 데이터에서는 성능이 좋지 않게 나올수 있음(과적합) 부트스트래핑boostraing 전체 모집단의 분포를 확실하게 알 수 없는 경우에 표본을 취한후 그 표본이 전체 집단을 대표한다는 가정하에 전체 분포를 유추하는 방법 이때 표본으로부터 많은 횟수에 걸쳐 샘플을 복원추출한 후 각 샘플에 ..
앙상블 기법 무작위로 선택된 수천명의 사람들에게 복잡하거나 어려운 질문을 하고 대답을 모은다고 가정 이렇게 모아진 답은 한명의 전문가의 답보다 나을 수 있음 집단지성, 대중의 지혜 이처럼 일련의 분석기/예측기로 부터 예측을 수집하면 가장 좋은 하나의 모델보다 더 좋은 예측을 얻을 수 있음 일련의 분석기/예측기 => 앙상블 앙상블을 통해 학습 => 앙상블 학습 앙상블 학습 알고리즘 => 보팅, 베깅, 부스팅, 스태킹 머신러닝 경진대회(kaggle, 공모전)에서 우승하고 싶다면? => 여러 앙상블 방법을 이용! 투표기반 분류기votting 정확도가 좋은 분류기 여러개를 이용해서 학습시킴 => 로지스틱/SVM/랜덤포레스트/K최근접이웃 등등 각 분류기로 부터 예측을 모아 가장 많이 선택된 클래스를 예측함 => ..
SVM support vector machine 분류나 회귀분석에 사용가능한 기법 분류쪽 성능이 뛰어나서 주로 분류에 많이 사용 신경망에 비해 간결해서 뛰어난 성능을 보여준 탓에 신경망에 암흑기를 가져다 준 대표적인 머신러닝 알고리즘 이미지 인식이나 필체패턴 인식과 같은 작업에 주로 사용 마진을 최대로 하는 결정경계를 찾는 것이 SVM의 주된 알고리즘 결정경계는 서로 다른 분류값을 결정짓는 경계 line, plane(2D), hyperplane(3D) 마진은 결정경계와 서포트벡터간의 거리를 의미 서포트벡터는 결정경계를 만드는데 영향을 주는 최전방 데이터 최적의 결정경계 찾기 빨간점과 노란점으로 구성된 집합을 적절히 구분하려고 할때 3개의 직선중 어느것이 가장 최적으로 분류한 것일까? 두 개의 데이터 집합..
KNN k 최근접 이웃(k-nearest neighbors) 알고리즘 머신러닝 분류에 자주 사용되는 대표 알고리즘 얼굴인식, 개인영화추천, 질병 유전자 패턴 식별에 활용 KNN의 K는 가장 가까운 이웃 '하나'가 아니고 훈련 데이터 중 새로운 데이터와 가장 가까운 k개의 이웃을 찾는다는 의미 즉, 하나의 관측값은 거리가 가까운 k개의 이웃 관측값들과 비슷한 특성을 갖는다고 가정함 거리를 구할때는 유클리드 거리, 맨해튼 거리, 코사인 유사도, 피어슨 상관계수등이 사용됨 따라서, K개 이웃의 목표변수 중 다수결로 가장 많은 범주에 속한 값을 결과로 반환 KNN 알고리즘에서는 k를 얼마로 설정하느냐에 따라 결과와 성능이 달라짐 k가 작으면 데이터의 범위가 좁아짐 - 과적합 위험 k가 크면 데이터의 범위가 넓어..
나이브 베이즈 분석 조건부확률이 이용한 확률 기반 머신러닝 분류 알고리즘 주사위를 굴려 짝수눈이 나올 확률P은? 어떤 사건의 확률P = 원하는 결과수 / 가능한 결과수 모든 실험의 결과가 동일한 가능성을 가진다고 가정함 이를 고전적확률이라 함 상호배타적, 덧셈법칙, 여의법칙,덧셈의 일반법칙,곱셈법칙(독립사건),조건부확률 동전을 100회 던졌을때 앞면이 나오는 횟수는? 전통적 확률에서는 일어난횟수/전체시도횟수로 계산 이를 경험적확률이라 함 - 일정한 확률로 반복시행 시행횟수가 충분히 했을때 어떤 사건이 일어나는 상대적 횟수는 일정한 패턴을 보인다는 의미 대수의 법칙 만일, A 라는 도시에 수지가 태어난 경우, 이 아이가 노벨상을 받을 확률은 얼마나 될까? 이것을 경험적 확률로 계산하려면 이 아이를 여러 명..
엔트로피entropy 물리 열역학의 관점에서의 정의 물질의 열적 상태를 나타내는 물리량의 하나 보통 무질서도라고 함 엔트로피가 높으면 무질서도 증가 통계적 관점에서의 정의 정보이득information gain의 혼잡도 엔트로피가 높으면 정보이해가 어려워 짐 학습데이터는 기본적으로 혼잡한 상태임 따라서, 어떤 조건으로 분류해야만 전체 혼잡도가 개선되는지 계산 정리한 결과에 대해 다시 계산해서 처리를 반복 적용함 즉, 정보의 불확실성을 수치로 나타낸 것을 의미 import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns from sklearn.model_selection import train_test_..
의사결정트리 나무 모양의 그래프를 사용해서 최적의 결정을 돕는 분석기법 기회비용에 대한 고려, 기대 이익 계산, 위험 관리등 효율적인 결정이 필요한 많은 분야에 사용되고 있음 의사결정트리는 회귀,분류에 사용되지만 주로 분류에 많이 이용되고 있음 import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns from sklearn.model_selection import train_test_split from sklearn.tree import DecisionTreeClassifier from sklearn.metrics import confusion_matrix from sklearn.metrics i..