lpypg

代码过程中,把代码过程较好的一些代码段记录起来,下边代码是关于遗传算法的神经网络python实现的代码,应该对大伙有一些用处。

from operator import itemgetter, attrgetter
import math
import random
import string
import timeit
from timeit import Timer as t
import matplotlib.pyplot as plt
import numpy as np

def sigmoid (x):
return math.tanh(x)

def makeMatrix ( I, J, fill=0.0):
m = []
for i in range(I):
return m

def randomizeMatrix ( matrix, a, b):
for i in range ( len (matrix) ):
for j in range ( len (matrix[0]) ):
matrix[i][j] = random.uniform(a,b)

class NN:
def __init__(self, NI, NH, NO):
self.ni = NI
self.nh = NH
self.no = NO
randomizeMatrix ( self.wi, -0.2, 0.2 )
randomizeMatrix ( self.wo, -2.0, 2.0 )

def runNN (self, inputs):
if len(inputs) != self.ni:
print \'incorrect number of inputs\'
for i in range(self.ni):
self.ai[i] = inputs[i]
for j in range(self.nh):
for k in range(self.no):
return self.ao

def weights(self):
print \'Input weights:\'
for i in range(self.ni):
print self.wi[i]
print
print \'Output weights:\'
for j in range(self.nh):
print self.wo[j]
print \'\'

def test(self, patterns):
results, targets = [], []
for p in patterns:
inputs = p[0]
rounded = [ round(i) for i in self.runNN(inputs) ]
if rounded == p[1]: result = \'+++++\'
else: result = \'-----\'
print \'%s %s %s %s %s %s %s\' %( \'Inputs:\', p[0], \'-->\', str(self.runNN(inputs)).rjust(65), \'Target\', p[1], result)
results+= self.runNN(inputs)
targets += p[1]
return results, targets

def sumErrors (self):
error = 0.0
for p in pat:
inputs = p[0]
targets = p[1]
self.runNN(inputs)
error += self.calcError(targets)
inverr = 1.0/error
return inverr

def calcError (self, targets):
error = 0.0
for k in range(len(targets)):
return error

def assignWeights (self, weights, I):
io = 0
for i in range(self.ni):
for j in range(self.nh):
self.wi[i][j] = weights[I][io][i][j]
io = 1
for j in range(self.nh):
for k in range(self.no):
self.wo[j][k] = weights[I][io][j][k]

