본문 바로가기

Python90

딥러닝 - 조건 성립 정지법 callbacks.EarlyStopping callback이란? 내가 만든 함수를, 프레임워크가 특정 시점에 실행 시켜 주는것 early_stop = tf.keras.callbacks.EarlyStopping(monitor='val_loss', patience = 15) tf.keras.callbacks.EarlyStopping 은 훈련 중 모델의 성능이 개선되지 않을 경우 학습을 조기에 중단하는 콜백 이며 monitor 는 모니터링할 것을 지정하는 여기서는 'val_loss'를 지정 검증 데이터셋의 손실값을 지켜볼것이다 patience는 인내심 이라는 뜻이며 학습도중 검증데이터값이 개선되지 않는 상황이 연출 될때 중단할지를 지정 15로 설정하게 되면 에포크 도중 성능 향상이 없는 15번째가 오면 학습을 중단한다 이는 오버핏팅을 방지하기 위함이다.. 2024. 4. 17.
딥러닝 - GridSearch 그리드서치 (베스트 모델 찾기) ! pip install scikeras sci keras 인스톨을 먼저 해준뒤 from scikeras.wrappers import KerasClassifier from sklearn.model_selection import GridSearchCV from keras.models import Sequential from keras.layers import Dense 필요한 모듈들을 모두 임포트 해주자 def build_model(optimizer = 'adam'): model = Sequential() model.add(Dense(8, 'relu', input_shape = (11, ))) model.add(Dense(6, 'relu')) model.add(Dense(1,'sigmoid')) model.. 2024. 4. 17.
딥러닝 - New 데이터의 예측법 일반적인 머신러닝때와 별 다를것 없다 일단 컬럼 순서대로 본 뒤에 컬럼 순서대로 입력 해준다 new_data = [[ 600, 'France', 'Male', 40, 3, 60000, 2, 1, 1, 50000 ]] 이때 리스트에 리스트를 넣어줘 바로 2차원배열로 만들어주면 편하다 pd.DataFrame(new_data) 그 뒤에 데이터프레임으로 만들어주고 df_new_data.columns= ( 'CreditScore','Geography','Gender','Age','Tenure','Balance','NumOfProducts','HasCrCard','IsActiveMember','EstimatedSalary' ) 컬럼들을 입력해주자 이때 처음부터 딕셔너리 형태로 만들어주었다면 이 과정은 생략된다 그 .. 2024. 4. 17.
ANN - 개념정리 원하는 데이터를 얻기 위해 가공한 데이터들의 column값들이 입력되며 가중치에 의해 변형되어 합산되고 액티베이션함수에 의해서 다음 뉴런에게로 전파된다 액티베이션 함수에는 이런것들이 있다 그리고 그렇게 전달받은 히든레이어들은 그걸 다시아웃풋 레이어로 다시 전달한다 히든레이어는 몇개가 될지 모른다 사용자가 설정하는데로 정해지기 때문에 1개일수도 100개 일수도 있다 다만 1개 일때보다 100개일때 데이터처리가 늦을것이며 정확해질것이다 보통의 딥러닝은 이런식으로 진행되며 좌측 인풋레이어에서 데이터를 입력받아 우측 아웃풋레이어까지 가중치와 함수에 의해 수정의 수정을 거치며 답을 도출해내고 다시 좌측으로 한칸한칸 돌아가며 다시 수정의 수정을 거치게 된다 이것을 1회 하는것을 epochs라고 한다 이렇게 해서 하.. 2024. 4. 16.
Hierarchical Clustering - 개념 하이어라키컬 클러스터링은 기본적으로 K-means와 유사하다 이러한 데이터가 있을때 한 그룹 한그룹씩 묶어 나가면서 마지막에 하나의 그룹이 될때까지 그룹화를 한다 클러스터로 묶는 기준은 어떤 점에 중점을 두느냐에 따라 다르다 Dendrogram 그래서 이 방법을 덴드로그램으로 표현하는데 위 그림처럼 한 그룹이 지어질때마다 그 거리를 y축으로 표현하여 묶어주다가 한 그룹으로 묶어진 뒤에 사람이 멀어지는 거리를 보고 몇개의 그룹으로 나눌것인지 판단하는 시스템이다 아래에있는 묶음들은 거리가 가까워서 짧지만 마지막에 묶이는 2그룹은 거리가 멀기때문에 길게 나타난다 보통 그 곳을 잘라 두 그룹으로 나타낼 수 있겠다 import scipy.cluster.hierarchy as sch sch.dendrogram( s.. 2024. 4. 16.
K-Means Clustering - 개념 + WCSS supervised는 y가 있었지만 unsupervised는 y가 없다 Clustering은 그룹화가 목적에 있다  왼쪽같은 데이터들이 있을때 K-Means를 통해3개의 그룹으로 나눌 수 있다 그리고 새로운 데이터가 들어왔을때근접한 곳의 데이터로 들어가는것도 당연히 가능하겠다  그렇다면 어떻게 그룹이 나누어질까  우선 K-Means의 뜻부터 알고 가자K는 상수 라는 뜻을 가지며 몇개의 그룹으로 나눌지에 대한 숫자이다Means는 알다싶이 평균을 구하는것이고 그렇다면 몇개의 그룹으로 나누고 싶은지 입력하여그룹마다의 평균을 구하여 각각의 그룹이 만들어지는것인데 그림을 보며 알아보자        좌측의 그림처럼 데이터가 있을때 K에 2라는 숫자를 입력했을때 우측 그림처럼 랜덤한 위치에 두개의 점이 찍히며    .. 2024. 4. 15.