Форум сайта python.su
Подскажите пожалуйста способ (метод) для разбития данных из Excel на обучающею и тестовые выборки для keras и потом их нормализации?
В интернете видел только примеры с данными из внешних источников уже в нужном формате, а мне нужно свои.
Вот как я пытаюсь это сделать:
from keras.datasets import boston_housing from keras.models import Sequential from keras.layers import Dense import openpyxl import numpy as np #Для начала загрузим библиотеку и выберем нужную книгу и рабочий лист: wb = openpyxl.load_workbook(filename = 'E:/Fast_Water_project/Gidrolodge_.xlsx') sheet_oren = wb['Or'] def Not_None (x): if x!=None: return float(str(x).replace(',','.')) else: return float(0) #считываем заданный диапазон factor_days = [Not_None(v[0].value) for v in sheet_oren['E2':'E1126']] factor_osadky = [Not_None(v[0].value) for v in sheet_oren['F2':'F1126']] factor_level_snow = [Not_None(v[0].value) for v in sheet_oren['G2':'G1126']] factor_chandge_lvl_snow = [Not_None(v[0].value) for v in sheet_oren['H2':'H1126']] factor_reserv_water = [Not_None(v[0].value) for v in sheet_oren['I2':'I1126']] factor_frez_ground = [Not_None(v[0].value) for v in sheet_oren['J2':'J1126']] factor_ice = [Not_None(v[0].value) for v in sheet_oren['K2':'K1126']] factor_max_t = [Not_None(v[0].value) for v in sheet_oren['L2':'L1126']] factor_min_t = [Not_None(v[0].value) for v in sheet_oren['M2':'M1126']] factor_humidity = [Not_None(v[0].value) for v in sheet_oren['N2':'N1126']] factor_deficit_humidity = [Not_None(v[0].value) for v in sheet_oren['O2':'O1126']] factor_solar = [Not_None(v[0].value) for v in sheet_oren['P2':'P1126']] factor_level_water = [Not_None(v[0].value) for v in sheet_oren['Q2':'Q1126']] resolve_chandge_lvl_water = [Not_None(v[0].value) for v in sheet_oren['R2':'R1126']] #factors_resolve=[factor_days,factor_osadky,factor_level_snow,factor_chandge_lvl_snow,factor_reserv_water,factor_frez_ground,factor_ice # ,factor_max_t,factor_min_t,factor_humidity,factor_deficit_humidity,factor_solar,factor_level_water,resolve_chandge_lvl_water] factors_list=list() resolve_list=list() factors_list.append(factor_days) factors_list.append(factor_osadky) factors_list.append(factor_level_snow) factors_list.append(factor_chandge_lvl_snow) factors_list.append(factor_reserv_water) factors_list.append(factor_frez_ground) factors_list.append(factor_ice) factors_list.append(factor_max_t) factors_list.append(factor_min_t) factors_list.append(factor_humidity) factors_list.append(factor_deficit_humidity) factors_list.append(factor_solar) factors_list.append(factor_level_water) resolve_list=[x for x in resolve_chandge_lvl_water] factors=np.array(factors_list) resolve=np.array(resolve_list) (x_train, y_train), (x_test, y_test) = boston_housing.load_data(factors,resolve) #Нормализация данных #Вычитаем среднее значение и делим на стандартное отклонение # Среднее значение # mean = x_train.mean(axis=0) # Стандартное отклонение # std = x_train.std(axis=0) # x_train -= mean # x_train /= std # x_test -= mean # x_test /= std
Factors:
[
…
]
Ressolve:
Отредактировано Volodya (Фев. 13, 2020 17:13:46)
Офлайн
Непонятно.
Ты пишешь, что хочешь использовать свои данные, и долго грузишь их из Excel'я. Тогда зачем тебе этот самый boston_housing? Это учебный датасет, как ты его к своим данным хочешь прилепить?
Конкретно метод boston_housing.load_data() нужен для загрузки своих учебных данных и принимает именованные аргументы path, test_split и seed, к твоим данным это не может иметь отношения.
Для разбиения своих данных на основную и тестовую выборки обычно используют функцию train_test_split из библиотеки sklearn:
from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=42)
Офлайн
StriverЧто-то анаконда не может найти эту библиотеку:
Для разбиения своих данных на основную и тестовую выборки обычно используют функцию train_test_split из библиотеки sklearn:
Отредактировано Volodya (Фев. 14, 2020 16:57:43)
Офлайн
StriverЧто-то все равно не нравится ему мой набор данных
Для разбиения своих данных на основную и тестовую выборки обычно используют функцию train_test_split из библиотеки sklearn:
File “E:\Fast_Water_project\NeironNet.py”, line 71, in <module>
X_train, X_test, y_train, y_test = train_test_split(factors,resolve, test_size=0.33, random_state=42)
File “C:\Users\Vladimir\Anaconda3\envs\krs\lib\site-packages\sklearn\model_selection\_split.py”, line 2118, in train_test_split
arrays = indexable(*arrays)
File “C:\Users\Vladimir\Anaconda3\envs\krs\lib\site-packages\sklearn\utils\validation.py”, line 248, in indexable
check_consistent_length(*result)
File “C:\Users\Vladimir\Anaconda3\envs\krs\lib\site-packages\sklearn\utils\validation.py”, line 212, in check_consistent_length
“ samples: %r” % )
ValueError: Found input variables with inconsistent numbers of samples:
Отредактировано Volodya (Фев. 14, 2020 19:02:35)
Офлайн
StriverЯ первый раз пишу на Python. До этого мы изучали другие языки. Поэтому и написал сюда
Всегда странно видеть такие вопросы совсем не начального уровня в теме “для новичков”…
Офлайн