기계 학습 초석 제3과 코드
import urllib2
import numpy as np
from math import exp
# url = 'https://d396qusza40orc.cloudfront.net/ntumlone%2Fhw3%2Fhw3_test.dat'
# f = urllib2.urlopen(url)
# with open("hw3_train.dat", "wb") as code:
# code.write(f.read())
def train_PLA(wn, xn, yn, index):
# wn = wn + learn_rate * logistic.pdf(0 - yn[i] * (np.dot(wn, xn[i].transpose()))) * yn[i] * xn[i] #SGD
v = 0
learn_rate = 0.001
for k in range(0, len(xn)):
theta = 1 / (1 + exp(-(-1) * yn[k] * np.dot(wn, xn[k].transpose())))
v += theta * yn[k] * xn[k]
v = v * 1. / len(xn)
# theta = 1 / (1 + exp(-(-1) * yn[index] * np.dot(wn, xn[index].transpose())))
# v += theta * yn[index] * xn[index]
wn = wn + learn_rate * v
return wn
def test_PLA(wn, xn, yn):
error_rate = 0
for i in range(0, len(xn)):
if (np.dot(wn, xn[i]) * yn[i] < 0):
error_rate += 1
return error_rate * 1. / len(xn)
#load data
def load_data(filename):
code = open(filename, "r")
lines = code.readlines()
xn = np.zeros((len(lines), 21)).astype(np.float)
yn = np.zeros((len(lines),)).astype(np.int)
for i in range(0, len(lines)):
line = lines[i]
line = line.rstrip('\r
').replace('\t', ' ').split(' ')
xn[i, 0] = 1
for j in range(1, 21):
xn[i, j] = float(line[j])
yn[i] = int(line[21])
return xn, yn
train_xn, train_yn = load_data('hw3_train.dat')
test_xn, test_yn = load_data('hw3_test.dat')
error_rate = 0
wn = np.zeros((21, )).astype(np.float)
for i in range(2000):
wn = train_PLA(wn, train_xn, train_yn, i % train_xn.shape[0])
error = test_PLA(wn, test_xn, test_yn)
error_rate += error
print 'random :', i, ' error_rate: ', error
print 'Eout: ', error_rate / 2000.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
형태소 분석은 데스크톱을 구성하는 데 도움이?문자×기계 학습에 흥미를 가져와 개인 범위의 용도를 생각해, 폴더 정리에 사용할 수 있을까 생각해 검토를 시작했습니다. 이번 검토에서는 폴더 구성 & text의 읽기 → mecab × wordcloud를 실시하고 있...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.