Лучшие библиотеки Python для машинного обучения
Машинное обучение, как следует из названия, - это наука о программировании компьютера, с помощью которого они могут учиться на различных типах данных. Артур Самуэль дал более общее определение: «Машинное обучение - это область обучения, которая дает компьютерам возможность учиться без явного программирования». Обычно они используются для решения различных жизненных проблем.
Раньше люди выполняли задачи машинного обучения, вручную кодируя все алгоритмы и математические и статистические формулы. Это делало процесс трудоемким, утомительным и неэффективным. Но в наши дни это стало намного проще и эффективнее по сравнению с былыми днями с помощью различных библиотек, фреймворков и модулей Python. Сегодня Python является одним из самых популярных языков программирования для этой задачи, и он заменил многие языки в отрасли, одной из причин этого является его обширная коллекция библиотек. Библиотеки Python, которые используются в машинном обучении:
- Numpy
- Scipy
- Scikit-Learn
- Theano
- TensorFlow
- Керас
- PyTorch
- Панды
- Матплотлиб
Numpy
NumPy - очень популярная библиотека Python для обработки больших многомерных массивов и матриц с помощью большого набора математических функций высокого уровня. Это очень полезно для фундаментальных научных вычислений в машинном обучении. Это особенно полезно для возможностей линейной алгебры, преобразования Фурье и случайных чисел. Высококачественные библиотеки, такие как TensorFlow, внутренне используют NumPy для управления тензорами.
# Python program using NumPy # for some basic mathematical # operations import numpy as np # Creating two arrays of rank 2 x = np.array([[ 1 , 2 ], [ 3 , 4 ]]) y = np.array([[ 5 , 6 ], [ 7 , 8 ]]) # Creating two arrays of rank 1 v = np.array([ 9 , 10 ]) w = np.array([ 11 , 12 ]) # Inner product of vectors print (np.dot(v, w), "
" ) # Matrix and Vector product print (np.dot(x, v), "
" ) # Matrix and matrix product print (np.dot(x, y)) |
Выход:
219 [29 67] [[19 22] [43 50]]
Для получения более подробной информации обратитесь к Numpy.
SciPy
SciPy - очень популярная библиотека среди энтузиастов машинного обучения, поскольку она содержит различные модули для оптимизации, линейной алгебры, интеграции и статистики. Есть разница между библиотекой SciPy и стеком SciPy. SciPy - один из основных пакетов, составляющих стек SciPy. SciPy также очень полезен для обработки изображений.
# Python script using Scipy # for image manipulation from scipy.misc import imread, imsave, imresize # Read a JPEG image into a numpy array img = imread( "D:/Programs / cat.jpg" ) # path of the image print (img.dtype, img.shape) # Tinting the image img_tint = img * [ 1 , 0.45 , 0.3 ] # Saving the tinted image imsave( "D:/Programs / cat_tinted.jpg" , img_tint) # Resizing the tinted image to be 300 x 300 pixels img_tint_resize = imresize(img_tint, ( 300 , 300 )) # Saving the resized tinted image imsave( "D:/Programs / cat_tinted_resized.jpg" , img_tint_resize) |
Исходное изображение:
Тонированное изображение:
Изменен размер тонированного изображения:
Для получения более подробной информации обратитесь к документации.
Scikit-Learn
Skikit-learn - одна из самых популярных библиотек машинного обучения для классических алгоритмов машинного обучения. Он построен на основе двух базовых библиотек Python, а именно NumPy и SciPy. Scikit-learn поддерживает большинство контролируемых и неконтролируемых алгоритмов обучения. Scikit-learn также можно использовать для интеллектуального анализа и анализа данных, что делает его отличным инструментом для начинающих с машинного обучения.
# Python script using Scikit-learn # for Decision Tree Clasifier # Sample Decision Tree Classifier from datasets import sklearn from sklearn import metrics from sklearn.tree import DecisionTreeClassifier # load the iris datasets dataset = datasets.load_iris() # fit a CART model to the data model = DecisionTreeClassifier() model.fit(dataset.data, dataset.target) print (model) # make predictions expected = dataset.target predicted = model.predict(dataset.data) # summarize the fit of the model print (metrics.classification_report(expected, predicted)) print (metrics.confusion_matrix(expected, predicted)) |
Выход:
DecisionTreeClassifier (class_weight = None, критерий = 'gini', max_depth = None, max_features = Нет, max_leaf_nodes = Нет, min_impurity_decrease = 0,0, min_impurity_split = Нет, min_samples_leaf = 1, min_samples_split = 2, min_weight_fraction_leaf = 0,0, предварительная сортировка = False, random_state = None, splitter = 'лучший') точный отзыв поддержка f1-score 0 1,00 1,00 1,00 50 1 1,00 1,00 1,00 50 2 1,00 1,00 1,00 50 микро средн. 1,00 1,00 1,00 150 макрос в среднем 1,00 1,00 1,00 150 средневзвешенный 1,00 1,00 1,00 150 [[50 0 0] [0 50 0] [0 0 50]]
Для получения более подробной информации обратитесь к документации.
Theano
Все мы знаем, что машинное обучение - это в основном математика и статистика. Theano - популярная библиотека Python, которая используется для эффективного определения, оценки и оптимизации математических выражений, включающих многомерные массивы. Это достигается за счет оптимизации использования CPU и GPU. Он широко используется для модульного тестирования и самопроверки для обнаружения и диагностики различных типов ошибок. Theano - это очень мощная библиотека, которая долгое время использовалась в крупномасштабных научных проектах с интенсивными вычислениями, но при этом проста и достаточно доступна для использования отдельными людьми в своих собственных проектах.
# Python program using Theano # for computing a Logistic # Function import theano import theano.tensor as T x = T.dmatrix( 'x' ) s = 1 / ( 1 + T.exp( - x)) logistic = theano.function([x], s) logistic([[ 0 , 1 ], [ - 1 , - 2 ]]) |
Выход:
массив ([[0,5, 0,73105858], [0,26894142, 0,11920292]])
Для получения более подробной информации обратитесь к документации.
TensorFlow
TensorFlow - очень популярная библиотека с открытым исходным кодом для высокопроизводительных численных вычислений, разработанная командой Google Brain в Google. Как следует из названия, Tensorflow - это фреймворк, который включает определение и выполнение вычислений с использованием тензоров. Он может обучать и запускать глубокие нейронные сети, которые можно использовать для разработки нескольких приложений искусственного интеллекта. TensorFlow широко используется в области исследований и приложений глубокого обучения.
# Python program using TensorFlow # for multiplying two arrays # import `tensorflow` import tensorflow as tf # Initialize two constants x1 = tf.constant([ 1 , 2 , 3 , 4 ]) x2 = tf.constant([ 5 , 6 , 7 , 8 ]) # Multiply result = tf.multiply(x1, x2) # Initialize the Session sess = tf.Session() # Print the result print (sess.run(result)) # Close the session sess.close() |
Выход:
[5 12 21 32]
Для получения более подробной информации обратитесь к документации.
Керас
Keras - очень популярная библиотека машинного обучения для Python. Это высокоуровневый API нейронных сетей, способный работать поверх TensorFlow, CNTK или Theano. Он может без проблем работать как на CPU, так и на GPU. Keras помогает новичкам в ML создавать и проектировать нейронную сеть. Одна из лучших особенностей Keras - это то, что он позволяет легко и быстро создавать прототипы.
Для получения более подробной информации обратитесь к документации.
PyTorch
PyTorch - популярная библиотека машинного обучения с открытым исходным кодом для Python, основанная на Torch, которая представляет собой библиотеку машинного обучения с открытым исходным кодом, которая реализована на C с оболочкой в Lua. Он имеет широкий выбор инструментов и библиотек, которые поддерживают компьютерное зрение, обработку естественного языка (NLP) и многие другие программы машинного обучения. Это позволяет разработчикам выполнять вычисления на тензорах с ускорением графического процессора, а также помогает в создании вычислительных графов.
# Python program using PyTorch # for defining tensors fit a # two-layer network to random # data and calculating the loss import torch dtype = torch. float device = torch.device( "cpu" ) # device = torch.device("cuda:0") Uncomment this to run on GPU # N is batch size; D_in is input dimension; # H is hidden dimension; D_out is output dimension. N, D_in, H, D_out = 64 , 1000 , 100 , 10 # Create random input and output data x = torch.randn(N, D_in, device = device, dtype = dtype) y = torch.randn(N, D_out, device = device, dtype = dtype) # Randomly initialize weights w1 = torch.randn(D_in, H, device = device, dtype = dtype) w2 = torch.randn(H, D_out, device = device, dtype = dtype) learning_rate = 1e - 6 for t in range ( 500 ): # Forward pass: compute predicted y h = x.mm(w1) h_relu = h.clamp( min = 0 ) y_pred = h_relu.mm(w2) # Compute and print loss loss = (y_pred - y). pow ( 2 ). sum ().item() print (t, loss) # Backprop to compute gradients of w1 and w2 with respect to loss grad_y_pred = 2.0 * (y_pred - y) grad_w2 = h_relu.t().mm(grad_y_pred) grad_h_relu = grad_y_pred.mm(w2.t()) grad_h = grad_h_relu.clone() grad_h[h < 0 ] = 0 grad_w1 = xt().mm(grad_h) # Update weights using gradient descent w1 - = learning_rate * grad_w1 w2 - = learning_rate * grad_w2 |
Выход:
0 47168344,0 1 46385584,0 2 43153576,0 ... ... ... 497 3.987660602433607e-05 498 3.945609932998195e-05 499 3.897604619851336e-05
Для получения более подробной информации обратитесь к документации.
Панды
Pandas - популярная библиотека Python для анализа данных. Это не имеет прямого отношения к машинному обучению. Как мы знаем, набор данных необходимо подготовить перед обучением. В этом случае вам пригодится Pandas, поскольку он был разработан специально для извлечения и подготовки данных. Он предоставляет высокоуровневые структуры данных и широкий спектр инструментов для анализа данных. Он предоставляет множество встроенных методов для поиска, объединения и фильтрации данных.
# Python program using Pandas for # arranging a given set of data # into a table # importing pandas as pd import pandas as pd data = { "country" : [ "Brazil" , "Russia" , "India" , "China" , "South Africa" ], "capital" : [ "Brasilia" , "Moscow" , "New Dehli" , "Beijing" , "Pretoria" ], "area" : [ 8.516 , 17.10 , 3.286 , 9.597 , 1.221 ], "population" : [ 200.4 , 143.5 , 1252 , 1357 , 52.98 ] } data_table = pd.DataFrame(data) print (data_table) |
Выход:
Для получения более подробной информации обратитесь к Pandas.
Матплотлиб
Matpoltlib - очень популярная библиотека Python для визуализации данных. Как и Pandas, он не имеет прямого отношения к машинному обучению. Это особенно удобно, когда программист хочет визуализировать закономерности в данных. Это библиотека 2D-графиков, используемая для создания 2D-графиков и графиков. Модуль под названием pyplot упрощает для программистов построение графиков, поскольку он предоставляет функции для управления стилями линий, свойствами шрифтов, осями форматирования и т. Д. Он предоставляет различные виды графиков и графиков для визуализации данных, а именно, гистограммы, диаграммы ошибок, гистограммы. , так далее,
# Python program using Matplotib # for forming a linear plot # importing the necessary packages and modules import matplotlib.pyplot as plt import numpy as np # Prepare the data x = np.linspace( 0 , 10 , 100 ) # Plot the data plt.plot(x, x, label = 'linear' ) # Add a legend plt.legend() # Show the plot plt.show() |
Выход:
Для получения более подробной информации обратитесь к документации.
Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.
Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.