遺傳算法的神經(jīng)網(wǎng)絡(luò)python實(shí)現(xiàn)源碼

代碼過(guò)程中,把代碼過(guò)程較好的一些代碼段記錄起來(lái)涮较,下邊代碼是關(guān)于遺傳算法的神經(jīng)網(wǎng)絡(luò)python實(shí)現(xiàn)的代碼稠鼻,應(yīng)該對(duì)大伙有一些用處。

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']]

]

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末狂票,一起剝皮案震驚了整個(gè)濱河市候齿,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌闺属,老刑警劉巖慌盯,帶你破解...
    沈念sama閱讀 219,589評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異掂器,居然都是意外死亡亚皂,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門国瓮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)灭必,“玉大人,你說(shuō)我怎么就攤上這事乃摹〗欤” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,933評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵孵睬,是天一觀的道長(zhǎng)播歼。 經(jīng)常有香客問(wèn)我,道長(zhǎng)掰读,這世上最難降的妖魔是什么秘狞? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,976評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮蹈集,結(jié)果婚禮上谒撼,老公的妹妹穿的比我還像新娘。我一直安慰自己雾狈,他們只是感情好廓潜,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,999評(píng)論 6 393
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般辩蛋。 火紅的嫁衣襯著肌膚如雪呻畸。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,775評(píng)論 1 307
  • 那天悼院,我揣著相機(jī)與錄音伤为,去河邊找鬼。 笑死据途,一個(gè)胖子當(dāng)著我的面吹牛绞愚,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播颖医,決...
    沈念sama閱讀 40,474評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼位衩,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了熔萧?” 一聲冷哼從身側(cè)響起糖驴,我...
    開(kāi)封第一講書(shū)人閱讀 39,359評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎佛致,沒(méi)想到半個(gè)月后贮缕,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,854評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡俺榆,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,007評(píng)論 3 338
  • 正文 我和宋清朗相戀三年感昼,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片罐脊。...
    茶點(diǎn)故事閱讀 40,146評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡定嗓,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出爹殊,到底是詐尸還是另有隱情蜕乡,我是刑警寧澤奸绷,帶...
    沈念sama閱讀 35,826評(píng)論 5 346
  • 正文 年R本政府宣布梗夸,位于F島的核電站,受9級(jí)特大地震影響号醉,放射性物質(zhì)發(fā)生泄漏反症。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,484評(píng)論 3 331
  • 文/蒙蒙 一畔派、第九天 我趴在偏房一處隱蔽的房頂上張望铅碍。 院中可真熱鬧,春花似錦线椰、人聲如沸胞谈。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,029評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)烦绳。三九已至卿捎,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間径密,已是汗流浹背午阵。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,153評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留享扔,地道東北人底桂。 一個(gè)月前我還...
    沈念sama閱讀 48,420評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像惧眠,于是被迫代替她去往敵國(guó)和親籽懦。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,107評(píng)論 2 356

推薦閱讀更多精彩內(nèi)容