기본 콘텐츠로 건너뛰기

Python Deep Learning 예제

예제
import matplotlib.pyplot as plt
from sklearn.datasets import make_blobs
X, y = make_blobs(n_samples=150, n_features=2, centers=3, random_state=0)

X.shape # (150, 2)
y.shape # (150,)

import pandas as pd
pd.Series(y).value_counts()
1    50
0    50
2    50
dtype: int64

from sklearn.cluster import KMeans
km = KMeans(n_clusters=3, random_state=0)

# 비지도 학습
pred = km.fit_predict(X)

pd.Series(pred).value_counts()
2    52
1    50
0    48
dtype: int64

# 한글 깨짐 없이 나오게 설정
from matplotlib import rcParams # 인코딩 폰트 설정
rcParams['font.family'] = 'New Gulim'
rcParams['font.size'] = 10

plt.figure(figsize=(10,4))
plt.subplot(1,2,1)
plt.scatter(X[:,0],X[:,1],c=pred,s=10)
plt.title('추정')
plt.subplot(1,2,2)
plt.scatter(X[:,0],X[:,1],c=y,s=10)
plt.title('정답')
plt.show()

# 학습된 클러스터들의 centroids를 화면에 표시해본다
centroids = km.cluster_centers_
centroids
array([[ 0.91563959,  4.44602508],
       [-1.73388472,  3.00577412],
       [ 2.07417555,  1.04097145]])

# 적색 별 모양의 표시를 각 centroid에 해본다
plt.scatter(X[:,0],X[:,1],c=pred,s=10)
plt.scatter(centroids[:,0],centroids[:,1],c='r',marker='*')
plt.title('centroid 표시')
plt.show()

# 앨보우 차트
# 클러스터의 갯수와 inertia의 값을 라인차트에 표시한 것수
# inertia : 센트로이드와 클러스터 소속 값들의 거리의 제곱의 합
inertia = []
for i in range(1,11):
    km = KMeans(n_clusters=i, random_state=0)
    km.fit(X)
    inertia.append(km.inertia_)

plt.plot(range(1,11), inertia, marker='o')
plt.xlabel("Number of Clusters")
plt.ylabel("Inertia")
plt.show()
# 최적의 클러스터 수는 꺾이는 곳으로 정하면 된다

이 블로그의 인기 게시물

Python 인공신경망 추천 시스템(회귀)

예제 # 인공신경망을 이용한 추천 시스템 # - 순차형(Sequential) 신경망 생성법 # - 함수형(Functional) 신경망 생성법 # - 지금까지 나온 추천 방식 중에서 가장 좋은 성능 # - Regression 방식으로 분석가능 # - 영화의 평점 정보(userid, movieid, rating) # - 이용자는 영화에 대한 취향이 모두 다르다 # - 영화는 다양한 장르가 혼합되어 있다 # - 이용자는 자신의 취향에 맞는 영화에 높은 rating을 제시함 # - 어떤 이용자에게 어떤 장르의 영화를 추천할 것인가? # __call__() 함수를 가진 클래스는 파이썬 함수 callable(클래스)를 사용하면 True를 반환한다 from tensorflow.keras.models import Sequential, Model from tensorflow.keras.layers import Dense, Embedding, Input input = Input(shape=(1,)) # 함수형 신경망 생성법 hidden1 = Dense(2, activation='relu')(input) # Dense(2, activation='relu')__call__() hidden2 = Dense(2, activation='relu')(hidden1) # callable.object callable(Dense) # __call__ 함수가 있으면 True, 없으면 False # Using Functional API from keras.models import Sequential from keras.layers import * model = Sequential() model.add(Input(shape=(3,))) # Input tensor model.add(Dense(4)) # hidden layer 1 model.add(Dense(units=4)) # hidden layer 2 model.add(Dense(units=1)) # ou...

Blogger

코드 하이라이트 사이트 http://hilite.me/ 코드 <!-- 나만의 공간 --> <style id='daru_css' type='text/css'> .code {      overflow: auto;      height: 200px;      background-color: rgb(239,239,239);      border-radius: 10px;      padding: 5px 10px; } .code::-webkit-scrollbar-thumb {      background-color: grey;      border: 1px solid transparent;      border-radius: 10px;      background-clip: padding-box;   } .code::-webkit-scrollbar {      width: 15px; } </style> <!-- 나만의 공간 -->

Javascript on 함수

엔터키 감지하기 <input type="password" onkeypress="func(event)" /> function func(event) {      if(event.keyCode == 13) { // keyCode 13은 엔터이다           alert("엔터를 입력했습니다.");     }     if (event.tartget.value == 13) {          alert("엔터를 입력했습니다.");     } }