Версия 1.2#

Для краткого описания основных особенностей выпуска, пожалуйста, обратитесь к Основные новости выпуска scikit-learn 1.2.

Легенда для списков изменений

  • Основная функция что-то большое, что вы не могли сделать раньше.

  • Функция что-то, что вы не могли делать раньше.

  • Эффективность существующий признак теперь может не требовать столько вычислений или памяти.

  • Улучшение различные мелкие улучшения.

  • Исправление то, что ранее не работало, как задокументировано – или согласно разумным ожиданиям – теперь должно работать.

  • Изменение API вам потребуется изменить свой код, чтобы добиться того же эффекта в будущем; или функция будет удалена в будущем.

Версия 1.2.2#

Март 2023

Журнал изменений#

sklearn.base#

sklearn.calibration#

  • Исправление Предупреждение об устаревании выводится при использовании base_estimator__ префикс для установки параметров оценщика, используемого в calibration.CalibratedClassifierCV. #25477 by Tim Head.

sklearn.cluster#

sklearn.compose#

  • Исправление Исправлена ошибка в compose.ColumnTransformer который теперь поддерживает пустой выбор столбцов, когда set_output(transform="pandas"). #25570 by Томас Фан.

sklearn.ensemble#

sklearn.feature_selection#

sklearn.inspection#

  • Исправление Выдать более информативное сообщение об ошибке в inspection.partial_dependence при работе со смешанными типами категорий, которые не могут быть отсортированы по numpy.uniqueЭта проблема обычно возникает, когда категории str и присутствуют пропущенные значения, используя np.nan. #25774 by Guillaume Lemaitre.

sklearn.isotonic#

sklearn.preprocessing#

  • Исправление preprocessing.OneHotEncoder.drop_idx_ теперь правильно ссылается на удаленную категорию в categories_ атрибут когда есть редкие категории. #25589 by Томас Фан.

  • Исправление preprocessing.OrdinalEncoder теперь корректно поддерживает encoded_missing_value или unknown_value устанавливается в мощность категорий при наличии пропущенных значений в обучающих данных. #25704 by Томас Фан.

sklearn.tree#

sklearn.utils#

  • Исправление Исправлена ошибка в utils.check_array который теперь корректно выполняет проверку на неконечные значения в соответствии со спецификацией Array API. #25619 by Томас Фан.

  • Исправление utils.multiclass.type_of_target может идентифицировать pandas нулевые типы данных как цели классификации. #25638 by Томас Фан.

Версия 1.2.1#

Январь 2023

Измененные модели#

Следующие оценщики и функции, при обучении на тех же данных и параметрах, могут создавать модели, отличные от предыдущей версии. Это часто происходит из-за изменений в логике моделирования (исправления ошибок или улучшения) или в процедурах случайной выборки.

  • Исправление Обученные компоненты в decomposition.MiniBatchDictionaryLearning может отличаться. Онлайн обновления достаточных статистик теперь правильно учитывают размеры пакетов. #25354 by Жереми дю Буаберранже.

  • Исправление The categories_ атрибут preprocessing.OneHotEncoder теперь всегда содержит массив object`s when using predefined categories that are strings. Predefined categories encoded as bytes will no longer work with `X закодированные как строки. #25174 by Tim Head.

Изменения, затрагивающие все модули#

  • Исправление Поддержка pandas.Int64 типизированный y для классификаторов и регрессоров. #25089 by Tim Head.

  • Исправление Устранение ложных предупреждений для оценщиков, внутренне использующих методы поиска соседей. #25129 by Julien Jerphanion.

  • Исправление Исправлена ошибка, при которой текущая конфигурация игнорировалась в оценщиках, использующих n_jobs > 1. Эта ошибка была вызвана задачами, отправленными вспомогательным потоком joblib как sklearn.get_config используется для доступа к пустой потоковой локальной конфигурации вместо конфигурации, видимой из потока, где joblib.Parallel был впервые вызван. #25363 by Guillaume Lemaitre.

Журнал изменений#

