Что приведет к перезаписи copy_X в линейных моделях sklearn?

#python #scikit-learn

#python #scikit-learn

Вопрос:

В документации по линейной регрессии приведено следующее:

 copy_X : boolean, optional, default True
If True, X will be copied; else, it may be overwritten.
  

Оперативная память для меня ограничена, и я бы предпочел установить copy_X = False , какой сценарий будет, в котором мой X будет перезаписан, и есть ли флаг, чтобы увидеть, произошло ли это, чтобы предупредить меня о перезагрузке данных?

Ответ №1:

Поскольку вы установили copy_X для параметра значение False, вам будет предоставлена новая копия до тех пор, пока размерность вашей разреженной матрицы scipy не будет равна размеру после передачи логики метода _ensure_sparse_format в строке 371. Кроме того, метод scipy astype по умолчанию создает копию (т.Е. astype Метод)

Комментарии:

1. Я не слишком знаком с Scipy, поэтому я не следил за вашим ответом. Я отправляю ему массив numpy, зачем ему преобразовывать его в разреженную матрицу? И, кроме того, почему размеры разреженной матрицы будут отличаться? Наконец, я не видел такого высокого скачка в оперативной памяти, когда я устанавливал copy_X=False , почему это было бы, если бы по умолчанию создавалась копия?

2. привет @Al-BaraaEl-Hag, в вашем случае ваша матрица не является разреженной матрицей, верно?

3. если вы следуете исходному коду, это может иметь место, когда вы даете разреженную матрицу

4. Да, моя матрица не разрежена. Означает ли это, что я могу установить copy_X=True , не беспокоясь об этом?

5. это то, что я мог бы объяснить, и исходный код говорит, да.