def testWeights (self, weights, I):
same = []
io = 0
for i in range(self.ni):
for j in range(self.nh):
if self.wi[i][j] != weights[I][io][i][j]:
same.append((\'I\',i,j, round(self.wi[i][j],2),round(weights[I][io][i][j],2),round(self.wi[i][j] - weights[I][io][i][j],2)))

io = 1
for j in range(self.nh):
for k in range(self.no):
if self.wo[j][k] != weights[I][io][j][k]:
same.append(((\'O\',j,k), round(self.wo[j][k],2),round(weights[I][io][j][k],2),round(self.wo[j][k] - weights[I][io][j][k],2)))
if same != []:
print same

def roulette (fitnessScores):
cumalativeFitness = 0.0
r = random.random()
for i in range(len(fitnessScores)):
cumalativeFitness += fitnessScores[i]
if cumalativeFitness > r:
return i

def calcFit (numbers): # each fitness is a fraction of the total error
total, fitnesses = sum(numbers), []
for i in range(len(numbers)):
fitnesses.append(numbers[i]/total)
return fitnesses

# takes a population of NN objects
def pairPop (pop):
weights, errors = [], []
for i in range(len(pop)): # for each individual
weights.append([pop[i].wi,pop[i].wo]) # append input & output weights of individual to list of all pop weights
errors.append(pop[i].sumErrors()) # append 1/sum(MSEs) of individual to list of pop errors
fitnesses = calcFit(errors) # fitnesses are a fraction of the total error
del pop
return zip(weights, errors,fitnesses) # weights become item[0] and fitnesses[1] in this way fitness is paired with its weight in a tuple

def rankPop (newpopW,pop):
errors, copy = [], [] # a fresh pop of NN\'s are assigned to a list of len pop_size
pop = [NN(ni,nh,no) for i in range(pop_size) ]
for i in range(pop_size): copy.append(newpopW[i])
for i in range(pop_size):
pop[i].assignWeights(newpopW, i)# each individual is assigned the weights generated from previous iteration
pop[i].testWeights(newpopW, i)
for i in range(pop_size):
pop[i].testWeights(newpopW, i)
pairedPop = pairPop(pop) # the fitness of these weights is calculated and tupled with the weights
rankedPop = sorted(pairedPop, key = itemgetter(-1), reverse = True) # weights are sorted in descending order of fitness (fittest first)
errors = [ eval(repr(x[1])) for x in rankedPop ]
return rankedPop, eval(repr(rankedPop[0][1])), float(sum(errors))/float(len(errors))

def iteratePop (rankedPop):
rankedWeights = [ item[0] for item in rankedPop]
fitnessScores = [ item[-1] for item in rankedPop]
while len(newpopW) <= pop_size: # Breed two randomly selected but different chromos until pop_size reached
ch1, ch2 = [], []
index1 = roulette(fitnessScores)
index2 = roulette(fitnessScores)
while index1 == index2: # ensures different chromos are used for breeeding
index2 = roulette(fitnessScores)
#index1, index2 = 3,4
ch1.extend(eval(repr(rankedWeights[index1])))
ch2.extend(eval(repr(rankedWeights[index2])))
if random.random() < crossover_rate:
ch1, ch2 = crossover(ch1, ch2)
mutate(ch1)
mutate(ch2)
newpopW.append(ch1)
newpopW.append(ch2)
return newpopW

graphical_error_scale = 100
max_iterations = 4000
pop_size = 100
mutation_rate = 0.1
crossover_rate = 0.8
ni, nh, no = 4,6,1

def main ():
# Rank first random population
pop = [ NN(ni,nh,no) for i in range(pop_size) ] # fresh pop
pairedPop = pairPop(pop)
rankedPop = sorted(pairedPop, key = itemgetter(-1), reverse = True) # THIS IS CORRECT
# Keep iterating new pops until max_iterations
iters = 0
tops, avgs = [], []
while iters != max_iterations:
if iters%1 == 0:
print \'Iteration\'.rjust(150), iters
newpopW = iteratePop(rankedPop)
rankedPop, toperr, avgerr = rankPop(newpopW,pop)
tops.append(toperr)
avgs.append(avgerr)
iters+=1

# test a NN with the fittest weights
tester = NN (ni,nh,no)
fittestWeights = [ x[0] for x in rankedPop ]
tester.assignWeights(fittestWeights, 0)
results, targets = tester.test(testpat)
x = np.arange(0,150)
title2 = \'Test after \'+str(iters)+\' iterations\'
plt.title(title2)
plt.ylabel(\'Node output\')
plt.xlabel(\'Instances\')
plt.plot( results, \'xr\', linewidth = 0.5)
plt.plot( targets, \'s\', color = \'black\',linewidth = 3)
#lines = plt.plot( results, \'sg\')
plt.annotate(s=\'Target Values\', xy = (110, 0),color = \'black\', family = \'sans-serif\', size =\'small\')
plt.annotate(s=\'Test Values\', xy = (110, 0.5),color = \'red\', family = \'sans-serif\', size =\'small\', weight = \'bold\')
plt.figure(2)
plt.subplot(121)
plt.title(\'Top individual error evolution\')
plt.ylabel(\'Inverse error\')
plt.xlabel(\'Iterations\')
plt.plot( tops, \'-g\', linewidth = 1)
plt.subplot(122)
plt.plot( avgs, \'-g\', linewidth = 1)
plt.title(\'Population average error evolution\')
plt.ylabel(\'Inverse error\')
plt.xlabel(\'Iterations\')

plt.show()

def crossover (m1, m2):
for i in range(len(m1)):
for j in range(len(m1[i])):
for k in range(len(m1[i][j])):
if r >= 0:
output1[i][j][k] = m1[i][j][k]
output2[i][j][k] = m2[i][j][k]
elif r < 0:
output1[i][j][k] = m2[i][j][k]
output2[i][j][k] = m1[i][j][k]
r -=1
return output1, output2

def mutate (m):
# could include a constant to control
# how much the weight is mutated by
for i in range(len(m)):
for j in range(len(m[i])):
for k in range(len(m[i][j])):
if random.random() < mutation_rate:
m[i][j][k] = random.uniform(-2.0,2.0)

if __name__ == "__main__":
main()
pat = [
[[5.1, 3.5, 1.4, 0.2], [-1], [\'Iris-setosa\']] ,
[[4.9, 3.0, 1.4, 0.2], [-1], [\'Iris-setosa\']] ,
[[4.7, 3.2, 1.3, 0.2], [-1], [\'Iris-setosa\']] ,
[[5.4, 3.9, 1.7, 0.4], [-1], [\'Iris-setosa\']] ,
[[4.6, 3.4, 1.4, 0.3], [-1], [\'Iris-setosa\']] ,
[[5.0, 3.4, 1.5, 0.2], [-1], [\'Iris-setosa\']] ,
[[4.4, 2.9, 1.4, 0.2], [-1], [\'Iris-setosa\']] ,
[[4.9, 3.1, 1.5, 0.1], [-1], [\'Iris-setosa\']] ,
[[5.4, 3.7, 1.5, 0.2], [-1], [\'Iris-setosa\']] ,
[[4.8, 3.4, 1.6, 0.2], [-1], [\'Iris-setosa\']] ,
[[4.8, 3.0, 1.4, 0.1], [-1], [\'Iris-setosa\']] ,
[[4.3, 3.0, 1.1, 0.1], [-1], [\'Iris-setosa\']] ,
[[5.8, 4.0, 1.2, 0.2], [-1], [\'Iris-setosa\']] ,
[[5.7, 4.4, 1.5, 0.4], [-1], [\'Iris-setosa\']] ,
[[5.4, 3.9, 1.3, 0.4], [-1], [\'Iris-setosa\']] ,
[[5.1, 3.5, 1.4, 0.3], [-1], [\'Iris-setosa\']] ,
[[5.7, 3.8, 1.7, 0.3], [-1], [\'Iris-setosa\']] ,
[[5.1, 3.8, 1.5, 0.3], [-1], [\'Iris-setosa\']] ,
[[5.4, 3.4, 1.7, 0.2], [-1], [\'Iris-setosa\']] ,
[[5.1, 3.7, 1.5, 0.4], [-1], [\'Iris-setosa\']] ,
[[4.6, 3.6, 1.0, 0.2], [-1], [\'Iris-setosa\']] ,
[[5.1, 3.3, 1.7, 0.5], [-1], [\'Iris-setosa\']] ,
[[4.8, 3.4, 1.9, 0.2], [-1], [\'Iris-setosa\']] ,
[[5.0, 3.0, 1.6, 0.2], [-1], [\'Iris-setosa\']] ,
[[5.0, 3.4, 1.6, 0.4], [-1], [\'Iris-setosa\']] ,
[[5.2, 3.5, 1.5, 0.2], [-1], [\'Iris-setosa\']] ,
[[5.2, 3.4, 1.4, 0.2], [-1], [\'Iris-setosa\']] ,
[[4.7, 3.2, 1.6, 0.2], [-1], [\'Iris-setosa\']] ,
[[4.8, 3.1, 1.6, 0.2], [-1], [\'Iris-setosa\']] ,
[[5.4, 3.4, 1.5, 0.4], [-1], [\'Iris-setosa\']] ,
[[5.2, 4.1, 1.5, 0.1], [-1], [\'Iris-setosa\']] ,
[[5.5, 4.2, 1.4, 0.2], [-1], [\'Iris-setosa\']] ,
[[4.9, 3.1, 1.5, 0.1], [-1], [\'Iris-setosa\']] ,
[[5.0, 3.2, 1.2, 0.2], [-1], [\'Iris-setosa\']] ,
[[5.5, 3.5, 1.3, 0.2], [-1], [\'Iris-setosa\']] ,
[[4.9, 3.1, 1.5, 0.1], [-1], [\'Iris-setosa\']] ,
[[4.4, 3.0, 1.3, 0.2], [-1], [\'Iris-setosa\']] ,
[[5.1, 3.4, 1.5, 0.2], [-1], [\'Iris-setosa\']] ,
[[5.0, 3.5, 1.3, 0.3], [-1], [\'Iris-setosa\']] ,
[[4.5, 2.3, 1.3, 0.3], [-1], [\'Iris-setosa\']] ,
[[4.4, 3.2, 1.3, 0.2], [-1], [\'Iris-setosa\']] ,
[[5.0, 3.5, 1.6, 0.6], [-1], [\'Iris-setosa\']] ,
[[5.1, 3.8, 1.9, 0.4], [-1], [\'Iris-setosa\']] ,
[[4.8, 3.0, 1.4, 0.3], [-1], [\'Iris-setosa\']] ,
[[5.1, 3.8, 1.6, 0.2], [-1], [\'Iris-setosa\']] ,
[[4.6, 3.2, 1.4, 0.2], [-1], [\'Iris-setosa\']] ,
[[5.3, 3.7, 1.5, 0.2], [-1], [\'Iris-setosa\']] ,
[[5.0, 3.3, 1.4, 0.2], [-1], [\'Iris-setosa\']] ,
[[7.0, 3.2, 4.7, 1.4], [0], [\'Iris-versicolor\']] ,
[[6.4, 3.2, 4.5, 1.5], [0], [\'Iris-versicolor\']] ,
[[6.9, 3.1, 4.9, 1.5], [0], [\'Iris-versicolor\']] ,
[[5.5, 2.3, 4.0, 1.3], [0], [\'Iris-versicolor\']] ,
[[6.5, 2.8, 4.6, 1.5], [0], [\'Iris-versicolor\']] ,
[[5.7, 2.8, 4.5, 1.3], [0], [\'Iris-versicolor\']] ,
[[6.3, 3.3, 4.7, 1.6], [0], [\'Iris-versicolor\']] ,
[[4.9, 2.4, 3.3, 1.0], [0], [\'Iris-versicolor\']] ,
[[6.6, 2.9, 4.6, 1.3], [0], [\'Iris-versicolor\']] ,
[[5.2, 2.7, 3.9, 1.4], [0], [\'Iris-versicolor\']] ,
[[5.0, 2.0, 3.5, 1.0], [0], [\'Iris-versicolor\']] ,
[[5.9, 3.0, 4.2, 1.5], [0], [\'Iris-versicolor\']] ,
[[6.0, 2.2, 4.0, 1.0], [0], [\'Iris-versicolor\']] ,
[[6.1, 2.9, 4.7, 1.4], [0], [\'Iris-versicolor\']] ,
[[5.6, 2.9, 3.6, 1.3], [0], [\'Iris-versicolor\']] ,
[[6.7, 3.1, 4.4, 1.4], [0], [\'Iris-versicolor\']] ,
[[5.6, 3.0, 4.5, 1.5], [0], [\'Iris-versicolor\']] ,
[[5.8, 2.7, 4.1, 1.0], [0], [\'Iris-versicolor\']] ,
[[6.2, 2.2, 4.5, 1.5], [0], [\'Iris-versicolor\']] ,
[[5.6, 2.5, 3.9, 1.1], [0], [\'Iris-versicolor\']] ,
[[5.9, 3.2, 4.8, 1.8], [0], [\'Iris-versicolor\']] ,
[[6.1, 2.8, 4.0, 1.3], [0], [\'Iris-versicolor\']] ,
[[6.3, 2.5, 4.9, 1.5], [0], [\'Iris-versicolor\']] ,
[[6.1, 2.8, 4.7, 1.2], [0], [\'Iris-versicolor\']] ,
[[6.4, 2.9, 4.3, 1.3], [0], [\'Iris-versicolor\']] ,
[[6.6, 3.0, 4.4, 1.4], [0], [\'Iris-versicolor\']] ,
[[6.8, 2.8, 4.8, 1.4], [0], [\'Iris-versicolor\']] ,
[[6.7, 3.0, 5.0, 1.7], [0], [\'Iris-versicolor\']] ,
[[6.0, 2.9, 4.5, 1.5], [0], [\'Iris-versicolor\']] ,
[[5.7, 2.6, 3.5, 1.0], [0], [\'Iris-versicolor\']] ,
[[5.5, 2.4, 3.8, 1.1], [0], [\'Iris-versicolor\']] ,
[[5.5, 2.4, 3.7, 1.0], [0], [\'Iris-versicolor\']] ,
[[5.8, 2.7, 3.9, 1.2], [0], [\'Iris-versicolor\']] ,
[[6.0, 2.7, 5.1, 1.6], [0], [\'Iris-versicolor\']] ,
[[5.4, 3.0, 4.5, 1.5], [0], [\'Iris-versicolor\']] ,
[[6.0, 3.4, 4.5, 1.6], [0], [\'Iris-versicolor\']] ,
[[6.7, 3.1, 4.7, 1.5], [0], [\'Iris-versicolor\']] ,
[[6.3, 2.3, 4.4, 1.3], [0], [\'Iris-versicolor\']] ,
[[5.6, 3.0, 4.1, 1.3], [0], [\'Iris-versicolor\']] ,
[[6.1, 3.0, 4.6, 1.4], [0], [\'Iris-versicolor\']] ,
[[5.8, 2.6, 4.0, 1.2], [0], [\'Iris-versicolor\']] ,
[[5.0, 2.3, 3.3, 1.0], [0], [\'Iris-versicolor\']] ,
[[5.6, 2.7, 4.2, 1.3], [0], [\'Iris-versicolor\']] ,
[[5.7, 3.0, 4.2, 1.2], [0], [\'Iris-versicolor\']] ,
[[5.7, 2.9, 4.2, 1.3], [0], [\'Iris-versicolor\']] ,
[[6.2, 2.9, 4.3, 1.3], [0], [\'Iris-versicolor\']] ,
[[5.1, 2.5, 3.0, 1.1], [0], [\'Iris-versicolor\']] ,
[[5.7, 2.8, 4.1, 1.3], [0], [\'Iris-versicolor\']] ,
[[6.3, 3.3, 6.0, 2.5], [1], [\'Iris-virginica\']] ,
[[5.8, 2.7, 5.1, 1.9], [1], [\'Iris-virginica\']] ,
[[7.1, 3.0, 5.9, 2.1], [1], [\'Iris-virginica\']] ,
[[6.3, 2.9, 5.6, 1.8], [1], [\'Iris-virginica\']] ,
[[6.5, 3.0, 5.8, 2.2], [1], [\'Iris-virginica\']] ,
[[7.6, 3.0, 6.6, 2.1], [1], [\'Iris-virginica\']] ,
[[4.9, 2.5, 4.5, 1.7], [1], [\'Iris-virginica\']] ,
[[7.3, 2.9, 6.3, 1.8], [1], [\'Iris-virginica\']] ,
[[6.7, 2.5, 5.8, 1.8], [1], [\'Iris-virginica\']] ,
[[7.2, 3.6, 6.1, 2.5], [1], [\'Iris-virginica\']] ,
[[6.5, 3.2, 5.1, 2.0], [1], [\'Iris-virginica\']] ,
[[6.4, 2.7, 5.3, 1.9], [1], [\'Iris-virginica\']] ,
[[6.8, 3.0, 5.5, 2.1], [1], [\'Iris-virginica\']] ,
[[5.7, 2.5, 5.0, 2.0], [1], [\'Iris-virginica\']] ,
[[5.8, 2.8, 5.1, 2.4], [1], [\'Iris-virginica\']] ,
[[7.7, 3.8, 6.7, 2.2], [1], [\'Iris-virginica\']] ,
[[7.7, 2.6, 6.9, 2.3], [1], [\'Iris-virginica\']] ,
[[6.0, 2.2, 5.0, 1.5], [1], [\'Iris-virginica\']] ,
[[6.9, 3.2, 5.7, 2.3], [1], [\'Iris-virginica\']] ,
[[5.6, 2.8, 4.9, 2.0], [1], [\'Iris-virginica\']] ,
[[7.7, 2.8, 6.7, 2.0], [1], [\'Iris-virginica\']] ,
[[6.3, 2.7, 4.9, 1.8], [1], [\'Iris-virginica\']] ,
[[6.7, 3.3, 5.7, 2.1], [1], [\'Iris-virginica\']] ,
[[7.2, 3.2, 6.0, 1.8], [1], [\'Iris-virginica\']] ,
[[6.2, 2.8, 4.8, 1.8], [1], [\'Iris-virginica\']] ,
[[6.1, 3.0, 4.9, 1.8], [1], [\'Iris-virginica\']] ,
[[6.4, 2.8, 5.6, 2.1], [1], [\'Iris-virginica\']] ,
[[7.2, 3.0, 5.8, 1.6], [1], [\'Iris-virginica\']] ,
[[7.4, 2.8, 6.1, 1.9], [1], [\'Iris-virginica\']] ,
[[7.9, 3.8, 6.4, 2.0], [1], [\'Iris-virginica\']] ,
[[6.4, 2.8, 5.6, 2.2], [1], [\'Iris-virginica\']] ,
[[6.3, 2.8, 5.1, 1.5], [1], [\'Iris-virginica\']] ,
[[6.1, 2.6, 5.6, 1.4], [1], [\'Iris-virginica\']] ,
[[7.7, 3.0, 6.1, 2.3], [1], [\'Iris-virginica\']] ,
[[6.3, 3.4, 5.6, 2.4], [1], [\'Iris-virginica\']] ,
[[6.4, 3.1, 5.5, 1.8], [1], [\'Iris-virginica\']] ,
[[6.0, 3.0, 4.8, 1.8], [1], [\'Iris-virginica\']] ,
[[6.9, 3.1, 5.4, 2.1], [1], [\'Iris-virginica\']] ,
[[6.7, 3.1, 5.6, 2.4], [1], [\'Iris-virginica\']] ,
[[6.9, 3.1, 5.1, 2.3], [1], [\'Iris-virginica\']] ,
[[5.8, 2.7, 5.1, 1.9], [1], [\'Iris-virginica\']] ,
[[6.8, 3.2, 5.9, 2.3], [1], [\'Iris-virginica\']] ,
[[6.7, 3.3, 5.7, 2.5], [1], [\'Iris-virginica\']] ,
[[6.7, 3.0, 5.2, 2.3], [1], [\'Iris-virginica\']] ,
[[6.3, 2.5, 5.0, 1.9], [1], [\'Iris-virginica\']] ,
[[6.5, 3.0, 5.2, 2.0], [1], [\'Iris-virginica\']] ,
[[6.2, 3.4, 5.4, 2.3], [1], [\'Iris-virginica\']] ,
[[5.9, 3.0, 5.1, 1.8], [1], [\'Iris-virginica\']]
]

testpat = [
[[5.1, 3.5, 1.4, 0.2], [-1], [\'Iris-setosa\']] ,
[[4.9, 3.0, 1.4, 0.2], [-1], [\'Iris-setosa\']] ,
[[4.7, 3.2, 1.3, 0.2], [-1], [\'Iris-setosa\']] ,
[[5.4, 3.9, 1.7, 0.4], [-1], [\'Iris-setosa\']] ,
[[4.6, 3.4, 1.4, 0.3], [-1], [\'Iris-setosa\']] ,
[[5.0, 3.4, 1.5, 0.2], [-1], [\'Iris-setosa\']] ,
[[4.4, 2.9, 1.4, 0.2], [-1], [\'Iris-setosa\']] ,
[[4.9, 3.1, 1.5, 0.1], [-1], [\'Iris-setosa\']] ,
[[5.4, 3.7, 1.5, 0.2], [-1], [\'Iris-setosa\']] ,
[[4.8, 3.4, 1.6, 0.2], [-1], [\'Iris-setosa\']] ,
[[4.8, 3.0, 1.4, 0.1], [-1], [\'Iris-setosa\']] ,
[[4.3, 3.0, 1.1, 0.1], [-1], [\'Iris-setosa\']] ,
[[5.8, 4.0, 1.2, 0.2], [-1], [\'Iris-setosa\']] ,
[[5.7, 4.4, 1.5, 0.4], [-1], [\'Iris-setosa\']] ,
[[5.4, 3.9, 1.3, 0.4], [-1], [\'Iris-setosa\']] ,
[[5.1, 3.5, 1.4, 0.3], [-1], [\'Iris-setosa\']] ,
[[5.7, 3.8, 1.7, 0.3], [-1], [\'Iris-setosa\']] ,
[[5.1, 3.8, 1.5, 0.3], [-1], [\'Iris-setosa\']] ,
[[5.4, 3.4, 1.7, 0.2], [-1], [\'Iris-setosa\']] ,
[[5.1, 3.7, 1.5, 0.4], [-1], [\'Iris-setosa\']] ,
[[4.6, 3.6, 1.0, 0.2], [-1], [\'Iris-setosa\']] ,
[[5.1, 3.3, 1.7, 0.5], [-1], [\'Iris-setosa\']] ,
[[4.8, 3.4, 1.9, 0.2], [-1], [\'Iris-setosa\']] ,
[[5.0, 3.0, 1.6, 0.2], [-1], [\'Iris-setosa\']] ,
[[5.0, 3.4, 1.6, 0.4], [-1], [\'Iris-setosa\']] ,
[[5.2, 3.5, 1.5, 0.2], [-1], [\'Iris-setosa\']] ,
[[5.2, 3.4, 1.4, 0.2], [-1], [\'Iris-setosa\']] ,
[[4.7, 3.2, 1.6, 0.2], [-1], [\'Iris-setosa\']] ,
[[4.8, 3.1, 1.6, 0.2], [-1], [\'Iris-setosa\']] ,
[[5.4, 3.4, 1.5, 0.4], [-1], [\'Iris-setosa\']] ,
[[5.2, 4.1, 1.5, 0.1], [-1], [\'Iris-setosa\']] ,
[[5.5, 4.2, 1.4, 0.2], [-1], [\'Iris-setosa\']] ,
[[4.9, 3.1, 1.5, 0.1], [-1], [\'Iris-setosa\']] ,
[[5.0, 3.2, 1.2, 0.2], [-1], [\'Iris-setosa\']] ,
[[5.5, 3.5, 1.3, 0.2], [-1], [\'Iris-setosa\']] ,
[[4.9, 3.1, 1.5, 0.1], [-1], [\'Iris-setosa\']] ,
[[4.4, 3.0, 1.3, 0.2], [-1], [\'Iris-setosa\']] ,
[[5.1, 3.4, 1.5, 0.2], [-1], [\'Iris-setosa\']] ,
[[5.0, 3.5, 1.3, 0.3], [-1], [\'Iris-setosa\']] ,
[[4.5, 2.3, 1.3, 0.3], [-1], [\'Iris-setosa\']] ,
[[4.4, 3.2, 1.3, 0.2], [-1], [\'Iris-setosa\']] ,
[[5.0, 3.5, 1.6, 0.6], [-1], [\'Iris-setosa\']] ,
[[5.1, 3.8, 1.9, 0.4], [-1], [\'Iris-setosa\']] ,
[[4.8, 3.0, 1.4, 0.3], [-1], [\'Iris-setosa\']] ,
[[5.1, 3.8, 1.6, 0.2], [-1], [\'Iris-setosa\']] ,
[[4.6, 3.2, 1.4, 0.2], [-1], [\'Iris-setosa\']] ,
[[5.3, 3.7, 1.5, 0.2], [-1], [\'Iris-setosa\']] ,
[[5.0, 3.3, 1.4, 0.2], [-1], [\'Iris-setosa\']] ,
[[7.0, 3.2, 4.7, 1.4], [0], [\'Iris-versicolor\']] ,
[[6.4, 3.2, 4.5, 1.5], [0], [\'Iris-versicolor\']] ,
[[6.9, 3.1, 4.9, 1.5], [0], [\'Iris-versicolor\']] ,
[[5.5, 2.3, 4.0, 1.3], [0], [\'Iris-versicolor\']] ,
[[6.5, 2.8, 4.6, 1.5], [0], [\'Iris-versicolor\']] ,
[[5.7, 2.8, 4.5, 1.3], [0], [\'Iris-versicolor\']] ,
[[6.3, 3.3, 4.7, 1.6], [0], [\'Iris-versicolor\']] ,
[[4.9, 2.4, 3.3, 1.0], [0], [\'Iris-versicolor\']] ,
[[6.6, 2.9, 4.6, 1.3], [0], [\'Iris-versicolor\']] ,
[[5.2, 2.7, 3.9, 1.4], [0], [\'Iris-versicolor\']] ,
[[5.0, 2.0, 3.5, 1.0], [0], [\'Iris-versicolor\']] ,
[[5.9, 3.0, 4.2, 1.5], [0], [\'Iris-versicolor\']] ,
[[6.0, 2.2, 4.0, 1.0], [0], [\'Iris-versicolor\']] ,
[[6.1, 2.9, 4.7, 1.4], [0], [\'Iris-versicolor\']] ,
[[5.6, 2.9, 3.6, 1.3], [0], [\'Iris-versicolor\']] ,
[[6.7, 3.1, 4.4, 1.4], [0], [\'Iris-versicolor\']] ,
[[5.6, 3.0, 4.5, 1.5], [0], [\'Iris-versicolor\']] ,
[[5.8, 2.7, 4.1, 1.0], [0], [\'Iris-versicolor\']] ,
[[6.2, 2.2, 4.5, 1.5], [0], [\'Iris-versicolor\']] ,
[[5.6, 2.5, 3.9, 1.1], [0], [\'Iris-versicolor\']] ,
[[5.9, 3.2, 4.8, 1.8], [0], [\'Iris-versicolor\']] ,
[[6.1, 2.8, 4.0, 1.3], [0], [\'Iris-versicolor\']] ,
[[6.3, 2.5, 4.9, 1.5], [0], [\'Iris-versicolor\']] ,
[[6.1, 2.8, 4.7, 1.2], [0], [\'Iris-versicolor\']] ,
[[6.4, 2.9, 4.3, 1.3], [0], [\'Iris-versicolor\']] ,
[[6.6, 3.0, 4.4, 1.4], [0], [\'Iris-versicolor\']] ,
[[6.8, 2.8, 4.8, 1.4], [0], [\'Iris-versicolor\']] ,
[[6.7, 3.0, 5.0, 1.7], [0], [\'Iris-versicolor\']] ,
[[6.0, 2.9, 4.5, 1.5], [0], [\'Iris-versicolor\']] ,
[[5.7, 2.6, 3.5, 1.0], [0], [\'Iris-versicolor\']] ,
[[5.5, 2.4, 3.8, 1.1], [0], [\'Iris-versicolor\']] ,
[[5.5, 2.4, 3.7, 1.0], [0], [\'Iris-versicolor\']] ,
[[5.8, 2.7, 3.9, 1.2], [0], [\'Iris-versicolor\']] ,
[[6.0, 2.7, 5.1, 1.6], [0], [\'Iris-versicolor\']] ,
[[5.4, 3.0, 4.5, 1.5], [0], [\'Iris-versicolor\']] ,
[[6.0, 3.4, 4.5, 1.6], [0], [\'Iris-versicolor\']] ,
[[6.7, 3.1, 4.7, 1.5], [0], [\'Iris-versicolor\']] ,
[[6.3, 2.3, 4.4, 1.3], [0], [\'Iris-versicolor\']] ,
[[5.6, 3.0, 4.1, 1.3], [0], [\'Iris-versicolor\']] ,
[[6.1, 3.0, 4.6, 1.4], [0], [\'Iris-versicolor\']] ,
[[5.8, 2.6, 4.0, 1.2], [0], [\'Iris-versicolor\']] ,
[[5.0, 2.3, 3.3, 1.0], [0], [\'Iris-versicolor\']] ,
[[5.6, 2.7, 4.2, 1.3], [0], [\'Iris-versicolor\']] ,
[[5.7, 3.0, 4.2, 1.2], [0], [\'Iris-versicolor\']] ,
[[5.7, 2.9, 4.2, 1.3], [0], [\'Iris-versicolor\']] ,
[[6.2, 2.9, 4.3, 1.3], [0], [\'Iris-versicolor\']] ,
[[5.1, 2.5, 3.0, 1.1], [0], [\'Iris-versicolor\']] ,
[[5.7, 2.8, 4.1, 1.3], [0], [\'Iris-versicolor\']] ,
[[6.3, 3.3, 6.0, 2.5], [1], [\'Iris-virginica\']] ,
[[5.8, 2.7, 5.1, 1.9], [1], [\'Iris-virginica\']] ,
[[7.1, 3.0, 5.9, 2.1], [1], [\'Iris-virginica\']] ,
[[6.3, 2.9, 5.6, 1.8], [1], [\'Iris-virginica\']] ,
[[6.5, 3.0, 5.8, 2.2], [1], [\'Iris-virginica\']] ,
[[7.6, 3.0, 6.6, 2.1], [1], [\'Iris-virginica\']] ,
[[4.9, 2.5, 4.5, 1.7], [1], [\'Iris-virginica\']] ,
[[7.3, 2.9, 6.3, 1.8], [1], [\'Iris-virginica\']] ,
[[6.7, 2.5, 5.8, 1.8], [1], [\'Iris-virginica\']] ,
[[7.2, 3.6, 6.1, 2.5], [1], [\'Iris-virginica\']] ,
[[6.5, 3.2, 5.1, 2.0], [1], [\'Iris-virginica\']] ,
[[6.4, 2.7, 5.3, 1.9], [1], [\'Iris-virginica\']] ,
[[6.8, 3.0, 5.5, 2.1], [1], [\'Iris-virginica\']] ,
[[5.7, 2.5, 5.0, 2.0], [1], [\'Iris-virginica\']] ,
[[5.8, 2.8, 5.1, 2.4], [1], [\'Iris-virginica\']] ,
[[7.7, 3.8, 6.7, 2.2], [1], [\'Iris-virginica\']] ,
[[7.7, 2.6, 6.9, 2.3], [1], [\'Iris-virginica\']] ,
[[6.0, 2.2, 5.0, 1.5], [1], [\'Iris-virginica\']] ,
[[6.9, 3.2, 5.7, 2.3], [1], [\'Iris-virginica\']] ,
[[5.6, 2.8, 4.9, 2.0], [1], [\'Iris-virginica\']] ,
[[7.7, 2.8, 6.7, 2.0], [1], [\'Iris-virginica\']] ,
[[6.3, 2.7, 4.9, 1.8], [1], [\'Iris-virginica\']] ,
[[6.7, 3.3, 5.7, 2.1], [1], [\'Iris-virginica\']] ,
[[7.2, 3.2, 6.0, 1.8], [1], [\'Iris-virginica\']] ,
[[6.2, 2.8, 4.8, 1.8], [1], [\'Iris-virginica\']] ,
[[6.1, 3.0, 4.9, 1.8], [1], [\'Iris-virginica\']] ,
[[6.4, 2.8, 5.6, 2.1], [1], [\'Iris-virginica\']] ,
[[7.2, 3.0, 5.8, 1.6], [1], [\'Iris-virginica\']] ,
[[7.4, 2.8, 6.1, 1.9], [1], [\'Iris-virginica\']] ,
[[7.9, 3.8, 6.4, 2.0], [1], [\'Iris-virginica\']] ,
[[6.4, 2.8, 5.6, 2.2], [1], [\'Iris-virginica\']] ,
[[6.3, 2.8, 5.1, 1.5], [1], [\'Iris-virginica\']] ,
[[6.1, 2.6, 5.6, 1.4], [1], [\'Iris-virginica\']] ,
[[7.7, 3.0, 6.1, 2.3], [1], [\'Iris-virginica\']] ,
[[6.3, 3.4, 5.6, 2.4], [1], [\'Iris-virginica\']] ,
[[6.4, 3.1, 5.5, 1.8], [1], [\'Iris-virginica\']] ,
[[6.0, 3.0, 4.8, 1.8], [1], [\'Iris-virginica\']] ,
[[6.9, 3.1, 5.4, 2.1], [1], [\'Iris-virginica\']] ,
[[6.7, 3.1, 5.6, 2.4], [1], [\'Iris-virginica\']] ,
[[6.9, 3.1, 5.1, 2.3], [1], [\'Iris-virginica\']] ,
[[5.8, 2.7, 5.1, 1.9], [1], [\'Iris-virginica\']] ,
[[6.8, 3.2, 5.9, 2.3], [1], [\'Iris-virginica\']] ,
[[6.7, 3.3, 5.7, 2.5], [1], [\'Iris-virginica\']] ,
[[6.7, 3.0, 5.2, 2.3], [1], [\'Iris-virginica\']] ,
[[6.3, 2.5, 5.0, 1.9], [1], [\'Iris-virginica\']] ,
[[6.5, 3.0, 5.2, 2.0], [1], [\'Iris-virginica\']] ,
[[6.2, 3.4, 5.4, 2.3], [1], [\'Iris-virginica\']] ,
[[5.9, 3.0, 5.1, 1.8], [1], [\'Iris-virginica\']]
]





 

分类:

技术点:

相关文章: