Старые версии#
Версия 0.12.1#
8 октября 2012
Выпуск 0.12.1 — это исправление ошибок без новых функций, а набор исправлений
Журнал изменений#
Улучшена численная устойчивость в спектральном вложении с помощью Гаэль Варок
Тестирование документации под Windows 64-бит от Гаэль Варокво
Исправления документации для elastic net от Андреас Мюллер и Александр Грамфор
Правильное поведение с массивами NumPy в порядке Fortran путем Гаэль Варокво
Заставить GridSearchCV работать с не-CSR разреженной матрицей, используя Lars Buitinck
Исправление параллельных вычислений в MDS путем Гаэль Варокво
Исправить поддержку Unicode в векторизаторе подсчёта путём Андреас Мюллер
Исправление MinCovDet, ломающегося при X.shape = (3, 1), от Virgile Fritsch
Исправление клонирования объектов SGD Peter Prettenhofer
Стабилизировать GMM с помощью Virgile Fritsch
Люди#
Версия 0.12#
4 сентября 2012
Журнал изменений#
Различные улучшения скорости деревья решений модуль, с помощью Gilles Louppe.
GradientBoostingRegressorиGradientBoostingClassifierтеперь поддерживают субдискретизацию признаков через параметрmax_featuresаргумент, с помощью Peter Prettenhofer.Добавлены функции потерь Хубера и квантиля в
GradientBoostingRegressor, от Peter Prettenhofer.Деревья решений и леса рандомизированных деревьев теперь поддерживают многоклассовую классификацию и регрессию, путем Gilles Louppe.
Добавлен
LabelEncoder, простой вспомогательный класс для нормализации меток или преобразования нечисловых меток, с помощью Мати́ Блондель.Добавлена эпсилон-нечувствительная функция потерь и возможность делать вероятностные прогнозы с модифицированной функцией потерь Хубера в Стохастический градиентный спуск, от Мати́ Блондель.
Добавлен Многомерное шкалирование (MDS), автор Nelle Varoquaux.
Загрузчик формата файлов SVMlight теперь обнаруживает сжатые (gzip/bzip2) файлы и распаковывает их на лету, с помощью Lars Buitinck.
Сериализатор формата файлов SVMlight теперь сохраняет значения с плавающей точкой двойной точности, благодаря Оливье Гризель.
Общая тестовая структура для всех оценщиков была добавлена, Андреас Мюллер.
Понятные сообщения об ошибках для оценщиков, которые не принимают разреженный ввод, с помощью Гаэль Варокво
Ускорение иерархической кластеризации с помощью Гаэль Варокво. В частности, построение дерева теперь поддерживает раннюю остановку. Это полезно, когда количество кластеров не мало по сравнению с количеством выборок.
Добавлены MultiTaskLasso и MultiTaskElasticNet для совместного отбора признаков, от Александр Грамфор.
Добавлен
metrics.auc_scoreиmetrics.average_precision_scoreудобные функции от Andreas Müller.Улучшена поддержка разреженных матриц в Выбор признаков модуль от Андреас Мюллер.
Новый анализатор символьных n-грамм с учетом границ слов для Извлечение текстовых признаков модуль от @kernc.
Исправлена ошибка в спектральной кластеризации, которая приводила к кластерам из одной точки Андреас Мюллер.
В
CountVectorizer, добавлена опция игнорировать редкие слова,min_dfby Андреас Мюллер.Добавлена поддержка нескольких целей в некоторых линейных моделях (ElasticNet, Lasso и OrthogonalMatchingPursuit) путем Vlad Niculae и Александр Грамфор.
соответствует ранговой позиции i-го признака. Выбранные (т.е. оцененные как лучшие) признаки получают ранг 1.
decomposition.ProbabilisticPCAфункция оценки от Wei Li.Исправлено вычисление важности признаков в Градиентный бустинг деревьев.
Сводка изменений 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_вместо переопределения параметра initalphas.Линейные модели, когда alpha оценивается с помощью кросс-валидации, сохраняют оценённое значение в
alpha_атрибут, а не толькоalphaилиbest_alpha.GradientBoostingClassifierтеперь поддерживаетstaged_predict_proba, иstaged_predict.svm.sparse.SVCи другие разреженные классы SVM теперь устарели. Все классы в Метод опорных векторов модуль теперь автоматически выбирает разреженное или плотное представление на основе входных данных.Все алгоритмы кластеризации теперь интерпретируют массив
Xпереданный вfitкак входные данные, в частностиSpectralClusteringиAffinityPropagationкоторые ранее ожидали матрицы сходства.Для алгоритмов кластеризации, которые принимают желаемое количество кластеров как параметр, этот параметр теперь называется
n_clusters.
Люди#
267 Андреас Мюллер
52 Vlad Niculae
44 Nelle Varoquaux
30 Alexis Mignon
30 Immanuel Bayer
16 Subhodeep Moitra
13 Янник Шварц
12 @kernc
9 Daniel Duckworth
8 John Benediktsson
7 Marko Burjek
4 Alexandre Abraham
3 Florian Hoenig
3 flyingimmidev
2 Франсуа Савар
2 Hannes Schulz
2 Peter Welinder
2 Вэй Ли
1 Alex Companioni
1 Брандин А. Уайт
1 Bussonnier Matthias
1 Charles-Pierre Astolfi
1 Dan O’Huiginn
1 David Cournapeau
1 Keith Goodman
1 Людвиг Швардт
1 Olivier Hervieu
1 Sergio Medina
1 Shiqiao Du
1 Tim Sheerman-Chase
1 buguen
Версия 0.11#
7 мая 2012 г.
Журнал изменений#
Основные моменты#
Градиентный бустинг регрессионных деревьев (Градиентный бустинг деревьев) для классификации и регрессии с помощью Peter Prettenhofer и Scott White .
Простой загрузчик признаков на основе словаря с поддержкой категориальных переменных (
DictVectorizer) с помощью Lars Buitinck.Добавлен коэффициент корреляции Мэттьюса (
metrics.matthews_corrcoef) и добавлены опции макро- и микро-средних вprecision_score,metrics.recall_scoreиf1_scoreby Сатражит Гхош.Оценки Out of Bag ошибки обобщения для Ансамбли: градиентный бустинг, случайные леса, бэггинг, голосование, стэкинг by Андреас Мюллер.
Рандомизированные разреженные линейные модели для выбора признаков, от Александр Грамфор и Гаэль Варокво
Распространение меток для полуконтролируемого обучения, автор Clay Woolam. Примечание полу-контролируемый API всё ещё находится в разработке и может измениться.
Добавлен выбор модели BIC/AIC в классический Гауссовские смеси моделей и унифицировали API с остальной частью scikit-learn, путем Bertrand Thirion
Добавлен
sklearn.cross_validation.StratifiedShuffleSplit, который являетсяsklearn.cross_validation.ShuffleSplitсо сбалансированными разбиениями, от Янника Шварца.NearestCentroidклассификатор добавлен, вместе сshrink_thresholdпараметр, который реализует классификация сжатого центроида, от Роберт Лейтон.
Прочие изменения#
Объединенные плотные и разреженные реализации Стохастический градиентный спуск модуль и предоставленные типы расширений утилит для последовательных наборов данных
seq_datasetи векторы весовweight_vectorby Peter Prettenhofer.Добавлен
partial_fit(поддержка онлайн/мини-пакетного обучения) и warm_start для Стохастический градиентный спуск модуль от Мати́ Блондель.Плотные и разреженные реализации Метод опорных векторов классы и
LogisticRegressionобъединены с помощью Lars Buitinck.Регрессоры теперь могут использоваться как базовые оценщики в Многоклассовые и многомерные алгоритмы модуль от Мати́ Блондель.
Добавлена опция n_jobs в
metrics.pairwise_distancesиmetrics.pairwise.pairwise_kernelsдля параллельных вычислений, с помощью Мати́ Блондель.K-means теперь может выполняться параллельно с использованием
n_jobsаргумент либо K-means илиcluster.KMeans, от Роберт Лейтон.Улучшено Кросс-валидация: оценка производительности оценщика и Настройка гиперпараметров оценщика документации и ввел новый
cross_validation.train_test_splitвспомогательная функция Оливье ГризельSVCчленыcoef_иintercept_изменён знак для согласованности сdecision_function; дляkernel==linear,coef_был исправлен в случае один-против-одного, Андреас Мюллер.Улучшения производительности для эффективной перекрестной проверки с исключением по одному для Ridge регрессии, особенно для
n_samples > n_featuresслучай, вRidgeCV, Reuben Fletcher-Costin.Рефакторинг и упрощение Извлечение текстовых признаков API и исправили ошибку, которая могла вызывать отрицательный IDF, с помощью Оливье Гризель.
Опция обрезки лучей в
_BaseHMMмодуль был удален, так как его сложно цитонизировать. Если вы заинтересованы в создании цитоновой версии, вы можете использовать питоновскую версию в истории git в качестве ссылки.Классы в Ближайшие соседи теперь поддерживает произвольную метрику Минковского для поиска ближайших соседей. Метрика может быть указана аргументом
p.
Сводка изменений 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добавлены к классам в Ближайшие соседи чтобы указать произвольную метрику Минковского для поиска ближайших соседей.
Люди#
282 Андреас Мюллер
198 Гаэль Варокво
129 Оливье Гризель
114 Мати́ Блондель
103 Clay Woolam
28 flyingimmidev
26 Shiqiao Du
17 David Marek
14 Vlad Niculae
11 Янник Шварц
9 fcostin
7 Ник Уилсон
5 Adrien Gaidon
5 Nelle Varoquaux
5 Эммануэль Гуйяр
3 Йонас Силанпяя
3 Paolo Losi
2 Чарльз Маккарти
2 Roy Hyunjin Han
2 Scott White
2 ibayer
1 Брандин Уайт
1 Карлос Шайдеггер
1 Клэр Ревийе
1 Conrad Lee
1 Ян Хендрик Метцен
1 Мэн Синфань
1 Shiqiao
1 Уди Вайнсберг
1 Virgile Fritsch
1 Xinfan Meng
1 Yaroslav Halchenko
1 jansoe
1 Leon Palafox
Версия 0.10#
11 января 2012 г.
Журнал изменений#
Совместимость с Python 2.5 была удалена; минимальная версия Python, необходимая для использования scikit-learn, теперь 2.6.
Разреженная обратная ковариация оценка с использованием графового лассо, с связанным кросс-валидированным оценщиком, от Гаэль Варокво
Новый Дерево модуль от Brian Holt, Peter Prettenhofer, Сатражит Гхош и Gilles Louppe. Модуль поставляется с полной документацией и примерами.
Исправлена ошибка в модуле RFE путем Gilles Louppe (проблема #378).
Исправлена утечка памяти в Метод опорных векторов модуль от Brian Holt (issue #367).
Более быстрые тесты с помощью Fabian Pedregosa и другие.
Коэффициент силуэта добавлен как метрика оценки кластерного анализа
silhouette_scoreот Robert Layton.Исправлена ошибка в K-means в обработке
n_initпараметр: используемый алгоритм кластеризацииn_initраз, но последнее решение было сохранено вместо лучшего решения с помощью Оливье Гризель.Незначительный рефакторинг в Стохастический градиентный спуск модуль; объединены плотные и разреженные методы предсказания; Улучшена производительность во время тестирования путём преобразования параметров модели в массивы в стиле фортрана после обучения (только многоклассовая классификация).
Метрика скорректированной взаимной информации добавлена как
adjusted_mutual_info_scoreот Robert Layton.Модели, такие как SVC/SVR/LinearSVC/LogisticRegression из libsvm/liblinear, теперь поддерживают масштабирование параметра регуляризации C по количеству образцов с помощью Александр Грамфор.
Новый Ансамблевые методы модуль от Gilles Louppe и Brian Holt. Модуль включает алгоритм случайного леса и метод экстра-деревьев, а также документацию и примеры.
Обнаружение новизны и выбросов: обнаружение выбросов и новизны, с помощью Virgile Fritsch.
Аппроксимация ядра: преобразование, реализующее аппроксимацию ядра для быстрого SGD на нелинейных ядрах с помощью Андреас Мюллер.
Исправлена ошибка из-за обмена атомами в Ортогональное согласованное преследование (OMP) by Vlad Niculae.
Разреженное кодирование с предвычисленным словарём by Vlad Niculae.
Mini Batch K-Means улучшения производительности за счет Оливье Гризель.
K-means поддержку разреженных матриц с помощью Мати́ Блондель.
Улучшенная документация для разработчиков и для
sklearn.utilsмодуль, с помощью Jake Vanderplas.Векторизованный загрузчик набора данных 20newsgroups (
fetch_20newsgroups_vectorized) с помощью Мати́ Блондель.Утилиты для быстрого вычисления среднего значения и дисперсии для разреженных матриц с помощью Мати́ Блондель.
Сделать
scaleиsklearn.preprocessing.Scalerработают с разреженными матрицами путем Оливье ГризельВажность признаков с использованием деревьев решений и/или леса деревьев, с помощью Gilles Louppe.
Параллельная реализация лесов рандомизированных деревьев с помощью Gilles Louppe.
sklearn.cross_validation.ShuffleSplitможет субдискретизировать обучающие наборы, а также тестовые наборы с помощью Оливье Гризель.Ошибки в сборке документации исправлены Андреас Мюллер.
Сводка изменений 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 с момента последнего релиза:
246 Андреас Мюллер
242 Оливье Гризель
220 Gilles Louppe
183 Brian Holt
166 Гаэль Варокво
144 Lars Buitinck
73 Vlad Niculae
60 Robert Layton
44 Noel Dawe
3 Jan Hendrik Metzen
3 Кеннет К. Арнольд
3 Шицяо Ду
3 Тим Ширман-Чейз
2 Бала Субрахманьям Варанаси
2 DraXus
2 Michael Eickenberg
1 Bogdan Trach
1 Феликс-Антуан Фортен
1 Хуан Мануэль Кайседо Карвахаль
1 Nelle Varoquaux
1 Tiziano Zito
1 Xinfan Meng
Версия 0.9#
21 сентября 2011
scikit-learn 0.9 был выпущен в сентябре 2011 года, через три месяца после релиза 0.8, и включает новые модули Обучение многообразию, Процесс Дирихле а также несколько новых алгоритмов и улучшений документации.
Этот выпуск также включает работу по словарному обучению, разработанную Vlad Niculae в рамках Google Summer of Code программа.
Журнал изменений#
Новый Обучение многообразию модуль от Jake Vanderplas и Fabian Pedregosa.
Новый Дирихле Процесс Гауссовская смесь модель от Alexandre Passos
Ближайшие соседи рефакторинг модуля Jake Vanderplas : общий рефакторинг, поддержка разреженных матриц на входе, улучшения скорости и документации. См. следующий раздел для полного списка изменений API.
Улучшения в Выбор признаков модуль от Gilles Louppe : рефакторинг классов RFE, переписывание документации, повышение эффективности и незначительные изменения API.
Разреженный анализ главных компонент (SparsePCA и MiniBatchSparsePCA) by Vlad Niculae, Гаэль Варокво и Александр Грамфор
Вывод оценщика теперь работает независимо от архитектур и версии Python благодаря Жан Коссаифи.
Загрузчик для формата libsvm/svmlight by Мати́ Блондель и Lars Buitinck
Улучшения документации: миниатюры в галерее примеров от Fabian Pedregosa.
Важные исправления ошибок в Метод опорных векторов модуль (сегфолты, плохая производительность) с помощью Fabian Pedregosa.
Добавлен Мультиномиальный наивный байесовский классификатор и Наивный байесовский классификатор Бернулли by Lars Buitinck
Оптимизации извлечения текстовых признаков от Ларса Бёйтинка
Отбор признаков по критерию Хи-квадрат (
feature_selection.chi2) с помощью Lars Buitinck.Сгенерированные наборы данных рефакторинг модуля Gilles Louppe
Переработка дерева шаров от Jake Vanderplas
Реализация DBSCAN алгоритм Роберта Лейтона
Kmeans predict и transform от Роберта Лейтона
Рефакторинг модуля предобработки от Оливье Гризель
Более быстрый mean shift от Conrad Lee
Новый
Bootstrap, Перекрёстная проверка со случайными перестановками, также известная как Shuffle & Split и различные другие улучшения в схемах перекрёстной проверки от Оливье Гризель и Гаэль ВароквоСкорректированный индекс Рэнда и метрики оценки кластеризации V-Measure от Оливье Гризель
Добавлен
Orthogonal Matching Pursuitby Vlad NiculaeДобавлены утилиты для извлечения 2D-патчей в Извлечение признаков модуль от Vlad Niculae
Реализация
LassoLarsCV(кросс-валидированный решатель Lasso с использованием алгоритма Lars) иLassoLarsIC(выбор модели BIC/AIC в Lars) от Гаэль Варокво и Александр ГрамфорУлучшения масштабируемости для
metrics.roc_curveот Оливье ЭрвьёВспомогательные функции расстояния
metrics.pairwise_distancesиmetrics.pairwise.pairwise_kernelsРоберт ЛейтонMini-Batch K-Meansот Nelle Varoquaux и Peter Prettenhofer.утилиты mldata от Pietro Berkes.
Сводка изменений 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_featurestoFalse.
Пакет обратной совместимости, псевдонимы и другие устаревшие классы и функции будут удалены в версии 0.11.
Люди#
38 человек внесли вклад в этот релиз.
387 Vlad Niculae
320 Оливье Гризель
192 Lars Buitinck
179 Гаэль Варокво
168 Fabian Pedregosa (INRIA, Parietal Team)
127 Jake Vanderplas
120 Мати́ Блондель
42 Robert Layton
38 Nelle Varoquaux
32 Жан Коссаифи
30 Conrad Lee
22 Pietro Berkes
18 andy
17 David Warde-Farley
12 Brian Holt
11 Robert
8 Amit Aides
6 Salvatore Masecchia
5 Paolo Losi
4 Vincent Schut
Если признак содержит как
3 Bryan Silverthorn
2 Minwoo Jake Lee
1 Emmanuelle Gouillart
1 Keith Goodman
1 Lucas Wiman
1 Thouis (Ray) Jones
1 Tim Sheerman-Chase
Версия 0.8#
11 мая 2011 г.
scikit-learn 0.8 был выпущен в мае 2011 года, через месяц после первого «международного» спринт по кодированию scikit-learn и отмечен включением важных модулей: Иерархическая кластеризация, Перекрестное разложение, Неотрицательная матричная факторизация (NMF или NNMF), начальная поддержка Python 3 и важные улучшения и исправления ошибок.
Журнал изменений#
В этом релизе были представлены несколько новых модулей:
Новый Иерархическая кластеризация модуль от Vincent Michel, Bertrand Thirion, Александр Грамфор и Гаэль Варокво.
Ядерный метод главных компонент (kPCA) реализация от Мати́ Блондель
Набор данных для распознавания лиц Labeled Faces in the Wild by Оливье Гризель.
Новый Перекрестное разложение модуль от Edouard Duchesnay.
Неотрицательная матричная факторизация (NMF или NNMF) модуль Vlad Niculae
Реализация Oracle Approximating Shrinkage алгоритмом Virgile Fritsch в Оценка ковариации модуль.
Некоторые другие модули получили значительные улучшения или очистки.
Начальная поддержка Python 3: сборка и импорт работают чисто, некоторые модули пригодны к использованию, в то время как другие имеют неудачные тесты в Fabian Pedregosa.
PCAтеперь доступен из объекта Pipeline через Оливье Гризель.Руководство Как оптимизировать для скорости by Оливье Гризель.
Исправления утечек памяти в привязках libsvm, более безопасный BallTree для 64-битных систем от Lars Buitinck.
исправление ошибок и стиля в K-means алгоритм Яна Шлютера.
Добавлен атрибут converged к Gaussian Mixture Models от Vincent Schut.
Реализовано
transform,predict_log_probaвLinearDiscriminantAnalysisПо Мати́ Блондель.Рефакторинг в Метод опорных векторов модуль и исправления ошибок от Fabian Pedregosa, Гаэль Варокво и Amit Aides.
Рефакторинг модуля SGD (устранено дублирование кода, улучшены имена переменных), добавлен интерфейс для веса выборки с помощью Peter Prettenhofer.
Wrapped BallTree с Cython от Thouis (Ray) Jones.
Добавлена функция
svm.l1_min_cот Paolo Losi.Опечатки, стиль документации и т.д. от Yaroslav Halchenko, Гаэль Варокво, Оливье Гризель, Ян Мале, Николя Пинто, Lars Buitinck и Fabian Pedregosa.
Люди#
Люди, которые сделали этот выпуск возможным, с указанием количества коммитов:
159 Оливье Гризель
96 Vlad Niculae
32 Паоло Лози
22 Николя Пинто
7 Ларс Бюйтинк
6 Vincent Michel
4 Thouis (Ray) Jones
4 Vincent Schut
3 Jan Schlüter
2 Julien Miotte
2 Yann Malet
1 Amit Aides
1 Feth Arezki
1 Мэн Синфань
Версия 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]
Люди#
Люди, которые сделали этот выпуск возможным, с указанием количества коммитов:
14 Dan Yamins
2 Satrajit Ghosh
2 Vincent Dubourg
1 Emmanuelle Gouillart
1 Kamel Ibn Hassen Derouiche
1 Paolo Losi
1 VirgileFritsch
1 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.
Множество исправлений ошибок и улучшений документации.
Люди#
Люди, которые сделали этот выпуск возможным, с указанием количества коммитов:
207 Оливье Гризель
167 Fabian Pedregosa
33 Vincent Dubourg
21 Ron Weiss
9 Бертран Тирион
3 Anne-Laure Fouque
2 Ronan Amicel
Версия 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
Документация#
Улучшена документация для многих модулей, теперь разделяющая повествовательную документацию от справочника по классам. В качестве примера см. документация для модуля SVM и полный справочник по классам.
Исправления#
Изменения API: приведение имен переменных к PEP-8, присвоение более осмысленных имен.
Исправления для модуля svm для работы в контексте общей памяти (многопроцессорность).
Снова возможно сгенерировать LaTeX (и, следовательно, PDF) из документации sphinx.
Примеры#
новые примеры с использованием некоторых наборов данных mlcomp:
sphx_glr_auto_examples_mlcomp_sparse_document_classification.py(с тех пор удален) и Классификация текстовых документов с использованием разреженных признаковМного других примеров. Смотрите здесь полный список примеров.
Внешние зависимости#
Joblib теперь является зависимостью этого пакета, хотя он поставляется с (sklearn.externals.joblib).
Удаленные модули#
Модуль ann (искусственные нейронные сети) был удален из дистрибутива. Пользователям, желающим использовать такие алгоритмы, следует обратиться к pybrain.
Разное#
Новая тема Sphinx для веб-страницы.
Версия 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
Более ранние версии#
Более ранние версии включали вклады Фреда Мейлхота, Дэвида Кука, Дэвида Хуарда, Дэйва Моррилла, Эда Шофилда, Трэвиса Олифанта, Пеару Петерсона.