更新 15项目案例

This commit is contained in:
jiangzhonglian
2017-09-13 16:04:51 +08:00
parent df0396dd78
commit 23417371ca
6 changed files with 81 additions and 355 deletions

View File

@@ -1,12 +1,14 @@
#!/usr/bin/python
# coding:utf8
'''
Created on 2017-04-07
Sequential Pegasos
the input T is k*T in Batch Pegasos
@author: Peter/ApacheCN-xy
'''
from numpy import *
def loadDataSet(fileName):
dataMat = []; labelMat = []
fr = open(fileName)
@@ -17,6 +19,7 @@ def loadDataSet(fileName):
labelMat.append(float(lineArr[2]))
return dataMat,labelMat
def seqPegasos(dataSet, labels, lam, T):
m,n = shape(dataSet); w = zeros(n)
for t in range(1, T+1):
@@ -29,10 +32,12 @@ def seqPegasos(dataSet, labels, lam, T):
w = (1.0 - 1/t)*w
print w
return w
def predict(w, x):
return w*x.T
def batchPegasos(dataSet, labels, lam, T, k):
m,n = shape(dataSet); w = zeros(n);
dataIndex = range(m)
@@ -48,6 +53,8 @@ def batchPegasos(dataSet, labels, lam, T, k):
w = (1.0 - 1/t)*w + (eta/k)*wDelta # 在每个 T上应用更改
return w
datArr,labelList = loadDataSet('testSet.txt')
datMat = mat(datArr)
#finalWs = seqPegasos(datMat, labelList, 2, 5000)
@@ -74,4 +81,4 @@ ax.plot(x,y)
ax.plot(x,y2,'g-.')
ax.axis([-6,8,-4,5])
ax.legend(('50 Iterations', '2 Iterations') )
plt.show()
plt.show()