Guest User

Untitled

a guest
Jan 17th, 2019
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.00 KB | None | 0 0
  1. from keras.layers import Input, Embedding, LSTM, Dense
  2. from keras.models import Model
  3. import csv
  4. import keras
  5. import pandas as pd
  6. import numpy as np
  7. from keras.constraints import nonneg
  8.  
  9.  
  10. notes = pd.read_csv('notes.csv',sep=';',encoding='utf-8')
  11. compare = pd.read_csv('compare.csv',sep=';',encoding='utf-8')
  12. len(compare),len(notes)
  13.  
  14. meilleur = list(compare.BEST_ETU)
  15.  
  16. best = pd.DataFrame(columns=['ID_ETU','MATHS','ECO','INFO','ANGLAIS'])
  17. for elt in meilleur:
  18. best = best.append(notes.iloc[elt:elt+1,:])
  19.  
  20. moins_bon = []
  21. for i in range(len(compare)):
  22. if compare.ID_ETU1[i] != compare.BEST_ETU[i]:
  23. moins_bon.append(compare.ID_ETU1[i])
  24. else :
  25. moins_bon.append(compare.ID_ETU2[i])
  26.  
  27. worst = pd.DataFrame(columns=['ID_ETU','MATHS','ECO','INFO','ANGLAIS'])
  28. for elt in moins_bon:
  29. worst = worst.append(notes.iloc[elt:elt+1,:])
  30.  
  31. best = best.drop(columns='ID_ETU')
  32. worst = worst.drop(columns='ID_ETU')
  33.  
  34. best = best.as_matrix()
  35. worst = worst.as_matrix()
  36.  
  37. labels = np.array(1).repeat(len(compare))
  38.  
  39. best.values
  40.  
  41. labels
  42.  
  43. input1 = Input(shape=(4,), dtype='float32', name='input1')
  44. input2 = Input(shape=(4,), dtype='float32', name='input2')
  45.  
  46. dense = Dense(1, activation='linear', W_constraint= nonneg(), bias=False)
  47. dense1 = dense(input1)
  48. dense2 = dense(input2)
  49.  
  50. merged_vector = keras.layers.concatenate([dense1, dense2], axis=-1)
  51.  
  52. predictions = Dense(1, activation='sigmoid')(merged_vector)
  53.  
  54. # We define a trainable model linking the
  55. # tweet inputs to the predictions
  56. model = Model(inputs=[input1,input2], outputs=predictions)
  57.  
  58. model.compile(optimizer='sgd',
  59. loss='binary_crossentropy',
  60. metrics=['accuracy'])
  61.  
  62. model.fit([best, worst], labels, epochs=20)
  63.  
  64. poids = list(dense.get_weights())
  65.  
  66. print(poids/np.sum(poids))
  67.  
  68. premier = [0.2943,0.1542,0.1197,0.4316]
  69. deuxième = [0.0672,0.5911,0.06136159,0.2802]
  70. troisieme = [0.3024,0.0953,0.5506,0.0515]
  71.  
  72. # 4928 vs 7791 --> 7791
  73. #moyenne_4928_1 = 11.861*0.2943 + 13.40322*0.1542 + 11.6018*0.1197 + 8.09329*0.4316
  74.  
  75. print(moyenne_4928_2,moyenne_7791_2)
Add Comment
Please, Sign In to add comment