aimclub / FEDOT

Automated modeling and machine learning framework FEDOT
https://fedot.readthedocs.io
BSD 3-Clause "New" or "Revised" License
632 stars 86 forks source link

Incorrect data indexing in wrapper of InputData #873

Closed aPovidlo closed 1 year ago

aPovidlo commented 2 years ago

In case data without index column, function from_csv set the first column as index and this cause troubles in model fitting. One of the possible solution is to set the default parameter to None or checking if there are columns with name Index or same one name.

https://github.com/nccr-itmo/FEDOT/blob/3db5464d06a5813d16f2219989d8dce8c3d82aaa/fedot/core/data/data.py#L46

MorrisNein commented 1 year ago

Оч спорный момент. С давних-предавних времён первая колонка в таблице воспринимается как индекс, на это уже завязано много примеров.

Предлагаю сделать вот что: проверять первую колонку, и если в ней есть пропуски или неуникальные значения, то генерить новый индекс

aPovidlo commented 1 year ago

Оч спорный момент. С давних-предавних времён первая колонка в таблице воспринимается как индекс, на это уже завязано много примеров.

Предлагаю сделать вот что: проверять первую колонку, и если в ней есть пропуски или неуникальные значения, то генерить новый индекс

Ишью для случаев если первая колонка не индексы, но при этом федот пытается сделать ею.

MorrisNein commented 1 year ago

Ишью для случаев если первая колонка не индексы, но при этом федот пытается сделать ею.

Понимаю, но на практике колонка с индексом может называться очень по-разному, а у нас уже долгое время фреймворк функционирует как "1 колонка - индекс". Мы сломаем большую часть примеров этим изменением

MorrisNein commented 1 year ago

Возможно, нужно как-то иначе определять, индекс ли это, а не по заголовку. Я предлагаю к упомянутым выше ограничениям на уникальность и отсутствие пропусков добавить ещё проверку на допустимость типа данных, чтобы туда не попадали float. Но это всё ещё может быть проблемой, если первая колонка это целочисленное осмысленное значение или текстовые данные.

Расскажи подробнее, какие данные ошибочно были приняты за индекс в твоём случае

MorrisNein commented 1 year ago

Можно и адаптировать примеры, сделав индексом по-умолчанию автонумерацию. Просто единолично такое решение принимать не хочется

andreygetmanov commented 1 year ago

Ишью для случаев если первая колонка не индексы, но при этом федот пытается сделать ею.

Понимаю, но на практике колонка с индексом может называться очень по-разному, а у нас уже долгое время фреймворк функционирует как "1 колонка - индекс". Мы сломаем большую часть примеров этим изменением

Эти поломки чинятся заменой значения всего 1 аргумента во всех примерах, поэтому починка не должна занять много времени