sklearn.base#

  • Исправление Исправлена регрессия в BaseEstimator.__getstate__ который мог бы помешать некоторым оценщикам быть сериализованными при использовании Python 3.11. #25188 by Бенджамин Боссан.

  • Исправление Наследование от base.TransformerMixin будет оборачивать только transform метод, если класс определяет transform самого себя. #25295 by Томас Фан.

sklearn.datasets#

  • Исправление Исправляет несоответствие в datasets.fetch_openml между liac-arff и парсером pandas, когда вводится начальный пробел после разделителя. Спецификации ARFF требуют игнорировать начальный пробел. #25312 by Guillaume Lemaitre.

  • Исправление Исправлена ошибка в datasets.fetch_openml при использовании parser="pandas" где одиночные кавычки и escape-символы обратной косой черты обрабатывались неправильно. #25511 by Guillaume Lemaitre.

sklearn.decomposition#

  • Исправление Исправлена ошибка в decomposition.MiniBatchDictionaryLearning где онлайн-обновления достаточных статистик были некорректными при вызове partial_fit на пакетах разного размера. #25354 by Жереми дю Буаберранже.

  • Исправление decomposition.DictionaryLearning лучше поддерживает массивы NumPy только для чтения. В частности, он лучше поддерживает большие наборы данных, которые отображаются в память, когда используется с алгоритмами координатного спуска (т.е. когда fit_algorithm='cd'). #25172 by Julien Jerphanion.

sklearn.ensemble#

sklearn.feature_extraction#

sklearn.linear_model#

sklearn.manifold#

  • Исправление manifold.TSNE теперь работает корректно, когда тип вывода установлен в pandas #25370 by Tim Head.

sklearn.model_selection#

  • Исправление model_selection.cross_validate при многометрической оценке в случае некоторых неудачных оценщиков теперь неудачные оценщики возвращают правильные оценки вместо error_score значения. #23101 by András Simon и Томас Фан.

sklearn.neural_network#

sklearn.preprocessing#

sklearn.tree#

sklearn.utils#

  • Исправление Восстановить utils.check_arrayповедение для pandas Series типа boolean. Тип сохраняется, вместо преобразования в float64. #25147 by Tim Head.

  • Изменение API utils.fixes.delayed устарел в версии 1.2.1 и будет удалён в версии 1.5. Вместо этого импортируйте utils.parallel.delayed и используем его вместе с недавно представленным utils.parallel.Parallel чтобы обеспечить правильное распространение конфигурации scikit-learn на рабочих. #25363 by Guillaume Lemaitre.

Версия 1.2.0#

Декабрь 2022

Измененные модели#

Следующие оценщики и функции, при обучении на тех же данных и параметрах, могут создавать модели, отличные от предыдущей версии. Это часто происходит из-за изменений в логике моделирования (исправления ошибок или улучшения) или в процедурах случайной выборки.

Изменения, затрагивающие все модули#

Журнал изменений#

sklearn.base#

sklearn.calibration#

  • Изменение API Переименовать base_estimator to estimator в calibration.CalibratedClassifierCV для улучшения читаемости и согласованности. Параметр base_estimator устарело и будет удалено в версии 1.4. #22054 by Кевин Ройс.

sklearn.cluster#

sklearn.datasets#

  • Улучшение Введите новый параметр parser в datasets.fetch_openml. parser="pandas" позволяет использовать очень эффективные по CPU и памяти pandas.read_csv парсер для загрузки плотных ARFF форматированных файлов наборов данных. Можно передать parser="liac-arff" использовать старый парсер LIAC. Когда parser="auto", плотные наборы данных загружаются с помощью "pandas", а разреженные наборы данных загружаются с помощью "liac-arff". В настоящее время, parser="liac-arff" по умолчанию и изменится на parser="auto" в версии 1.4 #21938 by Guillaume Lemaitre.

  • Улучшение datasets.dump_svmlight_file теперь ускорен с помощью реализации на Cython, обеспечивая ускорение в 2-4 раза. #23127 by Meekail Zain

  • Улучшение Объекты, подобные путям, такие как созданные с помощью pathlib, теперь разрешены в качестве путей в datasets.load_svmlight_file и datasets.load_svmlight_files. #19075 by Карлос Рамос Карреньо.

  • Исправление Убедитесь, что datasets.fetch_lfw_people и datasets.fetch_lfw_pairs внутренне обрезать изображения на основе slice_ параметр. #24951 by Guillaume Lemaitre.

