Как установить sklearn python

1. Installing scikit-learn ¶

There are different ways to get scikit-learn installed:

If you wish to contribute to the project, it’s recommended you install the latest development version.

1.1. Installing an official release¶

1.1.1. Installing from source¶

Installing from source requires you to have installed python (>= 2.6), numpy (>= 1.3), scipy (>= 0.7), setuptools, python development headers and a working C++ compiler. Under Debian-based systems you can get all this by executing with root privileges:

In Order to build the documentation and run the example code contains in this documentation you will need matplotlib:

On Ubuntu LTS (10.04) the package libatlas-dev is called libatlas-headers

1.1.1.1. Easy install¶

This is usually the fastest way to install the latest stable release. If you have pip or easy_install, you can install or update with the command:

for easy_install. Note that you might need root privileges to run these commands.

1.1.1.2. From source package¶

This packages uses distutils, which is the default way of installing python modules. The install command is:

1.1.2. Windows installer¶

You can download a windows installer from downloads in the project’s web page. Note that must also have installed the packages numpy and setuptools.

This package is also expected to work with python(x,y) as of 2.6.5.5.

Installing on Windows 64bit

To install a 64bit version of the scikit, you can download the binaries from http://www.lfd.uci.edu/

gohlke/pythonlibs/#scikit-learn Note that this will require a compatible version of numpy, scipy and matplotlib. The easiest option is to also download them from the same URL.

1.1.3. Building on windows¶

To build scikit-learn on windows you will need a C/C++ compiler in addition to numpy, scipy and setuptools. At least MinGW (a port of GCC to Windows OS) and the Microsoft Visual C++ 2008 should work out of the box. To force the use of a particular compiler, write a file named setup.cfg in the source directory with the content:

When the appropriate compiler has been set, and assuming Python is in your PATH (see Python FAQ for windows for more details), installation is done by executing the command:

To build a precompiled package like the ones distributed at the downloads section, the command to execute is:

1.2. Third party distributions of scikit-learn¶

Some third-party distributions are now providing versions of scikit-learn integrated with their package-management systems.

These can make installation and upgrading much easier for users since the integration includes the ability to automatically install dependencies (numpy, scipy) that scikit-learn requires.

The following is a list of Linux distributions that provide their own version of scikit-learn:

1.2.1. Debian and derivatives (Ubuntu)¶

The Debian package is named python-sklearn (formerly python-scikits-learn) and can be installed using the following commands with root privileges:

1.2.2. Python(x, y)¶

The Python(x, y) distributes scikit-learn as an additional plugin, which can be found in the Additional plugins page.

1.2.3. Enthought Python distribution¶

The Enthought Python Distribution already ships a recent version.

1.2.4. Macports¶

The macport’s package is named py26-sklearn and can be installed by typing the following command:

1.2.5. NetBSD¶

scikit-learn is available via pkgsrc-wip:

1.3. Bleeding Edge¶

See section Retrieving the latest code on how to get the development version.

1.4. Testing¶

Testing requires having the nose library. After installation, the package can be tested by executing from outside the source directory:

This should give you a lot of output (and some warnings) but eventually should finish with the a text similar to:

otherwise please consider posting an issue into the bug tracker or to the Mailing List.

scikit-learn can also be tested without having the package installed. For this you must compile the sources inplace from the source directory:

Test can now be run using nosetest:

Because nosetest does not play well with multiprocessing on windows, this last approach is not recommended on such system.

Источник

Знакомство с машинным обучением в Python

В данном уроке мы поговорим как о самом машинном обучении, так и о некоторых основополагающих понятиях, без которых невозможно начинать с ним знакомство. Кроме того, мы напишем на языке Python несколько примеров алгоритмов вероятностной идентификации элементов или событий.

Знакомство с машинным обучением

Давайте представим, что нам необходимо написать программу, которая сможет определить, является ли тот или иной фрукт апельсином или лимоном. Может показаться, что написать подобный алгоритм достаточно просто, и он будет выдавать требуемый результат, но стоит заметить, что эффективность подобной программы снижается при работе с большим объемом данных. Вот в таких ситуациях и требуется машинное обучение.

Существуют различные этапы в машинном обучении:

В машинном обучении для поиска закономерностей используются различные алгоритмы, которые подразделяются на две группы:

Управляемое обучение

Методика управляемого обучения предполагает вырабатывание компьютером способности распознавать элементы на основе предоставленной подборки образцов. Компьютер изучает образцы и вырабатывает способность распознавать новые данные на основе изученной информации.

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

Управляемое обучение включает только два этапа:

Некоторые алгоритмы управляемого обучения включают:

Пример

Кроме того Sklearn хорошо взаимодействует с библиотеками NumPy и SciPy.

Установка Sklearn

Инструкция по установке Sklearn предлагает очень простой способ установки для различных платформ. Для работы библиотеки требуется несколько зависимостей:

