Если я извлекаю определенные строки данных в качестве данных обучения, то подгонка модели (скажем, LogisticRegressionCV
в моем случае) просто не работает.
Я хочу доказать или опровергнуть утверждение, что «некоторые наблюдения более информативны (и, следовательно, строят модели с большей точностью прогнозирования), чем другие».
Чтобы оценить точность, я разделил данные на две части, используя sklearn train_test_split
, подгонял модель с LogisticRegressionCV
, и она работает очень хорошо с общей точностью около 70%.
Затем, используя некоторые методы, я оцениваю все свои данные (1200 наблюдений) с некоторыми допущениями, полагая, что некоторые данные могут быть более полезными, чем другие. Затем я вытаскиваю частичный список таких данных обучения с индексом из кадра данных. Используя эти краткие данные, я обучаю другую модель LogisticRegressionCV
, и она полностью терпит неудачу. Это не делает прогноз. Использование coef_
, показывающее, что все факторы имеют коэффициенты, почти все из которых меньше 0.001
.
Таким образом, вместо краткого перечисления данных я «извлекаю все данные» из обучающего набора, и модель все равно не работает. Затем я пытаюсь отсортировать все данные по самому оригинальному обучению, заданному по индексу строки (конечно, сортируя и x, и y), и это тоже не получается, доказывая, что процесс сортировки является проблемой. Я отсортировал данные, используя df1=df.sort_index().copy()
.
Почему тренировочный набор нельзя сортировать перед тренировкой, даже если все индексы строк верны? Во-вторых, если это необходимо, чтобы получить фиксированный список образцов для моделирования, как его можно успешно обучить?
Я ожидаю, что модели, построенные по двум обстоятельствам (обучающий набор из train_test_split
и обучающий набор train_test_split
, отсортированные по индексу строки) одинаковы.