sklearn.decomposition#

sklearn.discriminant_analysis#

sklearn.ensemble#

sklearn.feature_selection#

sklearn.gaussian_process#

  • Исправление Исправление gaussian_process.kernels.Matern поддержка nu=0.5 для PyPy (и, возможно, других интерпретаторов, отличных от CPython). #24245 by Loïc Estève.

  • Исправление The fit метод gaussian_process.GaussianProcessRegressor не будет изменять входной X в случае использования пользовательского ядра, с diag метод, который возвращает часть входных данных X. #24405 by Omar Salman.

sklearn.impute#

sklearn.inspection#

sklearn.kernel_approximation#

sklearn.linear_model#

sklearn.manifold#

  • Функция Добавлена опция использования нормализованного напряжения в manifold.MDS. Это активируется установкой нового normalize параметр для True. #10168 by Łukasz Borchmann, #12285 by Маттиас Мильтенбергер, #13042 by Маттьё Паризи, #18094 by Roth E Conrad и #22562 by Meekail Zain.

  • Улучшение Добавляет eigen_tol параметр для manifold.SpectralEmbedding. Оба manifold.spectral_embedding и manifold.SpectralEmbedding теперь распространяют eigen_tol для всех вариантов eigen_solver. Включает новую опцию eigen_tol="auto" и начинает устаревание, чтобы изменить значение по умолчанию с eigen_tol=0 to eigen_tol="auto" в версии 1.3. #23210 by Meekail Zain.

  • Улучшение manifold.Isomap теперь сохраняет dtype для np.float32 входных данных. #24714 by Rahil Parikh.

  • Изменение API Добавлен "auto" опция для normalized_stress аргумент в manifold.MDS и manifold.smacof. Обратите внимание, что normalized_stress действительна только для неметрического MDS, поэтому "auto" опция включает normalized_stress когда metric=False и отключает его, когда metric=True. "auto" станет значением по умолчанию для normalized_stress в версии 1.4. #23834 by Meekail Zain

sklearn.metrics#

sklearn.model_selection#

sklearn.multioutput#

sklearn.naive_bayes#

sklearn.neighbors#

  • Функция Добавляет новую функцию neighbors.sort_graph_by_row_values чтобы отсортировать разреженный граф CSR так, чтобы каждая строка хранилась с возрастающими значениями. Это полезно для повышения эффективности при использовании предвычисленных разреженных матриц расстояний в различных оценщиках и избежания EfficiencyWarning. #23139 by Tom Dupre la Tour.

  • Эффективность neighbors.NearestCentroid быстрее и требует меньше памяти, так как лучше использует кэши ЦП для вычисления предсказаний. #24645 by Оливье Гризель.

  • Улучшение neighbors.KernelDensity параметр bandwidth теперь принимает определение с использованием методов оценки Скотта и Сильвермана. #10468 by Рубен и #22993 by Йован Стоянович.

  • Улучшение neighbors.NeighborsBase теперь принимает полуметрику Минковского (т.е. когда \(0 < p < 1\) для metric="minkowski") для algorithm="auto" или algorithm="brute". #24750 by Рудреш Виркхаре

  • Исправление neighbors.NearestCentroid теперь выдает информативное сообщение об ошибке во время обучения вместо того чтобы завершаться с низкоуровневым сообщением об ошибке во время предсказания. #23874 by Juan Gomez.

  • Исправление Установить n_jobs=None по умолчанию (вместо 1) для neighbors.KNeighborsTransformer и neighbors.RadiusNeighborsTransformer. #24075 by Валентин Лоран.

  • Улучшение neighbors.LocalOutlierFactor теперь сохраняет dtype для numpy.float32 входных данных. #22665 by Julien Jerphanion.

