Старые версии#

Версия 0.12.1#

8 октября 2012

Выпуск 0.12.1 — это исправление ошибок без новых функций, а набор исправлений

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

Люди#

Версия 0.12#

4 сентября 2012

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

Сводка изменений API#

  • Старый scikits.learn пакет исчез; весь код должен импортировать из sklearn вместо этого, который был представлен в версии 0.9.

  • В metrics.roc_curve, thresholds массив теперь возвращается с обратным порядком, чтобы сохранить его согласованность с порядком возвращаемых fpr и tpr.

  • В hmm объекты, такие как hmm.GaussianHMM, hmm.MultinomialHMM, и т.д., все параметры должны быть переданы объекту при его инициализации, а не через fit. Теперь fit будет принимать данные только в качестве входного параметра.

  • Для всех классов SVM ошибочное поведение gamma был исправлен. Ранее значение gamma по умолчанию вычислялось только в первый раз fit был вызван и затем сохранён. Теперь он пересчитывается при каждом вызове fit.

  • Все Base классы теперь являются абстрактными метаклассами, поэтому их нельзя создать экземпляр.

  • cluster.ward_tree теперь также возвращает родительский массив. Это необходимо для ранней остановки, когда дерево не полностью построено.

  • В CountVectorizer параметры min_n и max_n были объединены с параметром n_gram_range чтобы включить одновременный поиск по сетке для обоих.

  • В CountVectorizer, слова, которые появляются только в одном документе, теперь игнорируются по умолчанию. Чтобы воспроизвести предыдущее поведение, установите min_df=1.

  • Исправлена несогласованность API: linear_model.SGDClassifier.predict_proba теперь возвращает 2D массив при обучении на двух классах.

  • Исправлена несогласованность API: discriminant_analysis.QuadraticDiscriminantAnalysis.decision_function и discriminant_analysis.LinearDiscriminantAnalysis.decision_function теперь возвращает 1D массивы при обучении на двух классах.

  • Сетка значений alpha, используемая для обучения LassoCV и ElasticNetCV теперь хранится в атрибуте alphas_ вместо переопределения параметра init alphas.

  • Линейные модели, когда alpha оценивается с помощью кросс-валидации, сохраняют оценённое значение в alpha_ атрибут, а не только alpha или best_alpha.

  • GradientBoostingClassifier теперь поддерживает staged_predict_proba, и staged_predict.

  • svm.sparse.SVC и другие разреженные классы SVM теперь устарели. Все классы в Метод опорных векторов модуль теперь автоматически выбирает разреженное или плотное представление на основе входных данных.

  • Все алгоритмы кластеризации теперь интерпретируют массив X переданный в fit как входные данные, в частности SpectralClustering и AffinityPropagation которые ранее ожидали матрицы сходства.

  • Для алгоритмов кластеризации, которые принимают желаемое количество кластеров как параметр, этот параметр теперь называется n_clusters.

Люди#

Версия 0.11#

7 мая 2012 г.

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

Основные моменты#

Прочие изменения#

Сводка изменений API#

  • covariance.EllipticEnvelop теперь устарело. Пожалуйста, используйте EllipticEnvelope вместо этого.

  • NeighborsClassifier и NeighborsRegressor удалены в модуле Ближайшие соседи. Используйте классы KNeighborsClassifier, RadiusNeighborsClassifier, KNeighborsRegressor и/или RadiusNeighborsRegressor вместо этого.

  • Разреженные классы в Стохастический градиентный спуск модуль теперь устарел.

  • В mixture.GMM, mixture.DPGMM и mixture.VBGMM, параметры должны передаваться объекту при его инициализации, а не через fit. Теперь fit будет принимать данные только как входной параметр.

  • методы rvs и decode в GMM модуль теперь устарел. sample и score или predict следует использовать вместо.

  • атрибут _scores и _pvalues в объектах одномерного отбора признаков теперь устарели. scores_ или pvalues_ следует использовать вместо.

  • В LogisticRegression, LinearSVC, SVC и NuSVC, class_weight параметр теперь является параметром инициализации, а не параметром для подгонки. Это делает возможным поиск по сетке для этого параметра.

  • LFW data теперь всегда имеет форму (n_samples, n_features) чтобы быть согласованным с набором данных лиц Olivetti. Используйте images и pairs атрибут для доступа к формам естественных изображений.

  • В LinearSVC, значение multi_class параметр изменен. Теперь варианты 'ovr' и 'crammer_singer', с 'ovr' является значением по умолчанию. Это не меняет поведение по умолчанию, но, надеемся, менее запутанно.

  • Класс feature_selection.text.Vectorizer устарел и заменен на feature_selection.text.TfidfVectorizer.

  • Вложенная структура препроцессора/анализатора для извлечения текстовых признаков была удалена. Все эти функции теперь передаются непосредственно как плоские аргументы конструктора в feature_selection.text.TfidfVectorizer и feature_selection.text.CountVectorizer, в частности следующие параметры теперь используются:

  • analyzer может быть 'word' или 'char' для переключения схемы анализа по умолчанию или использования конкретного вызываемого объекта Python (как ранее).

  • tokenizer и preprocessor были введены, чтобы по-прежнему можно было настраивать эти шаги с новым API.

  • input явно контролировать, как интерпретировать последовательность, переданную в fit и predict: имена файлов, файловые объекты или прямые (байтовые или Unicode) строки.

  • декодирование кодировки является явным и строгим по умолчанию.

  • the vocabulary, обучена или нет, теперь хранится в vocabulary_ атрибут, чтобы быть согласованным с соглашениями проекта.

  • Класс feature_selection.text.TfidfVectorizer теперь выводится непосредственно из feature_selection.text.CountVectorizer чтобы сделать поиск по сетке тривиальным.

  • методы rvs в _BaseHMM модуль теперь устарел. sample следует использовать вместо.

  • Опция обрезки лучей в _BaseHMM модуль удален, так как его сложно цитонизировать. Если вы заинтересованы, вы можете посмотреть в исторических кодах через git.

  • Загрузчик формата SVMlight теперь поддерживает файлы как с нумерацией столбцов с нуля, так и с единицы, поскольку оба встречаются "в дикой природе".

  • Аргументы в классе ShuffleSplit теперь согласованы с StratifiedShuffleSplit. Аргументы test_fraction и train_fraction устарели и переименованы в test_size и train_size и может принимать как float и int.

  • Аргументы в классе Bootstrap теперь согласованы с StratifiedShuffleSplit. Аргументы n_test и n_train устарели и переименованы в test_size и train_size и может принимать как float и int.

  • Аргумент p добавлены к классам в Ближайшие соседи чтобы указать произвольную метрику Минковского для поиска ближайших соседей.

Люди#

Версия 0.10#

11 января 2012 г.

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

Сводка изменений API#

Вот инструкции по миграции кода при обновлении с версии scikit-learn 0.9:

  • Некоторые оценщики, которые могут перезаписывать свои входные данные для экономии памяти, ранее имели overwrite_ параметры; они были заменены на copy_ параметры с прямо противоположным значением.

    Это особенно влияет на некоторые оценщики в linear_modelПоведение по умолчанию по-прежнему заключается в копировании всего переданного.

  • Загрузчик набора данных SVMlight load_svmlight_file больше не поддерживает загрузку двух файлов одновременно; используйте load_svmlight_files вместо этого. Также (неиспользуемый) buffer_mb параметр удалён.

  • Разреженные оценщики в Стохастический градиентный спуск модуль использует плотный вектор параметров coef_ вместо sparse_coef_. Это значительно улучшает производительность во время тестирования.

  • The Оценка ковариации модуль теперь имеет устойчивый оценщик ковариации, оценщик минимального определителя ковариации.

  • Метрики оценки кластеризации в cluster были рефакторизованы, но изменения обратно совместимы. Они были перемещены в metrics.cluster.supervised, вместе с metrics.cluster.unsupervised который содержит коэффициент силуэта.

  • The permutation_test_score функция теперь ведет себя так же, как cross_val_score (т.е. использует средний балл по всем фолдам.)

  • Генераторы перекрестной проверки теперь используют целочисленные индексы (indices=True) по умолчанию вместо булевых масок. Это делает его более интуитивно понятным для использования с разреженными матричными данными.

  • Функции, используемые для разреженного кодирования, sparse_encode и sparse_encode_parallel были объединены в sparse_encode, и формы массивов были транспонированы для согласованности с настройкой матричной факторизации, в отличие от настройки регрессии.

  • Исправлена ошибка на единицу в обработке формата файлов SVMlight/LibSVM; файлы, сгенерированные с использованием dump_svmlight_file должны быть перегенерированы. (Они должны продолжать работать, но случайно имели один дополнительный столбец нулей в начале.)

  • BaseDictionaryLearning класс заменен на SparseCodingMixin.

  • sklearn.utils.extmath.fast_svd был переименован randomized_svd и стандартное передискретизирование теперь фиксировано на 10 дополнительных случайных векторов вместо удвоения количества извлекаемых компонент. Новое поведение соответствует справочной статье.

