示例#1
0
	def train(self):
		global fbest,wbest
		f_list = []
		for i in range(G):
			for p in self.particles:
				f = self.game(p.x)
				f_list.append(f[1])
				if f[1] > fbest:
					fbest = f[1]
					wbest = f[0]
				if p.f < f[1]:
					p.f = f[1]
					p.pbest = copy.copy(p.x)
					if self.f < p.f: self.update(p.x,p.f)
			for p in self.particles: p.move(self.gbest)

			print(f"{i+1}: {max(f_list)}")
			
			#ネットワーク保存
			if i == int(G/10) -1: self.save(wbest,i+1)
			if i == int(G/2) -1: self.save(wbest,i+1)

		print(fbest)
		plot(f_list)
		return wbest
示例#2
0
    def train(self):
        global fbest, wbest
        for i in range(G):
            for w in self.w_list:
                p = self.game(w)
                if p[1] > fbest:
                    fbest = p[1]
                    wbest = p[0]
                self.p_list.append(self.Parent(p[0], p[1]))
                self.f_list.append(p[1])

            #評価の良い順にソート
            self.p_list = sorted(self.p_list, key=lambda p: p.f, reverse=True)
            print(f"{i+1}: ", max(self.f_list))

            #淘汰
            del self.p_list[P:]

            #新たな子の生成
            self.w_list = [
                self.p_list[random.randint(0, P - 1)].mutation()
                for i in range(C)
            ]

            if i == int(G / 10) - 1: self.save(wbest, i + 1)
            if i == int(G / 2) - 1: self.save(wbest, i + 1)

        print(fbest)
        plot(self.f_list)
        return wbest
示例#3
0
	def train(self):
		global fbest,wbest
		#初期の子のリスト生成
		p_list,c_list,f_list,g_list = [],[],[],[]
		for i in range(G):
			for w in self.w_list:
				p = self.game(w)
				if p[1] > fbest:
					fbest = p[1]
					wbest = p[0]
				c_list.append(self.Population(p[0],p[1]))
				f_list.append(p[1])
			g_list.append(max(f_list))
			
			print(f"{i+1}: {max(f_list)}")

			if i < 1:
				p_list = copy.copy(c_list)
			else:
				p_list = [p_list[n] if p_list[n].f > c_list[n].f else c_list[n] for n in range(P)]
			
			self.w_list = self._generate(p_list)

			c_list.clear()

			#ネットワーク保存
			if i == int(G/10) -1: self.save(wbest,i+1)
			if i == int(G/2) -1: self.save(wbest,i+1)

		print(fbest)
		plot(f_list)
		return wbest
示例#4
0
def main():
    os.chdir(
        '/Users/ericzhou/Desktop/程序代码/Programming/Visual_Studio/Python/Projects/Lottery'
    )
    file_name = 'data.csv'
    if not os.path.exists('data.csv'):
        maxi = input('How many pages of data to use(≤135) > ')
        get_history_result(file_name, maxi)
    else:
        choice = input('Use existing data? (y/n) > ')
        if choice == 'n':
            maxi = input('How many pages of data to use(≤135) > ')
            get_history_result(file_name, maxi)
        else:
            print('Using existing data......')
            print()

    choice = input(
        '1.Linear Regression\n2.Markov Chain\n3.Manual Work\nChoose which method to use> '
    )

    try:
        if int(choice) == 1:
            get_predicted_num(file_name, 'r1', 1, 'R1')
            get_predicted_num(file_name, 'r2', 2, 'R2')
            get_predicted_num(file_name, 'r3', 3, 'R3')
            get_predicted_num(file_name, 'r4', 4, 'R4')
            get_predicted_num(file_name, 'r5', 5, 'R5')
            get_predicted_num(file_name, 'r6', 6, 'R6')
            get_predicted_num(file_name, 'b1', 7, 'B1')
        elif int(choice) == 2:
            predict_next(file_name, 'r1')
            predict_next(file_name, 'r2')
            predict_next(file_name, 'r3')
            predict_next(file_name, 'r4')
            predict_next(file_name, 'r5')
            predict_next(file_name, 'r6')
            predict_next(file_name, 'b1')
        else:
            plot(file_name)
    except ValueError:
        print('Please input a valid number!')
    def test_plot(self):
        t, wsol = self.scene.sim(5, 10)
        plot(wsol, t)

        self.scene.set_shape(self.body)
        t, wsol = self.scene.sim(3, 40)
        plot(wsol, t)

        self.scene.set_init_velo(2 * math.cos(math.pi / 2),
                                 2 * math.sin(math.pi / 2))
        self.scene.set_unbal_forces(Fx2, Fy2)
        self.scene.set_shape(self.triangle)
        t, wsol = self.scene.sim(2, 30)
        plot(wsol, t)