Если эти зависимости уже установлены, то можно установить Sklearn, просто выполнив команду:

Более простым способом является установка Anaconda. Данный пакет сам установит все зависимости, так что вам не придется устанавливать их по одной.

Чтобы проверить, что Sklearn работает корректно, просто импортируйте эту библиотеку в интерпретаторе языка Python:

Если это не вызвало ошибок, значит все готово к работе.

После того, как мы разобрались с установкой, давайте вернемся к нашей задаче. Допустим, мы хотим научиться различать животных. Для этого мы создадим алгоритм, который сможет определить, является ли то или иное животное лошадью или курицей.

Сперва нам необходимо собрать исходные данные для каждого вида животного. Некоторые исходные данные представлены в таблице ниже.

Рост(см)Вес (кг)Температура (гр. Цельсия)Название
180.640Курица (0)
180.641Курица (0)
9460037Лошадь (1)
9460038Лошадь (1)

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

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

Сначала импортируем модуль tree из Sklearn.

Теперь определим набор характеристик, по которым будем классифицировать животных.

Далее определяем классификатор, который будет основываться на схеме принятия решения.

Передаем наши данные классификатору.

Полный код этого алгоритма представлен ниже.

Теперь мы можем предполагать определенный набор данных. Мы пробуем определить животное ростом 18 сантиметров, весом 0.6 кг и температурой 41 градус следующим образом:

А вот так мы пробуем определить животное ростом 94 см, весом 600 кг и температурой 37.5 градусов:

Как видно из примера, вы заставили алгоритм изучить все характеристики и названия двух животных, и знания об этих данных далее используются при идентификации новых животных.

Самостоятельное обучение

При самостоятельном обучении ваша машина получает только набор вводных данных. После чего машина сама будет способна определить взаимосвязи между введенными данными и любыми другими предположительными данными. В отличие от управляемого обучения, при котором машине предоставляются некоторые проверочные данные для обучения, самостоятельное обучение предполагает, что компьютер сам найдет закономерности и взаимосвязи между различными наборами данных.

Самостоятельное обучение может далее подразделяться на:

Кластеризация: Кластеризацией называют органичное группирование данных. Например, можно сгруппировать покупательские предпочтения клиентов и использовать их в рекламе, показывая только те объявления, которые соответствуют их покупкам или предпочтениям.

Некоторые из популярных алгоритмов самостоятельного обучения включают:

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

Заключение

Я надеюсь, что данный урок помог вам начать свое знакомство с машинным обучением. Это всего лишь введение, ведь эта тема очень обширна, и мы рассмотрели лишь малую часть того, на что способно машинное обучение.

Выбор в пользу алгоритмов управляемого или самостоятельного машинного обучения зависит от различных факторов, таких как структура и объем данных.

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

Источник

Создание машинно-обучаемого классификатора с помощью Scikit-learn в Python

Машинное обучение – это исследования в области информатики, искусственного интеллекта и статистики. В центре внимания машинного обучения – подготовка алгоритмов для изучения закономерностей и прогнозирования данных. Машинное обучение особенно ценно, потому что оно позволяет использовать компьютеры для автоматизации процессов принятия решений.

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

Данный мануал поможет реализовать простой алгоритм машинного обучения в Python с помощью инструмента Scikit-learn. Для этого мы будем использовать базу данных о раке молочной железы и классификатор Naive Bayes (NB), который предсказывает, является ли опухоль злокачественной или доброкачественной.

Требования

Для работы вам понадобится локальная среда разработки Python 3 и предварительно установленное приложение Jupyter Notebook. Это приложение очень полезно при запуске экспериментов по машинному обучению: оно позволяет запускать короткие блоки кода и быстро просматривать результаты, легко тестировать и отлаживать код.

Настроить такую среду вам помогут следующие мануалы:

1: Импорт Scikit-learn

Для начала нужно установить модуль Scikit-learn. Это одна из лучших и наиболее документированных библиотек Python для машинного обучения.

Чтобы начать работу над проектом, разверните среду разработки Python 3. Убедитесь, что вы находитесь в каталоге, в котором хранится эта среда, и выполните следующую команду:

После этого проверьте, не был ли модуль Sckikit-learn установлен ранее.

Если модуль sklearn установлен, команда выполнится без ошибок. Если модуль не установлен, вы увидите ошибку:

Traceback (most recent call last): File » «, line 1, in ImportError: No module named ‘sklearn’

Чтобы загрузить библиотеку, используйте pip:

pip install scikit-learn[alldeps]

После завершения установки запустите Jupyter Notebook:

В Jupyter создайте документ ML Tutorial. В первую ячейку документа импортируйте модуль sklearn.

Теперь можно начать работу с набором данных для модели машинного обучения.

2: Импорт наборов данных