Люди#

Следующие люди внесли вклад в scikit-learn с момента последнего релиза:

Версия 0.9#

21 сентября 2011

scikit-learn 0.9 был выпущен в сентябре 2011 года, через три месяца после релиза 0.8, и включает новые модули Обучение многообразию, Процесс Дирихле а также несколько новых алгоритмов и улучшений документации.

Этот выпуск также включает работу по словарному обучению, разработанную Vlad Niculae в рамках Google Summer of Code программа.

banner2 banner1 banner3

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

Сводка изменений API#

Вот инструкции по миграции кода при обновлении с версии scikit-learn 0.8:

  • The scikits.learn пакет был переименован sklearn. Все еще существует scikits.learn псевдоним пакета для обратной совместимости.

    Сторонние проекты с зависимостью от scikit-learn 0.9+ должны обновить свою кодовую базу. Например, в Linux / MacOSX просто выполните (сначала сделайте резервную копию!):

    find -name "*.py" | xargs sed -i 's/\bscikits.learn\b/sklearn/g'
    
  • Оценщики больше не принимают параметры модели как fit аргументы: вместо этого все параметры должны передаваться только как аргументы конструктора или с использованием теперь публичных set_params метод, унаследованный от BaseEstimator.

    Некоторые оценщики всё ещё могут принимать ключевые аргументы на fit но это ограничено значениями, зависящими от данных (например, матрица Грама или матрица сходства, которые предварительно вычислены из X матрица данных.

  • The cross_val пакет был переименован в cross_validation хотя также существует cross_val псевдоним пакета сохранён для обратной совместимости.

    Сторонние проекты с зависимостью от scikit-learn 0.9+ должны обновить свою кодовую базу. Например, в Linux / MacOSX просто выполните (сначала сделайте резервную копию!):

    find -name "*.py" | xargs sed -i 's/\bcross_val\b/cross_validation/g'
    
  • The score_func аргумент sklearn.cross_validation.cross_val_score функция теперь ожидается, что будет принимать y_test и y_predicted как единственные аргументы для задач классификации и регрессии или X_test для неконтролируемых оценщиков.

  • gamma параметр для алгоритмов машины опорных векторов установлен в 1 / n_features по умолчанию, вместо 1 / n_samples.

  • The sklearn.hmm помечен как заброшенный: он будет удалён из scikit-learn в версии 0.11, если кто-то не возьмётся за документацию, примеры и исправление скрытых проблем численной устойчивости.

  • sklearn.neighbors был преобразован в подмодуль. Два ранее доступных оценщика, NeighborsClassifier и NeighborsRegressor были помечены как устаревшие. Их функциональность была разделена между пятью новыми классами: NearestNeighbors для неконтролируемого поиска соседей, KNeighborsClassifier & RadiusNeighborsClassifier для задач контролируемой классификации, и KNeighborsRegressor & RadiusNeighborsRegressor для задач регрессии с учителем.

  • sklearn.ball_tree.BallTree был перемещен в sklearn.neighbors.BallTree. Использование первого вызовет предупреждение.

  • sklearn.linear_model.LARS() и связанные классы (LassoLARS, LassoLARSCV и т.д.) были переименованы в sklearn.linear_model.Lars().

  • Все метрики расстояния и ядра в sklearn.metrics.pairwise теперь имеют параметр Y, который по умолчанию равен None. Если не задан, результат — расстояние (или сходство ядра) между каждой выборкой в Y. Если задан, результат — попарное расстояние (или сходство ядра) между выборками в X и Y.

  • sklearn.metrics.pairwise.l1_distance теперь называется manhattan_distanceи по умолчанию возвращает попарное расстояние. Для покомпонентного расстояния установите параметр sum_over_features to False.

Пакет обратной совместимости, псевдонимы и другие устаревшие классы и функции будут удалены в версии 0.11.

Люди#

38 человек внесли вклад в этот релиз.

Версия 0.8#

11 мая 2011 г.

scikit-learn 0.8 был выпущен в мае 2011 года, через месяц после первого «международного» спринт по кодированию scikit-learn и отмечен включением важных модулей: Иерархическая кластеризация, Перекрестное разложение, Неотрицательная матричная факторизация (NMF или NNMF), начальная поддержка Python 3 и важные улучшения и исправления ошибок.

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

В этом релизе были представлены несколько новых модулей:

Некоторые другие модули получили значительные улучшения или очистки.

Люди#

Люди, которые сделали этот выпуск возможным, с указанием количества коммитов:

Версия 0.7#

2 марта 2011 г.

scikit-learn 0.7 был выпущен в марте 2011 года, примерно через три месяца после релиза 0.6. Этот выпуск отмечен улучшениями скорости в существующих алгоритмах, таких как k-ближайших соседей и алгоритм K-средних, а также включением эффективного алгоритма для вычисления решения Ridge Generalized Cross Validation. В отличие от предыдущего релиза, в этот выпуск не были добавлены новые модули.

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

  • Улучшения производительности для выборки гауссовской смеси [Jan Schlüter].

  • Реализация эффективной перекрёстной проверки с исключением по одному для Ridge в RidgeCV [Мати́ Блондель]

  • Улучшенная обработка коллинеарности и ранняя остановка в linear_model.lars_path [Александр Грамфор и Fabian Pedregosa].

  • Исправления для порядка меток и знака коэффициентов в liblinear [Дэн Яминс, Паоло Лоси, Мати́ Блондель и Fabian Pedregosa].

  • Улучшения производительности для алгоритма ближайших соседей в высокоразмерных пространствах [Fabian Pedregosa].

  • Улучшения производительности для KMeans [Гаэль Варок и James Bergstra].

  • Проверки корректности для классов на основе SVM [Мати́ Блондель].

  • Рефакторинг neighbors.NeighborsClassifier и neighbors.kneighbors_graph: добавлены различные алгоритмы для поиска k ближайших соседей и реализован более стабильный алгоритм для нахождения весов барицентра. Также добавлена некоторая документация для разработчиков этого модуля, см. notes_neighbors для получения дополнительной информации [Fabian Pedregosa].

  • Проверяет, имеют ли все объекты в массивах одинаковую форму или длину. pca.RandomizedPCA и LogisticRegression в справочник по классам. Также добавлены ссылки на матрицы, используемые для кластеризации, и другие исправления [Гаэль Варокво, Fabian Pedregosa, Mathieu Blondel, Оливье Гризель, Virgile Fritsch, Emmanuelle Gouillart]

  • Связанный decision_function в классах, которые используют liblinear, плотные и разреженные варианты, такие как LinearSVC или LogisticRegression [Fabian Pedregosa].

  • Улучшения производительности и API для metrics.pairwise.euclidean_distances и для pca.RandomizedPCA [James Bergstra].

  • Исправлены проблемы компиляции под NetBSD [Kamel Ibn Hassen Derouiche]

  • Разрешить входные последовательности разной длины в hmm.GaussianHMM [Ron Weiss].

  • Исправлена ошибка в распространении аффинности, вызванная некорректной индексацией [Xinfan Meng]

Люди#

Люди, которые сделали этот выпуск возможным, с указанием количества коммитов:

Версия 0.6#

21 декабря 2010

scikit-learn 0.6 был выпущен в декабре 2010 года. Он отмечен включением нескольких новых модулей и общим переименованием старых. Также отмечен включением новых примеров, включая приложения к реальным наборам данных.

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

  • Новый стохастический градиент модуль descent от Питера Преттенхофера. Модуль поставляется с полной документацией и примерами.

  • Улучшенный модуль svm: потребление памяти уменьшено на 50%, эвристика для автоматической установки весов классов, возможность назначения весов выборкам (см. SVM: Взвешенные образцы для примера).

  • Новый Гауссовские процессы модуль Венсана Дюбура. Этот модуль также имеет отличную документацию и очень аккуратные примеры. Смотрите example_gaussian_process_plot_gp_regression.py или example_gaussian_process_plot_gp_probabilistic_classification_after_regression.py для представления о возможностях.

  • Теперь можно использовать Multi-class SVC от liblinear (опция multi_class в LinearSVC)

  • Новые возможности и улучшения производительности извлечения текстовых признаков.

  • Улучшена поддержка разреженных матриц, как в основных классах (GridSearchCV) как в модулях sklearn.svm.sparse и sklearn.linear_model.sparse.

  • Много новых интересных примеров и новый раздел, использующий реальные наборы данных, были созданы. Они включают: Пример распознавания лиц с использованием собственных лиц и SVM, Моделирование распределения видов, Главный собственный вектор Википедии и другие.

  • Быстрее Least Angle Regression алгоритм. Теперь он в 2 раза быстрее, чем версия R в худшем случае, и до 10 раз быстрее в некоторых случаях.

  • Более быстрый алгоритм координатного спуска. В частности, полная версия пути lasso (linear_model.lasso_path) более чем в 200 раз быстрее, чем раньше.

  • Теперь возможно получить оценки вероятностей из LogisticRegression модель.

  • переименование модуля: модуль glm переименован в linear_model, модуль gmm включен в более общую модель смеси, а модуль sgd включен в linear_model.

  • Множество исправлений ошибок и улучшений документации.

Люди#

Люди, которые сделали этот выпуск возможным, с указанием количества коммитов:

Версия 0.5#

11 октября 2010

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

Новые классы#

  • Поддержка разреженных матриц в некоторых классификаторах модулей svm и linear_model (см. svm.sparse.SVC, svm.sparse.SVR, svm.sparse.LinearSVC, linear_model.sparse.Lasso, linear_model.sparse.ElasticNet)

  • Новый Pipeline объект для компоновки различных оценщиков.

  • Рекурсивное исключение признаков в модуле Выбор признаков.

  • Добавление различных классов, способных выполнять перекрёстную проверку в модуле linear_model (LassoCV, ElasticNetCV, и т.д.).

  • Новая, более эффективная реализация алгоритма LARS. Также реализован вариант алгоритма Lasso. См. lars_path, Lars и LassoLars.

  • Новый модуль скрытых марковских моделей (см. классы hmm.GaussianHMM, hmm.MultinomialHMM, hmm.GMMHMM)

  • Новый модуль feature_extraction (см. справочник по классам)

  • Новый алгоритм FastICA в модуле sklearn.fastica

Документация#

Исправления#

  • Изменения API: приведение имен переменных к PEP-8, присвоение более осмысленных имен.

  • Исправления для модуля svm для работы в контексте общей памяти (многопроцессорность).

  • Снова возможно сгенерировать LaTeX (и, следовательно, PDF) из документации sphinx.

Примеры#

Внешние зависимости#

  • Joblib теперь является зависимостью этого пакета, хотя он поставляется с (sklearn.externals.joblib).

Удаленные модули#

  • Модуль ann (искусственные нейронные сети) был удален из дистрибутива. Пользователям, желающим использовать такие алгоритмы, следует обратиться к pybrain.

Разное#

  • Новая тема Sphinx для веб-страницы.

Авторы#

Следующий список авторов этого релиза, с указанием количества коммитов:

  • 262 Fabian Pedregosa

  • 240 Гаэль Варуко

  • 149 Alexandre Gramfort

  • 116 Olivier Grisel

  • 40 Vincent Michel

  • 38 Ron Weiss

  • 23 Matthieu Perrot

  • 10 Bertrand Thirion

  • 7 Ярослав Хальченко

  • 9 VirgileFritsch

  • 6 Edouard Duchesnay

  • 4 Mathieu Blondel

  • 1 Ariel Rokem

  • 1 Matthieu Brucher

Версия 0.4#

26 августа 2010

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

Основные изменения в этом выпуске включают:

  • Рефакторинг алгоритма Coordinate Descent (Lasso, ElasticNet) & улучшения скорости (примерно в 100 раз быстрее).

  • Рефакторинг координатного спуска (и исправление ошибок) для согласованности с пакетом R GLMNET.

  • Новый модуль метрик.

  • Новый модуль GMM, предоставленный Ron Weiss.

  • Реализация алгоритма LARS (без варианта Lasso на данный момент).

  • переработка модуля feature_selection.

  • Миграция на GIT как систему контроля версий.

  • Удаление устаревшего модуля attrselect.

  • Переименование приватных скомпилированных расширений (добавлено подчеркивание).

  • Удаление устаревшего неподдерживаемого кода.

  • Улучшения документации (как в docstring, так и в rst).

  • Улучшение системы сборки для (опционально) линковки с MKL. Также, предоставлена облегченная реализация BLAS на случай, если системный BLAS не найден.

  • Много новых примеров.

  • Много, много исправлений ошибок …

Авторы#

Список коммиттеров для этого выпуска следующий (с указанием количества коммитов):

  • 143 Fabian Pedregosa

  • 35 Alexandre Gramfort

  • 34 Olivier Grisel

  • 11 Gael Varoquaux

  • 5 Yaroslav Halchenko

  • 2 Vincent Michel

  • 1 Chris Filo Gorgolewski

Более ранние версии#

Более ранние версии включали вклады Фреда Мейлхота, Дэвида Кука, Дэвида Хуарда, Дэйва Моррилла, Эда Шофилда, Трэвиса Олифанта, Пеару Петерсона.