Невозможно очистить историю сеанса или отключить навигацию назад / вперед от непривилегированного кода. Ближайшим доступным решением является метод location.replace (), который заменяет текущий элемент истории сеанса указанным URL.
blockquote>
Индексы должны быть целыми. Можно попробовать:
train_size = int(len(all_x)*0.7)
valid_size = int(len(all_x)*0.2)
test_size = int(len(x_prime)*0.1)
Вы пытаетесь нарезать кадр данных pandas с float
, так как следующие операции генерируют нецелые значения для размера данных обучения, проверки и тестирования:
train_size = float(len(all_x)*0.7)
valid_size = float(len(all_x)*0.2)
test_size = float(len(x_prime)*0.1)
Обратите внимание, что ваше разделение неправильно; Ваш обучающий набор включает в себя все точки данных наборов проверки и тестирования, в то время как ваш набор проверки содержит все экземпляры набора испытаний. Кроме того, вы никогда не должны полагаться на разбиения, которые не перемешивают ваш набор данных. Следующая функция должна помочь вам.
import numpy as np
import pandas as pd
def train_valid_test(df, train_split=.7, valid_split=.2, seed=None):
np.random.seed(seed)
perm = np.random.permutation(df.index)
training_max_index = int(train_split * len(df.index))
validate_max_index = int(valid_split * len(df.index)) + training_max_index
training = df.ix[perm[:training_max_index]]
validation = df.ix[perm[training_max_index:validate_max_index]]
test = df.ix[perm[validate_max_index:]]
return training, validation, test
Если вы хотите передать зависимые (y
) и независимые (x
) переменные по отдельности, вы можете использовать следующую функцию:
import numpy as np
import pandas as pd
def train_valid_test(x_data, y_data, train_split=.7, valid_split=.2, seed=None):
if len(x_data.index) != len(y_data.index):
raise Exception('x_data and y_data must contain the same number of data points'
np.random.seed(seed)
perm = np.random.permutation(x_data.index)
x_data = x_data.reindex(perm)
y_data = y_data.reindex(perm)
training_max_index = int(train_split * len(x_data.index))
validate_max_index = int(valid_split * len(x_data.index)) + training_max_index
X_train, y_train = x_data[:training_max_index], y_data[:training_max_index]
X_valid, y_valid = x_data[:validate_max_index], y_data[:validate_max_index]
X_test, y_test = x_data[validate_max_index:], y_data[validate_max_index:]
return X_train, X_valid, X_test, y_train, y_valid, y_test