Scikit-learn
SKTet, полное название scikit-learn, — это библиотека машинного обучения на Python, построенная на базе пакетов для науки о данных, таких как numpy, scipy и matplotlib, охватывающая практически все аспекты машинного обучения, такие как выборочные данные, предварительная обработка данных, верификация моделей, выбор признаков, классификация, регрессия, кластеризация и уменьшение размерности. В отличие от фонда глубокого обучения, доступного в различных фреймворках, таких как pytorch и TensorFlow, sklearn является предпочтительным выбором библиотеки для традиционного машинного обучения в Python, и других конкурентов нет.
Официальный сайт:Вход по гиперссылке виден. Источник:Вход по гиперссылке виден.
Расширение для Scikit-learn
Как классический фреймворк машинного обучения, scikit-learn разрабатывается уже более десяти лет с момента своего появления, но его вычислительная скорость подвергается широкой критике со стороны пользователей. Расширение для Scikit-learn — это бесплатный ускоритель искусственного интеллекта, созданный для помощи вамСуществующий код Scikit-learn обеспечивает ускорение в 10–100 раз。 Программное ускорение достигается с помощью векторных инструкций, оптимизации памяти для аппаратного обеспечения ИИ, потоков и оптимизации.
С расширением Scikit-learn вы можете:
- Обучение и вывод в 100 раз быстрее с той же математической точностью
- Получите преимущество от улучшения производительности в различных конфигурациях ЦПУ, включая GPU и мульти-GPU
- Интегрируйте расширения в ваши существующие приложения Scikit-learn без изменений кода
- Продолжайте использовать открытый API scikit-learn
- Используйте несколько строк кода или включите и отключите расширения в командной строке
Источник:Вход по гиперссылке виден. Документация:Вход по гиперссылке виден.
Тест
Сначала используйте conda для подготовки среды и установите необходимые пакеты с помощью следующей команды:
Новый тестовый код на Python выглядит следующим образом:
Ускоренный код выглядит следующим образом:
Интерпретация исходного кода:
1.X, y = make_regression(n_samples=2000000, n_features=100, шум=1, random_state=42) make_regression — это функция в scikit-learn, которая генерирует набор данных для задач линейной регрессии. n_samples=2000000: Указывает количество выборок в сгенерированном наборе данных — 2 000 000. n_features=100: Указывает, что каждый выборка содержит 100 признаков (то есть входных переменных). шум=1: Стандартное отклонение добавления шума к целевому значению y равно 1. Это означает, что целевое значение будет иметь случайные возмущения. random_state=42: Установить случайное семя в 42, чтобы генерируемые данные оставались одинаковыми при каждом запуске кода (повторяемость). Результаты: X — это массив NumPy формы (2000000, 100), представляющий 2 000 000 образцов с 100 признаками каждая; y — это одномерный массив длиной 2 000 000, который представляет целевое значение.
2. X_train, _, y_train, _ = train_test_split(X, y, test_size=0,33, random_state=42) train_test_split — это функция в scikit-learn, которая делит набор данных на обучающие и тестовые наборы. test_size=0.33: Означает, что 33% набора данных выделены тестовому набору, а оставшиеся 67% — обучающему набору. random_state=42: Установить случайное семя на 42, чтобы результат разделения данных был одинаковым при запуске кода. : Используйте подчёркивание, чтобы игнорировать возвратное значение. Здесь нас интересует только часть с обучающим набором (X_train и y_train) и игнорируем тестовый набор. Результат: X_train: Матрица признаков обучающего набора в форме (1340000, 100) (около 67% данных). y_train: Целевая стоимость учебного набора длиной 1 340 000.
3. модель = линейная регрессия() Линейная регрессия — это класс в scikit-learn, реализующий модели линейной регрессии. Эта строка кода создаёт экземпляр линейной регрессионной модели и присваивает значения переменной модели. По умолчанию линейная регрессия не регуляризирует данные (то есть нет регуляризации L1 или L2).
4. model.fit (X_train, y_train) Fit — это метод в модели scikit-learn, который используется для обучения модели. Здесь метод подгонки вызывается для соответствия линейной регрессионной модели с использованием обучающего набора данных X_train и целевого значения y_train. Модель вычисляет оптимальный набор весов (коэффициентов) и пересечений, чтобы минимизировать ошибку между предсказанными и истинными значениями (обычно наименьшими квадратами). После завершения обучения параметры модели хранятся в model.coef_ (вес объекта) и model.intercept_ (перехват).
Время выполнения составляет следующее:
Вы можете увидеть, что эффект очень заметен как без ускорения, так и после ускорения,Без ускорения проходит около 16 секунд и всего 0,1 секунды после разгона!!!! |