머신러닝/sklearn
-
sklearn-14 clustering 1 hierarchical clustering, silhouette머신러닝/sklearn 2023. 5. 10. 18:11
1. hierarchical clustering 계층적 군집화는 여러 개의 군집 중에서 가장 가장 가까운 군집 두 개를 하나로 합치면서 군집 개수를 줄여가는 방법이다. 1. 거리가 가까운 데이터를 찾고 묶는다. 2. 가까운 클러스터끼리 병합한다. 3. 1개의 클러스터가 될때가지 반복한다. 4. 클러스터를 원하는 모양으로 나눈다. 2. python from sklearn.cluster import AgglomerativeClustering single_clustering = AgglomerativeClustering(n_clusters=3, linkage='single') single_clustering.fit(data) single_cluster = single_clustering.labels_ sing..
-
sklearn-13 clustering 1 kmeans머신러닝/sklearn 2023. 5. 10. 18:10
1. Kmeans k는 클러스터의 수를 의미하며 means는 각 데이터로부터 그 데이터가 속한 클러스터의 중심까지의 평균 거리를 의미한다. 이 값을 최소화하는 것이 목표이다. 1. k개의 임의의 중심점을 잡는다. 2. 중심점을 기준으로 군집을 형성한다. 3. 군집으로 지정된 데이터를 기반으로 중심점을 업데이트한다. 4. 가장 좋은 중심점을 찾을 때까지 반복한다. 2. python import numpy as np import pandas as pd import sklearn import matplotlib.pyplot as plt import warnings warnings.filterwarnings('ignore') import os from os.path import join from sklearn...
-
sklearn-12 regression 3 svr머신러닝/sklearn 2023. 5. 10. 18:08
1. svr svr은 svm모델을 회귀 문제에 사용한 것이다. from sklearn.svm import SVR svm_regre = SVR() svm_regre.fit(X_train['s6'].values.reshape((-1,1)), y_train) y_pred = svm_regre.predict(X_test['s6'].values.reshape((-1,1))) print('단순서포트벡터머신회귀 r2:{:}'.format(r2_score(y_test,y_pred))) 단순서포트벡터머신회귀 r2:0.055470692167365 svm을 이용한 회귀를 하기 위한 svr을 불러오고 r2 score를 확인한다. for i in [2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,1..
-
sklearn-11 regression 2 decison tree regressor머신러닝/sklearn 2023. 5. 10. 18:07
1. decision tree regressor 결정 트리 모델은 데이터의 불순도를 최소화하는 방향으로 분기를 생성한다. 2. python from sklearn.tree import DecisionTreeRegressor dt_regr= DecisionTreeRegressor(max_depth=5) 결정 트리 모델을 불러오고 변수의 깊이를 설정한다. dt_regr.fit(X_train['s6'].values.reshape((-1,1)), y_train) DecisionTreeRegressor DecisionTreeRegressor(max_depth=5) y_pred = dt_regr.predict(X_test['s6'].values.reshape((-1,1))) 데이터를 학습하고 라벨값을 예측한다. p..
-
sklearn-10 regression 1 linear regression머신러닝/sklearn 2023. 5. 10. 18:06
1. linear regression 집의 평수가 클수록 집이 비싼 것처럼 데이터는 어떠한 변수의 값에 따라서 특정 변수의 값이 영향을 받을 수 있다. 따라서 x의 값이 독립적으로 변하면 y의 값이 x의 값에 따라 종속적으로 변하는 관계를 모델링한 것을 선형회귀라고 한다. x값이 여러개라면 다중 선형 회귀이다. 선형 회귀는 학습 속도가 빠르고 예측이 빠르지만 데이터가 선형 관계에 제한되며 특이치에 민감하다는 단점이 있다. 2. python import numpy as np import pandas as pd import sklearn import matplotlib.pyplot as plt from sklearn.datasets import load_diabetes diabetes = load_diabe..
-
sklearn-09 classification 4 ramdom forest머신러닝/sklearn 2023. 5. 10. 18:05
1. random forest 랜덤 포레스트는 의사결정 트리가 과적합이 잘 되는 단점을 극복하기 위한 알고리즘으로 같은 데이터에 대해 의사결정 데이터를 여러 개 만들어 종합하는 방식으로 이 기법을 앙상블이라고 부른다. 랜덤 포레스트는 분류와 회귀 둘 다 사용가능하며 대용량 데이터에 효과적이다. 데이터 크기에 비례하여 트리를 생성하기 때문에 프로세스 시간이 오래 걸리며 모든 트리 모델을 확인하기 어렵기 때문에 해석 가능성이 떨어진다는 단점이 있다. 2. python from sklearn.ensemble import RandomForestClassifier randomforestclassifier 모듈을 불러온다. import os from os.path import join abalone_path = j..
-
sklearn-08 classification 3 decision tree머신러닝/sklearn 2023. 5. 10. 18:04
1. decision tree 의사 결정나무라고 불리는 알고리즘은 모양이 나무를 뒤집어 놓은 것 같아서 decision tree라고 부른다. 시작되는 부분이 루트 노드이며 중간에 위치한 노드는 인터널 노드 마지막 노드는 리프노드이다. 수많은 if문으로 이루어져 있으며 분류모델과 회귀모델 둘 다 사용가능하다. 구조가 간단하여 해석이 용이하지만 과대적합의 위험이 높기 때문에 적절한 트리의 깊이와 노드의 개수를 설정해야 한다. 2. python from sklearn.tree import DecisionTreeClassifier dt = DecisionTreeClassifier(max_depth=3) 모듈을 불러오고 변수를 설정한다. 깊이는 3으로 지정한다. dt.fit(X_train,y_train) y_pr..
-
sklearn-07 classification 2 svm머신러닝/sklearn 2023. 5. 10. 18:04
1. svm support vector machine은 분류를 위하여 기준 선을 정의하는 모델이다. 기준 선과 데이터와의 간격은 마진이다. support vector는 기준선과 가까이 있는 데이터들을 의미한다. 이렇게 2차원에서 선을 그려도 나눌 수 없는 비선형 데이터들을 나누기 위해 차원을 확장한다. 3차원으로 표현하면 선은 평면이 되며 초평면이라고 말한다. 2차원으로 표현한 모습이다. svm은 데이터들과 거리가 가장 먼 초평면을 선택하여 분리하는 방법이다. svm은 오류 데이터에 영향이 적고 과적합되는 경우가 적지만 최적의 모델을 찾기 위해서 다양한 테스트가 필요하기 때문에 학습속도가 느리다는 단점이 있다. 2. python from sklearn.svm import SVC soft vector ma..