데이터분석 54

군집 분석(Clustering)

Cluster의 개수나 구조에 관한 특별한 사전 가정 없이 개체들 사이의 유사성 / 거리에 근거해 cluster를 찾고 다음 단계의 분석을 하게 하는 기법 유사한 개체들을 cluster로 그룹화하여 각 집단의 성격을 파악 Clustering 장점 – 데이터에 대해 탐색적 기법으로, 데이터 내부구조 등이 주어지지 않아도 자료구조를 탐색 – 추가적인 분석을 위해 사용할 수 있음. – 유사성, 비유사성 만 계산할 수 있다면 여러 형태 데이터 적용이 가능. Clustering 단점 – 자료 유형이 혼합된 경우, 거리정의 등이 어려울 수 있음 – 초기 군집 수 설정이 중요 – 결과 해석에 주의 1) 계층적 군집분석 (단일결합법, 완전결합법, 평균결합법, 중심결합기준법, Ward법 # 군집분석(Clustering)..

인공신경망 (ANN)

인공신경망 정보 : https://techblog-history-younghunjo1.tistory.com/73 [ML] ANN(Artificial Neural Network) 인공신경망 ※해당 게시물에 사용된 일부 자료는 순천향대학교 빅데이터공학과 정영섭 교수님의 머신러닝 전공수업 자료에 기반하였음을 알려드립니다. 이번 포스팅에서는 저번 포스팅에서 다루었던 주 techblog-history-younghunjo1.tistory.com Perceptron https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.Perceptron.html sklearn.linear_model.Perceptron Examples using sklearn...

K-NN (K -Nearest Neighbor)

레이블이 있는 데이터를 사용하여 분류 작업을 하는 알고리즘이다. 데이터로부터 거리가 가까운 k개의 다른 데이터의 레이블을 참조하여 분류한다. 대개의 경우에 유클리디안 거리 계산법을 사용하여 거리를 측정하는데, 벡터의 크기가 커지면 계산이 복잡해진다. KNN 이론 참고 사이트 : https://smecsm.tistory.com/53 KNN(K Neighbor Nearest)이란? KNN ( K-Nearest Neighbor) In [1]: #주피터 노트북 블로그게시용 함수 from IPython.core.display import display, HTML display(HTML(" ")) KNN ( K -Nearest Neighbor) 개요¶ KNN은 K - 최근접 이웃법으로 분.. smecsm.tisto..

나이브 베이즈

머신러닝 알고리즘 중에서 분류 알고리즘으로 많이 사용되는 알고리즘. *조건부 확률 * P(B|A) : 사건 A에 대해서,사건 A가 발생했을 때 사건 B가 발생할 확률. “사건 A에 대한 사건 B의 조건부 확률” 이라 한다. - 사전확률 : 특정 사건이 일어나기 전의 확률로 베이즈 추론에서 관측자가 관측을 하기 전에 가지고 있는 확률분포를 말한다. - 사후확률 : 확률변수 관측에 대한 조건부 확률로, 어떤 사건이 발생하였고, 이 사건이 나온 이유가 무엇인지 P(B|A)란 식으로 나타낸 것이다. (B는관측한 사건. A는 B가 나올 수 있게 한 과거의 사실) - 베이즈 정리 : 두 확률변수의 사전확률과 사후확률 사이의 관계를 나타내는 정리다. 베이즈 정리는 사전확률로부터 사후 확률을 구할 수 있는 개념이다. ..

주성분 분석(PCA)

주성분 분석 설명 글 https://angeloyeo.github.io/2019/07/27/PCA.html 주성분 분석(PCA) - 공돌이의 수학정리노트 angeloyeo.github.io # 차원 축소를 위해 사용 from sklearn.decomposition import PCA # 두 개의 열의 값 패턴이 매우 유사함을 알 수 있다. > 차원축소 가능 > PCA pca1 = PCA(n_components = 1) # 변화 차원 수 x_low = pca1.fit_transform(x) # 차원 축소 값 원복 x2 = pca1.inverse_transform(x_low) # 4개를 2개로 축소 pca2 = PCA(n_components = 2) # 2개로 줄이기 x_low2 = pca2.fit_tran..

서포터 벡터 머신 (SVM)

SVM 이론 참고 사이트 https://bkshin.tistory.com/entry/%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-2%EC%84%9C%ED%8F%AC%ED%8A%B8-%EB%B2%A1%ED%84%B0-%EB%A8%B8%EC%8B%A0-SVM 머신러닝 - 2. 서포트 벡터 머신 (SVM) 개념 서포트 벡터 머신(SVM, Support Vector Machine)이란 주어진 데이터가 어느 카테고리에 속할지 판단하는 이진 선형 분류 모델입니다. (Reference1) 본 포스트는 Udacity의 SVM 챕터를 정리한 것입니다. 아래 그 bkshin.tistory.com # 파이썬 구현 BMI 식을 이용해 무작위 자료를 작성한다. # BMI 식을 이용해 dataset을 작성 ..

XGboost

XGBoost 설명 출처 https://wooono.tistory.com/97 [ML] XGBoost 개념 이해 Boosting 이란? 여러 개의 약한 Decision Tree를 조합해서 사용하는 Ensemble 기법 중 하나이다. 즉, 약한 예측 모형들의 학습 에러에 가중치를 두고, 순차적으로 다음 학습 모델에 반영하여 강한 예측모 wooono.tistory.com # 필요 코드만 작성 from xgboost import plot_importance from lightgbm import LGBMClassifier model = xgb.XGBClassifier(booster = 'gbtree', max_depth = 6, n_estimators = 500).fit(x_train,y_train) #gbtr..

Regressor

# sklearn 모듈의 분류 모델의 상당수는 출력결과가 연속형인 예측 처리도 가능 import numpy as np import pandas as pd # boston 자료 from sklearn.datasets import load_boston boston = load_boston() dfx = pd.DataFrame(boston.data, columns = boston.feature_names) dfy = pd.DataFrame(boston.target, columns = ['MEDV']) df = pd.concat([dfx, dfy], axis = 1) cols = ['MEDV', 'RM', 'LSTAT'] x = df[['LSTAT']] y = df['MEDV'] # 실습 1 : Decision..

앙상블 (Esemble Learning)

앙상블 배깅과 부스팅 참고 사이트1 https://bkshin.tistory.com/entry/%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-11-%EC%95%99%EC%83%81%EB%B8%94-%ED%95%99%EC%8A%B5-Ensemble-Learning-%EB%B0%B0%EA%B9%85Bagging%EA%B3%BC-%EB%B6%80%EC%8A%A4%ED%8C%85Boosting 머신러닝 - 11. 앙상블 학습 (Ensemble Learning): 배깅(Bagging)과 부스팅(Boosting) 앙상블(Ensemble) 앙상블은 조화 또는 통일을 의미합니다. 어떤 데이터의 값을 예측한다고 할 때, 하나의 모델을 활용합니다. 하지만 여러 개의 모델을 조화롭게 학습시켜 그 모델들의..

sklearn을 이용한 과적합 방지

1. test / train from sklearn.datasets import load_iris from sklearn.tree import DecisionTreeClassifier from sklearn.metrics import accuracy_score iris = load_iris() # iris 이용하기 train_data = iris.data train_label = iris.target # 분류모델 dt_clf = DecisionTreeClassifier() # sklearn의 다른 분류모델을 써도 됌 dt_clf.fit(train_data, train_label) pred = dt_clf.predict(train_data) print('분류 정확도:',accuracy_score(train..