Каково обоснование для линейной регрессии dask и как ее использовать? - PullRequest
0 голосов
/ 23 октября 2018

Я играл с dask и столкнулся с некоторыми проблемами.

Предположим, что мои данные хранятся в DataFrame (в стиле pandas или dask), который называется data , и япытаюсь подогнать модель LinearRegression data [yname] против data [xname] , где yname и xname - именанекоторых столбцов в моем фрейме данных.

1) версия фрейма данных Scikit-learn + pandas :

sklearn.linear_model.LinearRegression().fit*(data[xname].values.reshape(-1,1), data[yname])

2) Scikit-для обучения + версия dask для данных :

chunks = list(data[xname].map_partitions(len).compute()) sklearn.linear_model.LinearRegression().fit(data[xname].to_dask_array(chunks).reshape(-1,1), data[yname])

3) dask-ml + версия для dask данных

chunks = list(data[xname].map_partitions(len).compute()) dask_ml.linear_model.LinearRegression(C=1e12).fit(data[xname].to_dask_array(chunks).reshape(-1,1), data[yname])

Вот мои проблемы с этим:

  1. Первая версия очень быстрая на фрейме данных pandas, но если мои данные не помещаются в памяти, янеобходимо использовать dask dataframe, который занимает много времени, потому что столбец data [xname] должен быть вычислен для всех кусков, что очень медленно.На практике я хотел бы запустить одну из этих моделей для каждого столбца в моих данных .Как в этом случае максимально использовать возможности dask?
  2. Каково обоснование использования версии 3) против версии 2)?Кажется, они делают примерно то же самое.Я неправильно использую dask_ml.linear_model?Кроме того, кажется, что нет простого способа избежать штрафа (l1 / l2) в модели, кроме как установить для параметра регуляризации C высокое значение.
  3. Есть либолее простой способ, чем то, что я использую, чтобы мои данные [xname] имели правильный формат (массив с (n_samples, n_features)) для API LinearRegression?Это относится к приведению to_dask_array и изменению формы.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...