示例#6
0
    def plotData(self, widget):
        """
		Plot specific data, if widget.get_text() == "" plot the current session
		"""
        nombre = self.glade.get_object("entry2").get_text()
        plot(nombre)
示例#7
0
    
    # capturando os valores globais do paralelismo 
    comm = MPI.COMM_WORLD
    size = comm.Get_size()
    rank = comm.Get_rank()
    
    # print(sys.argv[2], size)
    num_ants = int(int(sys.argv[2]) / size)
    # Gerando um Graph
    # Graph(num Formigas, Gerações, alpha, beta, rho)
    g = Graph(num_ants, int(sys.argv[3]), float(sys.argv[4]), float(sys.argv[5]), float(sys.argv[6]))

    # Carrega o grafo do arquivo passado como parametro
    points = g.load_from_file(sys.argv[1])

    # Imprime a solução
    print('Rank: {}'.format(rank))
    solution = g.solve()

    g.update_global()
    results = comm.gather(solution, root=0)
    if rank == 0:
        results.sort()
        # Imprimindo o custo da solução
        print("cost =", results[0][0])

        # Plotando grafo do caminho encontrado
        plot(points, results[0][1], int(sys.argv[7]))
        plot2(points, g.pm.matrix, int(sys.argv[7]))

import numpy

from FileHandler import read_from_file
from Kmeans import kmeans
from Plot import plot
from scipy.spatial.distance import cdist


def get_error(dataSet, centroids, labels):
    errors = [0 for i in range(len(centroids))]
    for i in range(len(labels)):
        errors[labels[i]] += numpy.math.sqrt(
            (dataSet[i][0] - centroids[labels[i]][0])**2 +
            (dataSet[i][1] - centroids[labels[i]][1])**2) / labels.count(
                labels[i])
    return errors


if __name__ == '__main__':
    dataSet = read_from_file("Dataset1.csv")
    min_iteration = 15
    k = 4
    centroids, labels = kmeans(dataSet, k, min_iteration)
    plot(labels, dataSet, k)
    print(
        "for k=" + str(k) +
        " the average distance between the cluster center and the data points in that cluster : "
        + str(get_error(dataSet, centroids, labels)))
from Cluster import Cluster as cluster
from Plot import Plot as plot
import  numpy as np
from DatabaseOperation import Database as database
import datetime

#print (datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"))

p1 = plot()

def Cluster_Plot_Result(CurrentCluster):

    # n_clusters_, labels, X, cluster_belong, cluster_centers_indices
    cluster_belong = CurrentCluster.finder(CurrentCluster.labels, len(CurrentCluster.X)-1)
    Last_Transaction_Distance, Maximum_Distance, Last_Transaction_Cluster_Centroid = p1.plotClusters(CurrentCluster.n_clusters_, CurrentCluster.labels, CurrentCluster.X, cluster_belong, CurrentCluster.cluster_centers_indices)
    CurrentCluster.setDistances(Last_Transaction_Distance, Maximum_Distance, Last_Transaction_Cluster_Centroid)
    print(CurrentCluster.Last_Transaction_Distance)

