ну аrr data load всю историю содержит? значит кластеризация на всей истории проводится
меня не на..шь, проницателен как ванга
# Функция для загрузки выборки - можно выбрать тип файлов CSV или feather
def f_Load_Data(Work_Dir,Name_File,Use_feather,Save_feather):
# Булева переменная, которая определяет способ загрузки данных
#Use_feather = True # Измените на False, если хотите использовать CSV
if Use_feather:
feather_file_Load = Work_Dir+'\\'+Name_File+'.feather'
# Чтение данных из файла Feather
Load_data=feather.read_feather(feather_file_Load)
# Вывод информации о типах данных для каждого столбца
print(Load_data.dtypes)
# Разделение на предикторы и целевой столбец
x_Load = Load_data.drop(columns=['Time','Target_P','Target_100','Target_100_Buy','Target_100_Sell'])
y_Load = Load_data['Target_100']
Target_Info_Load=Load_data[['Time', 'Target_P', 'Target_100', 'Target_100_Buy', 'Target_100_Sell']].copy()
del Load_data
else:
# Чтение данных из файла CSV
csv_file_Load = Work_Dir+'\\'+Name_File+'.csv'
with open(csv_file_Load, 'r', newline='', encoding='utf-8') as file:
# Создаем объект чтения CSV файла
csv_reader = csv.reader(file, delimiter=';')
# Читаем только первую строку (заголовки)
headers = next(csv_reader)
# Находим индекс столбца "Время"
index_of_time_column = headers.index("Time")
# Подсчитываем количество столбцов до столбца "Time"
num_columns_before_time = index_of_time_column
# Теперь переменная num_columns_before_time содержит количество столбцов до столбца "Время"
print(f"Количество столбцов до 'Время': {num_columns_before_time}")
# Удалим ссылку/закроем файл
del file
# Определение типов данных для бинарных столбцов
LAST_BINARY_COLUMN_INDEX = num_columns_before_time
dtype_dict = {i: 'int8'for i in range(LAST_BINARY_COLUMN_INDEX)}#Указывается значение от 0 до числа, но не включительно!
dtype_dict.update({'Time': 'object', 'Target_P': 'int8', 'Target_100': 'int8', 'Target_100_Buy': 'float64', 'Target_100_Sell': 'float64'})
# Загрузка данных из файла CSV с указанием типов данных и срезом столбцов
#Load_data = pd.read_csv(csv_file_Load, sep=';',decimal='.', dtype=dtype_dict, usecols=range(LAST_BINARY_COLUMN_INDEX + 5))
Load_data = pd.read_csv(csv_file_Load, sep=';',decimal='.')
# Преобразование столбца "Time" в тип данных datetime64
Load_data['Time'] = pd.to_datetime(Load_data['Time'], errors='coerce')
# Вывод информации о типах данных для каждого столбца
print(Load_data.dtypes)
# Сохраняем в формате Feather
if Save_feather:
feather.write_feather(Load_data, Work_Dir+'\\'+Name_File+'.feather')
# Разделение на предикторы и целевой столбец
x_Load = Load_data.drop(columns=['Time','Target_P','Target_100','Target_100_Buy','Target_100_Sell'])
y_Load = Load_data['Target_100']
Target_Info_Load=Load_data[['Time', 'Target_P', 'Target_100', 'Target_100_Buy', 'Target_100_Sell']].copy()
print('Target_Info_Load=',Target_Info_Load)
del Load_data
return x_Load,y_Load,Target_Info_Load
Нет, данные из файлов, разбитых на подвыборки ранее.
А где тогда аплай на другой подвыборке (тест, экзам) того же скалера
типа здесь
n_Set = len(arr_Set_Viborka)
for Set in range(n_Set):
if Use_Load_CSV == True:
arr_data_load,arr_Target,arr_Info=f_Load_Data(dir_cb+'\\Setup',arr_Set_Viborka[Set],True,False)#Открыть файл в формате feather
if Set == 0:#Нормализая - для не бинарной выборки
scaler.fit(arr_data_load)
arr_data_load = scaler.transform(arr_data_load)
а, ну допустим норм
тогда не понимаю почему такая разница в результатах
тогда не понимаю почему такая разница в результатах
У меня два предположения - либо это эффект вынужденного рандома (цифры то меняются), либо эффект есть от разных нормализаций. Я так же не ожидал такого результата.
А вот как проверить - что важней из этих вариантов - загадка.
У меня два предположения - либо это эффект вынужденного рандома (цифры то меняются), либо эффект есть от разных нормализаций. Я так же не ожидал такого результата.
А вот как проверить - что важней из этих вариантов - загадка.
я пробовал на своих данных - у меня любые нормализации ухудшают результат )
Ниже на графике по оси x - смещение вероятности в целом для кластера на выборке train, а по оси y - финансовый результат в кластере для трёх выборок. Для выборки train фин результат уменьшен в 3 раза, так как она содержит в три раза больше примеров, а хотелось сопоставимости на графике,
Да, не всё так идеально, и при небольшом смещении в отрицательную зону вероятности можно получать прибыль (здесь разметка на ловлю трендов), но в целом наклон линий регрессии для каждой подвыборки улавливает зависимость прибыли от смещения вероятности в кластере.
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Вроде не должно
ну аrr data load всю историю содержит? значит кластеризация на всей истории проводится
проницателен как ванга
ну аrr data load всю историю содержит? значит кластеризация на всей истории проводится
меня не на..шь, проницателен как ванга
Нет, данные из файлов, разбитых на подвыборки ранее.
Нет, данные из файлов, разбитых на подвыборки ранее.
А где тогда аплай на другой подвыборке (тест, экзам) того же скалера
А где тогда аплай на другой подвыборке (тест, экзам) того же скалера
Вроде как это же
На первой выборке считаем, и на всех применяем в цикле.А где тогда аплай на другой подвыборке (тест, экзам) того же скалера
типа здесь
а, ну допустим норм
тогда не понимаю почему такая разница в результатах
тогда не понимаю почему такая разница в результатах
У меня два предположения - либо это эффект вынужденного рандома (цифры то меняются), либо эффект есть от разных нормализаций. Я так же не ожидал такого результата.
А вот как проверить - что важней из этих вариантов - загадка.
У меня два предположения - либо это эффект вынужденного рандома (цифры то меняются), либо эффект есть от разных нормализаций. Я так же не ожидал такого результата.
А вот как проверить - что важней из этих вариантов - загадка.
я пробовал на своих данных - у меня любые нормализации ухудшают результат )
потом перепроверю, если не забудуя пробовал на своих данных - у меня любые нормализации ухудшают результат )
потом перепроверю, если не забудуОтмечу, что использовал последовательную кластеризацию - дерево глубиной 3 уровня по 3 кластера на лист - может и это как то влияет, но не уверен.
Ниже на графике по оси x - смещение вероятности в целом для кластера на выборке train, а по оси y - финансовый результат в кластере для трёх выборок. Для выборки train фин результат уменьшен в 3 раза, так как она содержит в три раза больше примеров, а хотелось сопоставимости на графике,
Да, не всё так идеально, и при небольшом смещении в отрицательную зону вероятности можно получать прибыль (здесь разметка на ловлю трендов), но в целом наклон линий регрессии для каждой подвыборки улавливает зависимость прибыли от смещения вероятности в кластере.