Machine Learning 14

Hierarchical Clustering - Dendrogram, 최적의 클러스터 갯수 찾기

Dendrogram, 최적의 클러스터 갯수 찾기 아래의 데이터프레임 Annual Income (k$), Spending Score (1-100) 컬럼을 변수 X 로 두고 Dendrogram 을 그려볼 것이다. 필요한 라이브러리를 임포트 해준 후 , 덴드로그램을 이용하여서 데이터들을 군집화 한 것이다. 아래의 덴드로그램은 너무 지저분 하기 때문에, 큰 영역으로 클러스터를 다섯개까지만 분류 할 것이다. import scipy.cluster.hierarchy as sch sch.dendrogram( sch.linkage(X, method= 'ward') ) plt.title('Dendrogram') plt.xlabel('Customers') plt.ylabel('Eculidean Distance') plt.s..

Machine Learning 2022.12.05

K-Means Clustering - wcss 로 기준점 찾기

K-Means Clustering k-평균 알고리즘(K-means clustering algorithm)은 주어진 데이터를 k개의 클러스터로 묶는 알고리즘이다. 아래의 데이터프레임을 가지고 kmeans 를 이용하여 비슷한 군집끼리 묶을 것이다. 수입과 지출 데이터가 들어있는'Annual Income (k$)' 과 'Spending Score (1-100)' 컬럼을 변수 X 로 두었다. 가장 적합한 기준점을 찾기 위해 wcss 라는 리스트를 만들고, 반복문을 이용하여서 인공지능 Kmeans 에 훈련한 값들을 wcss 리스트에 넣어줄 것이다. from sklearn.cluster import KMeans wcss = [] for k in np.arange(1,10+1): Kmeans = KMeans(n_cl..

Machine Learning 2022.12.05

joblib 라이브러리를 이용하여서 인공지능 모델 저장하기

학습시킨 모델 저장하기 학습시킨 인공지능 모델을 저장하고 로드 하는 방법이다. 학습시킨 모델을 저장하기 위해서는 joblib 라이브러리가 필요하다 import joblib dump 함수를 이용하여서 저장하고자 하는 모델을 괄호안에 적어주고, 모델명과 함께 pickle 파일로 저장을 해주면 된다. joblib.dump(classifier2, 'classifier.pkl') joblib.dump(scaler_X, 'scaler_X.pkl') 로드할 때는 joblib.load 를 하여서 괄호안에 pickle 파일명을 적어주면 된다. 로드한 파일은 새로운 변수에 저장하여서 사용할 수 있다. classifier = joblib.load('classifier.pkl') scaler_X = joblib.load('s..

Machine Learning 2022.12.02

Decision Tree , Random Forest 로 데이터 분류하기

Decision Tree 결정트리는 계속하여 이것인지 저것인지 결정한다는 의미이다. 차트로 나타내면 아래와같이 분류를 하는 것인데, 이것을 인공지능에 학습시켜서 데이터를 분류 해볼 것이다. 아래에 분류를 하기위해 테스트할 예시 데이터프레임이 있다. 여기서 예측에 필요한 컬럼 'Age' : 'Estimated Salary' 을 변수 X로 두고 예측 결과인 데이터 컬럼 'Purchased' 를 변수 y로 둘 것이다. 먼저 데이터를 피쳐 스케일링 해주기 위해서 MinMaxScaler 를 해주었다. 피쳐 스케일링이 된 데이터를 각각 훈련용과 테스트용 데이터로 나누어주었다. from sklearn.preprocessing import MinMaxScaler scaler_X = MinMaxScaler() X = s..

Machine Learning 2022.12.02

Grid search - 모델 성능을 최고로 만드는 파라미터 값을 찾아준다

Grid search 모델에게 가장 적합한 하이퍼 파라미터 값을 찾아준다 Grid search 은 모델의 하이퍼 파라미터에 넣을 수 있는 값들을 순차적으로 입력한뒤에 가장 높은 성능을 보이는 하이퍼 파라미터들을 찾는 탐색 방법이다. 먼저 딕셔너리로 파라미터의 조합을 생성해준다. 아래의 예시에서는 인공지능 모델의 들어갈 파라미터값 'kernel' , 'C' , 'gamma' 을 딕셔너리 형식으로 작성한 값이다. grid search 를 사용하기 위해서 아래의 라이브러리를 임포트 해준다. from sklearn.model_selection import GridSearchCV GridSeachCV() 를 변수 grid 에 저장을 해준 후 괄호 안에는 사용할 인공지능과 파라미터 값을 저장한 변수를 넣어준다. 여..

Machine Learning 2022.12.02

KNN - K-Nearest Neighbo 로 데이터 분류하기

KNN 은 차트상에서 가장 가까운 데이터 를 가지고 분류 하는 방법이다. 피쳐스케일링과 X와 y 데이터를 훈련과 테스트 데이터로 분류했다고 가정하고, KNN 인공지능으로 분류하는 방법을 작성하겠다. from sklearn.neighbors import KNeighborsClassifier 먼저 KNN 인공지능으로 분류하기 위해서 필요한 라이브러리를 임포트 해준다. 변수 classifier 에 KNeighborsClassifier() 을 저장해준 후 fit() 함수를 이용하여 인공지능을 학습시켜준다. from sklearn.neighbors import KNeighborsClassifier classifier = KNeighborsClassifier() classifier.fit(X_train, y_tra..

Machine Learning 2022.12.02

Support Vector Machine - SVM , RBF

Support Vector Machine 에는 SVM과 RBF 가 있다. 여기서 SVM 은 선형 구조이고, RBF 는 non_linear 즉, 비선형 구조이다. SVM SVM 을 차트로 나타내면 아래처럼 직선을 하나 그리고 그 직선을 기준으로 데이터를 구별한다. ( linear 방법 ) import numpy as np import matplotlib.pyplot as plt import pandas as pd 필요한 라이브러리를 임포트 해준다. 아래의 데이터프레임을 가지고 SVM 인공지능으로 Purchased 결과를 예측할 것이다. 예측에 필요한 컬럼 'Age' : 'Estimated Salary' 을 변수 X로 두고 예측 결과인 데이터 컬럼 'Purchased' 를 변수 y로 둘 것이다. # 피쳐 스..

Machine Learning 2022.12.02

imblearn 라이브러리 - up sampling 기법으로 불균형 데이터 다루기

imblearn 라이브러리 - 불균형 데이터 다루기 분류를 하는 인공지능을 만들 때, 예측할 컬럼 y , 예측하는데 필요한 컬럼 X 으로 둔다. 이때, 정확도가 높은 인공지능을 만들기 위해서는 테스트용 데이터의 예측 컬럼은 균형있는 데이터를 가지고 있어야한다. 아래의 예시 데이터프레임에서 예측할 컬럼은 'class' 컬럼이다. 'class' 컬럼을 변수 y에 저장하였다. 예측하는데 필요한 컬럼인 'Preg' 부터 'age' 컬럼을 변수 X 에 저장하였다. 변수 y 에 데이터가 어떻게 들어있는지 확인을 했더니, 0의 값은 500개, 1의 값은 268 개로 데이터가 불균형하게 존재를 하고있다. 아래는 차트로 데이터 수를 확인한 결과이다. 이때 성능이 좋은 인공지능을 만들기 위해서는 데이터수를 균형있게 맞춰주..

Machine Learning 2022.12.02

Logistic Regression - Confusion Matrix 인공지능 성능 평가

Logistic Regression - Confusion Matrix 이 게시글 내용은 https://yu1129.tistory.com/51 내용과 이어진다. ( 위 링크의 인공지능에 대한 성능 평가 내용 ) Logistic Regression 으로 인공지능을 만들었다면, 그 인공지능의 성능 평가를 해야한다. 성능평가를 Confusion Matrix 라고 한다. Confusion Matrix 에서 정답 데이터는 행으로 나타내고, 예측한 데이터는 열로 나타낸다. from sklearn.metrics import confusion_matrix 성능평가를 하기 위해 필요한 라이브러리를 임포트 해준다. confusion_matrix() 괄호 안에 y 데이터의 정답지와 y 데이터의 예측값을 넣어서 cm 이라는 변..

Machine Learning 2022.12.02

Logistic Regression ( 로지스틱 회귀 ) - 인공지능으로 데이터 결과 예측하기

Logistic Regression 아래의 데이터프레임에서 나이( Age )와 연봉( EstimatedSalary ) 데이터를 가지고, 고객이 구매( Purchased )를 할지 안할지 예측하는 인공지능을 만들 것이다. 구매를 할지 말지 여부에 대한 것은 분류 문제이기 때문에 Logistic Regression 을 이용하면 된다. 먼저 변수 X, y 에 훈련데이터와 테스트 데이터 컬럼을 저장해준다. Logistic Regression 은 feature scaling 을 해주어야한다. 정규화 방법으로 데이터를 피쳐 스케일링 해준다. from sklearn.preprocessing import MinMaxScaler 를 임포트 해준다. 메모리에 MinMaxScaler() 를 올려주어야 하기 때문에 변수 sc..

Machine Learning 2022.12.01