В этом руководстве используется база данных диагностики рака молочной железы в Висконсине. Набор данных включает в себя различную информацию о раке молочной железы, а также классификационные метки (злокачественные или доброкачественные опухоли). Набор данных состоит из 569 экземпляров и 30 атрибутов (радиус опухоли, текстура, гладкость, площадь и т. д.).

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

Scikit-learn поставляется с несколькими наборами данных, включая этот. Импортируйте и загрузите набор данных. Для этого добавьте в документ:

.
from sklearn.datasets import load_breast_cancer
# Load dataset
data = load_breast_cancer()

Переменная data содержит словарь, важными ключами которого являются названия классификационных меток (target_names), метки (target), названия атрибутов (feature_names) и атрибуты (data).

Читайте также:

Атрибуты являются важной частью любого классификатора. Они фиксируют важные характеристики данных. Учитывая то, какую метку должен предсказать алгоритм (злокачественность/доброкачественность опухоли), в нем возможны такие атрибуты, как размер, радиус и структура опухоли.

Создайте новые переменные для каждого важного набора данных и присвойте значения:

.
# Organize our data
label_names = data[‘target_names’] labels = data[‘target’] feature_names = data[‘feature_names’] features = data[‘data’]

Теперь в алгоритме есть списки для каждого набора информации. Чтобы лучше понять набор данных, выведите метки классов, метку первого экземпляра данных, имена и значения атрибутов для первого экземпляра данных:

.
# Look at our data
print(label_names)
print(labels[0])
print(feature_names[0])
print(features[0])

Запустите код, чтобы увидеть результат.

Как видно в выводе, имена классов – malignant и benign, которые затем отображаются как двоичные значения 0 и 1, где 0 представляет собой злокачественные, а 1 – доброкачественные опухоли. Согласно выводу, первый экземпляр данных представляет собой злокачественную опухоль, средний радиус которой равен 1.79900000e+01.

Загрузив данные, можно начать работу над классификатором.

3: Систематизация данных в наборы

Чтобы оценить, насколько хорошо работает классификатор, всегда нужно тестировать модель на разных данных. Поэтому прежде чем начать строить модель, разделите свои данные на две части: тренировочный набор и тестовый набор.

Тренировочный набор можно использовать для обучения и оценки модели на этапе разработки. Готовую обучаемую модель затем можно применить к тестовому набору данных. Такой подход дает вам представление о производительности и надежности модели.

Модуль sklearn предоставляет функцию train_test_split(), которая автоматически разделит данные на два набора.

.
from sklearn.model_selection import train_test_split
# Split our data
train, test, train_labels, test_labels = train_test_split(features,
labels,
test_size=0.33,
random_state=42)

Функция случайным образом разбивает данные с помощью параметра test_size. Теперь у вас есть тестовый набор (test), который представляет 33% от исходного набора данных. Оставшиеся данные (train) составляют тренировочный набор. Также теперь есть соответствующие метки как для переменных train_labels и test_labels

4: Сборка и оценка модели

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

Импортируйте модуль GaussianNB. Инициализируйте модель с помощью функции GaussianNB(), а затем потренируйте модель, применив ее к данным с помощью gnb.fit():

.
from sklearn.naive_bayes import GaussianNB
# Initialize our classifier
gnb = GaussianNB()
# Train our classifier
model = gnb.fit(train, train_labels)

После этого можно применить подготовленную модель, чтобы сделать прогнозы на тестовом наборе данных, который используется с помощью функции predict(). Функция predict() возвращает массив предполагаемых результатов для каждого экземпляра данных в тестовом наборе. Затем можно вывести все прогнозы.

Используйте функцию predict() в наборе test и отобразите результат:

.
# Make predictions
preds = gnb.predict(test)
print(preds)

В выводе Jupyter Notebook вы увидите, что функция predict() возвращает массив из 0 и 1, которые представляют предсказанные программой результаты.

5: Оценка точности модели

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

.
from sklearn.metrics import accuracy_score
# Evaluate accuracy
print(accuracy_score(test_labels, preds))

Судя по результатам, данный классификатор NB имеет точность 94,15%. Это означает, что 94,15% ситуаций он оценивает правильно и может предсказать результат.

Вы создали свой первый классификатор машинного обучения. Теперь нужно реорганизовать код, переместив все выражения import в начало документа. В результате код должен выглядеть так:

from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import GaussianNB
from sklearn.metrics import accuracy_score
# Load dataset
data = load_breast_cancer()
# Organize our data
label_names = data[‘target_names’] labels = data[‘target’] feature_names = data[‘feature_names’] features = data[‘data’] # Look at our data
print(label_names)
print(‘Class label = ‘, labels[0])
print(feature_names)
print(features[0])
# Split our data
train, test, train_labels, test_labels = train_test_split(features,
labels,
test_size=0.33,
random_state=42)
# Initialize our classifier
gnb = GaussianNB()
# Train our classifier
model = gnb.fit(train, train_labels)
# Make predictions
preds = gnb.predict(test)
print(preds)
# Evaluate accuracy
print(accuracy_score(test_labels, preds))

