﻿### Séparation données d'entraînement / test
"""

def separer(X, Y, p):
    Xtrain, Xtest, Ytrain, Ytest = [], [], [], []
    for i in range(len(X)):
        if i <= p * len(X) :
            Xtrain.append(X[i])
            Ytrain.append(Y[i])
        else:
            Xtest.append(X[i])
            Ytest.append(Y[i])
    return np.array(Xtrain), np.array(Xtest), np.array(Ytrain), np.array(Ytest)
  
Xtrain, Xtest, Ytrain, Ytest = separer(iris.data, iris.target, .8) # cette séparation n'est pas deale avec notre jeu de données car les classes 0 sont toutes au début, puis les classes 1 ensemble, puis les classes 2.

# 2e version + adaptée au jeu de données iris:
# on met p*10 (p correspondant au %) iris sur 10 dans Xtrain , Ytrain, et 1/5 dans Xtest, Ytest dans l'ordre ou ils sont stockés
def separer2(X, Y, p):
    nb = p*10
    cptr = 0
    Xtrain, Xtest, Ytrain, Ytest = [], [], [], []
    for i in range(len(X)):
      if cptr <nb  :
            Xtrain.append(X[i])
            Ytrain.append(Y[i])
            cptr +=1
      else:
            Xtest.append(X[i])
            Ytest.append(Y[i])
            cptr +=1
            if cptr == 10 :            
              cptr = 0
      
    return np.array(Xtrain), np.array(Xtest), np.array(Ytrain), np.array(Ytest)
  
Xtrain, Xtest, Ytrain, Ytest = separer(iris.data, iris.target, .8)
Xtrain, Xtest, Ytrain, Ytest = separer2(iris.data, iris.target, .8)