def createClusters(data, title):
    p1.title=title
    temp_Cluster=cluster(np.asarray(data, dtype=float))
    temp_Cluster.makeCluster()
    Cluster_Plot_Result(temp_Cluster)
    return temp_Cluster

def calculateError(cluster):
    if int( cluster.Maximum_Distance) == 0 & int (cluster.Last_Transaction_Distance == 0.0):
        error = "F"
    elif cluster.Maximum_Distance > cluster.Last_Transaction_Distance:
        error = "L"
    elif cluster.Maximum_Distance < cluster.Last_Transaction_Distance:
    LR_Digits = LR(features_train, labels_train, features_test, labels_test)
    kaggle.kaggleize(LR_Digits[0],
                     path + "/Submission/Predictions/" + str(i) + "/LR.csv")
    Training_time.append(LR_Digits[1])
    Testing_time.append(LR_Digits[2])
    print Training_time, Testing_time

    KNN_Digits = KNN(features_train, labels_train, features_test, labels_test)
    kaggle.kaggleize(KNN_Digits[0],
                     path + "/Submission/Predictions/" + str(i) + "/KNN.csv")
    Training_time.append(KNN_Digits[1])
    Testing_time.append(KNN_Digits[2])
    print Training_time, Testing_time

    plot(c, Training_time, "Training Time", str(i), path)
    plot(c + 3, Testing_time, "Testing Time", str(i), path)
    print "K Fold CrossValidation in Progress for " + str(i) + " DataSet"

    # call Cross Validation function and saving its return error values in CV variable
    CV = kFold(features_train, labels_train, features_test, labels_test, path,
               str(i))

    #plot a graph of Neighbors vs Errors.
    values0 = CV[0].values()  # save CrossValidation set Error Values
    inds0 = CV[0].keys()  # save CrossValidation set number of neighbor values
    values1 = CV[1].values()  # save Training set Error Values
    inds1 = CV[1].keys(
    )  # save respective number of neighbors for Training set Errors.
    plt.figure(c + 10, figsize=(6, 4))
    plt.plot(inds0, values0, 'sb-',
示例#11
0
    game = SnakeGame()

    #game_loop
    while True:
        # get state
        state_old = game.get_state()

        # get move
        action = agent.get_action(state_old)

        # perform move and get new state
        reward, done, score = game.play_step(action)
        state_new = game.get_state()

        # train short memory
        agent.train_short_memory(state_old, action, reward, state_new, done)

        # remember
        agent.remember(state_old, action, reward, state_new, done)

        if done:  #게임이 끝났을때
            # train long memory, plot result
            game.reset()
            agent.n_games += 1
            agent.train_long_memory()
            plot_scores.append(score)
            total_score += score
            mean_score = total_score / agent.n_games
            plot_mean_scores.append(mean_score)
            plot(plot_scores, plot_mean_scores)
示例#12
0
	def plotData(self,widget):
		"""
		Plot specific data, if widget.get_text() == "" plot the current session
		"""
		nombre = self.glade.get_object("entry2").get_text()
		plot(nombre)
示例#13
0
b2 = BodyT([11, 9, 9, 11], [11, 11, 9, 9], [10, 10, 10, 10])
print(b2.cm_x(), b2.cm_y(), b2.mass(), b2.m_inert())
# cm for b2 should be shifted to 10, 10; b.m_inert() should be equal to b2.m_inert()

lst = [c, t, b, b2]
for s in lst:
    print(s.cm_x(), s.cm_y(), s.mass(), s.m_inert())

S = Scene(c, Fx, Fy, 0, 0)

# exercise interface for Scene
S.get_shape()
S.get_unbal_forces()
S.get_init_velo()

# exercise setters for Scene
S.set_shape(c)
S.set_unbal_forces(Fx, Fy)
S.set_init_velo(0, 0)

t, wsol = S.sim(10, 100)

for t1, w1 in zip(t, wsol):
    print("t=", t1, "rx=", w1[0], "ry=", w1[1], "vx=", w1[2], "vy=", w1[3])

# extract ry values
print(wsol[0:, 1])

plot(wsol, t)