Часто полезно посмотреть на фактические оптимизированные значения гиперпараметров вашей модели - в этом случае дисперсия шума, дисперсия ядра и шкала длины ядра:
class ... value
GPR/kern/lengthscales Parameter ... 3.7149993613788737
GPR/kern/variance Parameter ... 2.0572871322469534e-06
GPR/likelihood/variance Parameter ... 1.5461369937869296
Таким образом, ГП объясняет все как шум (в этом случай, фактическое значение шкал длины довольно произвольно, и это крошечная дисперсия ядра, которая важна). (Если вы используете предикат_y вместо предиката_f, вы должны получить доверительный интервал, охватывающий большинство наблюдений.) «RBF» (я предпочитаю квадрат экспоненциальный - каждое стационарное ядро описывает радиальные базисные функции ...) ядро делает очень строгие предположения относительно гладкости функции в ваших предыдущих (а также это использует только максимальные оценки вероятности точки для гиперпараметров), и поэтому в этом смысле не так много гибкости - и как только вы объяснили все данные, GP в некотором смысле «говорит» что нет сигнала, поэтому вы получаете предварительный ответ - который имеет нулевое среднее значение. Это немного помогает?
Лично я бы посчитал это причиной для обновления до 2008 года, который имеет отдельный тип данных времени.
Вы можете сохранить его как int - 24-часовое время и форматирование по необходимости.
Или сохраните его как дату-время с некоторой фиксированной датой и удалите его при необходимости для отображения: 1 января 2000 4:30 PM
Я бы использовал поле datetime, поскольку оно дает вам всю функциональность, связанную с datetime.
Я бы по-прежнему рекомендовал использовать тип данных DateTime и игнорировать значения даты - в идеале, используя статический MinDate для SQL ( Поищи в Гугле). Это даст вам преимущества работы со строго типизированным полем, и единственной стоимостью будет несколько дополнительных байтов.
Что касается диапазонов, храните их в двух отдельных столбцах. Затем вы можете вычесть одно из другого, чтобы определить разницу.
Редактировать: сделал поиск в Google.
. Поэтому, если вы придерживаетесь в 2005 году выберите статическую дату, например, 1/1/2000, и сохраните в ней время. Таким образом, 1m: 30s будет 2000-1-1 00: 01: 30.000, а 1h: 15m будет 2000-1-1 01: 15: 00.000
Затем вы можете выполнить Date2 - Date1 и получить свой результат (1h : 15: m - 1m: 30s) 2000-01-01 01: 13: 45.000. Преобразуйте это, и у вас будет 1:13:45.
Возможно, вы захотите сохранить его в виде столбца int, представляющего количество минут с полуночи. В вашей сущности вы можете выставить это как TimeSpan (или int), представляющее одно и то же. Вам нужно всего лишь выполнить преобразование между отображаемыми значениями (формат времени) и значением базы данных (минуты), чтобы выполнить ваши запросы, и это можно легко сделать в вашей сущности (например, TimeSpan.TotalMinutes).
мне кажется, что вы разрабатываете тип встречи планировщик или что-то для отображения собраний.
Я думаю, что я установил бы его с 2 столбцами MeetingStart и MeetingEnd, оба как поля даты и времени. Таким образом, вы можете определить продолжительность собрания, и, поскольку у вас уже есть дата, вы можете легко использовать ее для отображения в календаре или чем-то подобном.