sklearn.neural_network#

  • Исправление neural_network.MLPClassifier и neural_network.MLPRegressor всегда раскрывает параметры best_loss_, validation_scores_, и best_validation_score_. best_loss_ установлено в None когда early_stopping=True, в то время как validation_scores_ и best_validation_score_ установлены в None когда early_stopping=False. #24683 by Guillaume Lemaitre.

sklearn.pipeline#

sklearn.preprocessing#

sklearn.svm#

sklearn.tree#

sklearn.utils#

Участники кода и документации

Спасибо всем, кто внес вклад в поддержку и улучшение проекта с версии 1.1, включая:

2357juan, 3lLobo, Adam J. Stewart, Adam Kania, Adam Li, Aditya Anulekh, Admir Demiraj, adoublet, Adrin Jalali, Ahmedbgh, Aiko, Akshita Prasanth, Ala-Na, Alessandro Miola, Alex, Alexandr, Alexandre Perez-Lebel, Alex Buzenet, Ali H. El-Kassas, aman kumar, Amit Bera, András Simon, Andreas Grivas, Andreas Mueller, Andrew Wang, angela-maennel, Aniket Shirsat, Anthony22-dev, Antony Lee, anupam, Apostolos Tsetoglou, Aravindh R, Artur Hermano, Arturo Amor, as-90, ashah002, Ashwin Mathur, avm19, Azaria Gebremichael, b0rxington, Badr MOUFAD, Bardiya Ak, Bartłomiej Gońda, BdeGraaff, Benjamin Bossan, Benjamin Carter, berkecanrizai, Bernd Fritzke, Bhoomika, Biswaroop Mitra, Brandon TH Chen, Brett Cannon, Bsh, cache-missing, carlo, Carlos Ramos Carreño, ceh, chalulu, Changyao Chen, Charles Zablit, Chiara Marmo, Christian Lorentzen, Christian Ritter, Christian Veenhuis, christianwaldmann, Christine P. Chai, Claudio Salvatore Arcidiacono, Clément Verrier, crispinlogan, Da-Lan, DanGonite57, Daniela Fernandes, DanielGaerber, darioka, Darren Nguyen, davidblnc, david-cortes, David Gilbertson, David Poznik, Dayne, Dea María Léon, Denis, Dev Khant, Dhanshree Arora, Diadochokinetic, diederikwp, Dimitri Papadopoulos Orfanos, Dimitris Litsidis, drewhogg, Duarte OC, Dwight Lindquist, Eden Brekke, Edern, Edoardo Abati, Eleanore Denies, EliaSchiavon, Emir, ErmolaevPA, Fabrizio Damicelli, fcharras, Felipe Siola, Flynn, francesco-tuveri, Franck Charras, ftorres16, Gael Varoquaux, Geevarghese George, genvalen, GeorgiaMayDay, Gianr Lazz, Hleb Levitski, Glòria Macià Muñoz, Guillaume Lemaitre, Guillem García Subies, Guitared, gunesbayir, Haesun Park, Hansin Ahuja, Hao Chun Chang, Harsh Agrawal, harshit5674, hasan-yaman, henrymooresc, Henry Sorsky, Hristo Vrigazov, htsedebenham, humahn, i-aki-y, Ian Thompson, Ido M, Iglesys, Iliya Zhechev, Irene, ivanllt, Ivan Sedykh, Jack McIvor, jakirkham, JanFidor, Jason G, Jérémie du Boisberranger, Jiten Sidhpura, jkarolczak, João David, JohnathanPi, John Koumentis, John P, John Pangas, johnthagen, Jordan Fleming, Joshua Choo Yun Keat, Jovan Stojanovic, Juan Carlos Alfaro Jiménez, juanfe88, Juan Felipe Arias, JuliaSchoepp, Julien Jerphanion, jygerardy, ka00ri, Kanishk Sachdev, Kanissh, Kaushik Amar Das, Kendall, Kenneth Prabakaran, Kento Nozawa, kernc, Kevin Roice, Kian Eliasi, Kilian Kluge, Kilian Lieret, Kirandevraj, Kraig, krishna kumar, krishna vamsi, Kshitij Kapadni, Kshitij Mathur, Lauren Burke, Léonard Binet, lingyi1110, Lisa Casino, Logan Thomas, Loic Esteve, Luciano Mantovani, Lucy Liu, Maascha, Madhura Jayaratne, madinak, Maksym, Malte S. Kurz, Mansi Agrawal, Marco Edward Gorelli, Marco Wurps, Maren Westermann, Maria Telenczuk, Mario Kostelac, martin-kokos, Marvin Krawutschke, Masanori Kanazu, mathurinm, Matt Haberland, mauroantonioserrano, Max Halford, Maxi Marufo, maximeSaur, Maxim Smolskiy, Maxwell, m. bou, Meekail Zain, Mehgarg, mehmetcanakbay, Mia Bajić, Michael Flaks, Michael Hornstein, Michel de Ruiter, Michelle Paradis, Mikhail Iljin, Misa Ogura, Moritz Wilksch, mrastgoo, Naipawat Poolsawat, Naoise Holohan, Nass, Nathan Jacobi, Nawazish Alam, Nguyễn Văn Diễn, Nicola Fanelli, Nihal Thukarama Rao, Nikita Jare, nima10khodaveisi, Nima Sarajpoor, nitinramvelraj, NNLNR, npache, Nwanna-Joseph, Nymark Kho, o-holman, Olivier Grisel, Olle Lukowski, Omar Hassoun, Omar Salman, osman tamer, ouss1508, Oyindamola Olatunji, PAB, Pandata, partev, Paulo Sergio Soares, Petar Mlinarić, Peter Jansson, Peter Steinbach, Philipp Jung, Piet Brömmel, Pooja M, Pooja Subramaniam, priyam kakati, puhuk, Rachel Freeland, Rachit Keerti Das, Rafal Wojdyla, Raghuveer Bhat, Rahil Parikh, Ralf Gommers, ram vikram singh, Ravi Makhija, Rehan Guha, Reshama Shaikh, Richard Klima, Rob Crockett, Robert Hommes, Robert Juergens, Robin Lenz, Rocco Meli, Roman4oo, Ross Barnowski, Rowan Mankoo, Rudresh Veerkhare, Rushil Desai, Sabri Monaf Sabri, Safikh, Safiuddin Khaja, Salahuddin, Sam Adam Day, Sandra Yojana Meneses, Sandro Ephrem, Sangam, SangamSwadik, SANJAI_3, SarahRemus, Sashka Warner, SavkoMax, Scott Gigante, Scott Gustafson, Sean Atukorala, sec65, SELEE, seljaks, Shady el Gewily, Shane, shellyfung, Shinsuke Mori, Shiva chauhan, Shoaib Khan, Shogo Hida, Shrankhla Srivastava, Shuangchi He, Simon, sonnivs, Sortofamudkip, Srinath Kailasa, Stanislav (Stanley) Modrak, Stefanie Molin, stellalin7, Stéphane Collot, Steven Van Vaerenbergh, Steve Schmerler, Sven Stehle, Tabea Kossen, TheDevPanda, the-syd-sre, Thijs van Weezel, Thomas Bonald, Thomas Germer, Thomas J. Fan, Ti-Ion, Tim Head, Timofei Kornev, toastedyeast, Tobias Pitters, Tom Dupré la Tour, tomiock, Tom Mathews, Tom McTiernan, tspeng, Tyler Egashira, Valentin Laurent, Varun Jain, Vera Komeyer, Vicente Reyes-Puerta, Vinayak Mehta, Vincent M, Vishal, Vyom Pathak, wattai, wchathura, WEN Hao, William M, x110, Xiao Yuan, Xunius, yanhong-zhao-ef, Yusuf Raji, Z Adil Khwaja, zeeshan lone