scikit-learn, Spark.ml, TensorFlow에서 Perceptron ~ (1) 소개
9875 단어 TensorFlow스파크scikit-learn기계 학습
1. 퍼셉트론
퍼셉트론은 숨겨진 레이어가 없는 입력 레이어와 출력 레이어만의 간단한 신경망입니다. scikit-learn에는 Perceptron 단독의 모델이 있었기 때문에 그 쪽을 사용했습니다만, Spark.ml 와 TensorFlow에서는, 입력층과 출력층만의 신경망의 모델을 만들었습니다.
퍼셉트론은 식별자(Classifier)이므로 x, y 가 주어지면 A 또는 B 라는 데이터가 필요합니다. 이번은, 선형 회귀의 때와 거의 같은 형태로,
라는 데이터를 만들기로 합니다.
코드 설명은 약어. 이번에는 0의 경우 파란색, 1의 경우 빨간색 산점도를 그립니다.
makeDataPC.py
#!/usr/bin/env python
import numpy as np
from numpy.random import rand
# data for calssifier
def makeDataPC(a, b, n=100, d=0.1, xs=0, xe=10):
x = rand(n) * (xe - xs) + xs
r = (rand(n) * 2 - 1) * d
y = x * a + b + r
r[r >= 0] = True # tricky
r[r < 0] = False
return x, y, r
import csv
def writeArrayWithCSV(dataFile, data):
f = open(dataFile, 'w')
writer = csv.writer(f, lineterminator='\n')
writer.writerows(data)
f.close()
import matplotlib.pyplot as plt
def plotXY(title, x, y, z):
b = z.astype(np.bool)
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
bx = x[b]
by = y[b]
ax.scatter(bx, by, color='blue')
r = -b
rx = x[r]
ry = y[r]
ax.scatter(rx, ry, color='red')
ax.set_title(title)
ax.set_xlabel('x')
ax.set_ylabel('y')
#fig.show()
imageFile = title + '.png'
fig.savefig(imageFile)
# training data
x,y,z = makeDataPC(0.4, 0.8, 100, 0.8)
title = 'trainPC'
plotXY(title, x, y, z)
dataFile = title + '.csv'
xyz = np.c_[x, y, z]
writeArrayWithCSV(dataFile, xyz)
>>> n = np.array([1,2,3,4])
>>> b = np.array([False,True,False,True])
>>> n[b]
array([2, 4])
>>> b = np.array([False,True,False,True])
>>> -b
array([ True, False, True, False], dtype=bool)
Reference
이 문제에 관하여(scikit-learn, Spark.ml, TensorFlow에서 Perceptron ~ (1) 소개), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tud/items/645c902dc60bec57c4e3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)