Теперь вы можете продолжить работу с этим кодом и усложнить свой классификатор. Вы можете экспериментировать с различными подмножествами функций или попробовать другие алгоритмы. Больше идей машинного обучения можно найти на сайте Scikit-learn.

Источник

Trying to Install Sklearn on Python 3.8 Gives an Error

I’m trying to install sklearn (scikit-learn) on Python 3.8 on Windows 10 using the following:

I’ve also tried upgrading pip/setuptools.

There is a long block of errors; among them, the portion which seems to be relevant mentions Fortran:

Another part of the error:

No module named ‘numpy.distutils._msvccompiler’ in numpy.distutils;

I’m just wondering if this is because of the newness of 3.8? Is there a workaround anyone is aware of?

It seems to revolve around NumPy. I’ve uninstalled that package and reinstalled it.

Как установить sklearn python. Смотреть фото Как установить sklearn python. Смотреть картинку Как установить sklearn python. Картинка про Как установить sklearn python. Фото Как установить sklearn python

3 Answers 3

Just found this GitHub issue saying the following (16 days ago):

Python 3.8 is not officially supported by NumPy yet. We strongly suggest you stick with python 3.7 for now, until you see a 3.8 designation in the «Programming Language» section of the PyPI numpy page (probably several weeks) or until an Anaconda release with Python 3.8 is available (probably several months)

So it looks like it might be the underlying dependencies just not working with 3.8 yet. I actually had a similar issue with another package last week. You will probably have luck if you get a 3.7.5 install. Make sure you get the right platform (x86 for 32-bit, x64 for 64 bit) and make sure you check the box to add it to your path.

I’m guessing you’re on Windows yes? If so then after the install open a powershell and enter gcm python and gcm pip to make sure they are being pulled from the 3.7 install. If not, you’ll have to edit PATH in the system environment variables and move the new Python37 directory before Python38 in your PATH.

Источник

Getting PyCharm to import sklearn

Does anyone know how to solve this problem?

8 Answers 8

To make sure you have Scikit-learn package installed on your PyCharm IDE, go to File Menu>Settings and search for Interpreter. Select Project Interpreter, and if you dont see Scikit-learn in the list of packages, click the + sign on the right end. It brings us another window with a search bar, where you can type ‘Scikit-learn’ and install (see screenshots). I hope this helps.

Screenshots: Как установить sklearn python. Смотреть фото Как установить sklearn python. Смотреть картинку Как установить sklearn python. Картинка про Как установить sklearn python. Фото Как установить sklearn python, Как установить sklearn python. Смотреть фото Как установить sklearn python. Смотреть картинку Как установить sklearn python. Картинка про Как установить sklearn python. Фото Как установить sklearn python

please notice that, in the packages search ‘Scikit-learn‘, instead ‘sklearn

Double check your python interpreter. Check whether you have select correct interpreter at the first when you create the project.

Как установить sklearn python. Смотреть фото Как установить sklearn python. Смотреть картинку Как установить sklearn python. Картинка про Как установить sklearn python. Фото Как установить sklearn python

Or else you can check your interpreter from the project view under External Libraries.

Как установить sklearn python. Смотреть фото Как установить sklearn python. Смотреть картинку Как установить sklearn python. Картинка про Как установить sklearn python. Фото Как установить sklearn python

Как установить sklearn python. Смотреть фото Как установить sklearn python. Смотреть картинку Как установить sklearn python. Картинка про Как установить sklearn python. Фото Как установить sklearn python

If issue not resolved please check you PyCharm Interpreter path. Sometimes your machine have Python 2.7 and Python 3.6 both installed and there may be some conflict by choosing one.

Как установить sklearn python. Смотреть фото Как установить sklearn python. Смотреть картинку Как установить sklearn python. Картинка про Как установить sklearn python. Фото Как установить sklearn python

I had exactly the same problem. I’m using PyCharm with Anaconda3 & Python 3.7, and I’ve installed other packages into/via PyCharms just fine (such as numpy, scipy, and others). But although scikit-learn (which contains sklearn, that was initially confusing) seems fully installed on my system, including «import sklearn» working outside of PyCharm, I could not get the «import sklearn» to succeed inside PyCharm.

I finally got a python-expert friend to help me. He verified everything was correctly installed on my system and verified that PyCharm was somehow messing up.

We finally determined that the venv (virtual environment) was not including scikit-learn (sklearn) even though I had imported it properly into the Project Interpreter in PyCharms.

Solution: Delete and recreate the VENV, specifically ticking the box Inherit Global Site Packages

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *