logologo
Ai badge logo

This article was created with the support of artificial intelligence.

ArticleDiscussion

Best Python Libraries for Machine Learning

fav gif
Save
viki star outline
pythonai.jpeg
Best Python libraries for Machine Learning
Programlama Dili
Python
Alan
AI & ML


(Credit: quintagroup)


Machine learning (ML) has become a pivotal aspect of data science, enabling systems to learn and make predictions from data. Python, a programming language known for its simplicity and versatility, offers an array of libraries that facilitate efficient machine learning workflows. These libraries cover a broad spectrum of tasks, including data manipulation, model development, and evaluation, making Python a go-to language for ML practitioners.

NumPy

  • Overview: NumPy is a fundamental library for scientific computing in Python. It is widely used for numerical operations, particularly with multi-dimensional arrays and matrices.


  • Applications in Machine Learning: NumPy forms the backbone for many high-end machine learning frameworks such as TensorFlow. It provides efficient tools for numerical operations like linear algebra, Fourier transforms, and random number generation, which are essential for developing machine learning models.


  • Key Features:
  • Support for large multi-dimensional arrays.
  • High-level mathematical functions.
  • Efficient handling of matrix operations and numerical algorithms.


import numpy as np
# Create a feature matrix (X) and target vector (y)
X = np.array([[1, 2], [3, 4], [5, 6]])
y = np.array([1, 2, 3])

# Calculate the mean of each feature
mean = np.mean(X, axis=0)
print("Mean of features:", mean)

(Example: Lineer Algebra Operations - GeeksforGeeks)

Pandas

  • Overview: Pandas is a powerful library designed for data analysis and manipulation. Although not specifically built for machine learning, it is crucial for data preprocessing, which is an essential step in the ML pipeline.


  • Applications in Machine Learning: Pandas is used for loading, cleaning, transforming, and preparing data before it is used to train machine learning models. It offers data structures like DataFrames and Series, which provide easy handling of datasets.


  • Key Features:
  • Data manipulation tools (filtering, grouping, merging).
  • Handling of missing data.
  • Easy integration with other ML libraries like Scikit-learn.


import pandas as pd

# Create a DataFrame with missing values
data = {
    'Country': ['Brazil', 'Russia', 'India', None],
    'Population': [200.4, 143.5, None, 52.98]
}
df = pd.DataFrame(data)

# Fill missing values
df['Population'].fillna(df['Population'].mean(), inplace=True)
print(df)

(Example: Data Cleaning and Preparation - GeeksforGeeks)

Matplotlib

  • Overview: Matplotlib is a popular data visualization library in Python, widely used for creating static, animated, and interactive plots.


  • Applications in Machine Learning: Visualizing data and model performance is crucial in machine learning, and Matplotlib excels at this. It helps in plotting various graphs like histograms, bar charts, scatter plots, and line charts to analyze data distributions and results.


  • Key Features:
  • 2D plotting capabilities.
  • Customizable plots with various styles and formatting options.
  • Integration with NumPy and Pandas.


#  Python program using Matplotlib 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()

(Example: Creating a linear Plot - GeeksforGeeks)

SciPy

  • Overview: SciPy is a Python library used for scientific and technical computing. It builds on NumPy and provides additional functionality for optimization, integration, and statistics.


  • Applications in Machine Learning: SciPy is helpful for tasks like optimization (e.g., hyperparameter tuning), statistical analysis, and handling complex mathematical operations in machine learning algorithms.


  • Key Features:
  • Optimization algorithms.
  • Integration and interpolation tools.
  • Statistical functions.


# 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)

(Example: Image Manipulation - GeeksforGeeks)

TensorFlow

  • Overview: TensorFlow is an open-source library developed by Google for numerical computation, particularly for machine learning and deep learning.


  • Applications in Machine Learning: TensorFlow is widely used for training and deploying deep learning models. It supports neural network models and allows for the efficient computation of tensors (multi-dimensional arrays). TensorFlow’s scalability makes it suitable for large datasets and complex models.


  • Key Features:
  • Deep learning model development.
  • GPU acceleration for faster computation.
  • Tools for training, evaluation, and deployment of models.


#  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()

(Example - GeeksforGeeks )

Keras

  • Overview: Keras is a high-level neural network API written in Python, capable of running on top of TensorFlow, CNTK, or Theano.


  • Applications in Machine Learning: Keras simplifies the process of designing and training neural networks, making it particularly useful for beginners in machine learning. It provides an intuitive interface to build models with fewer lines of code.


  • Key Features:
  • Easy and fast prototyping of deep learning models.
  • Seamless integration with TensorFlow and other backends.
  • Support for both CPU and GPU computation.


# Importing necessary libraries
from keras.models import Sequential
from keras.layers import Dense, Flatten
from keras.datasets import mnist
from keras.utils import to_categorical

# Loading the MNIST dataset
(X_train, y_train), (X_test, y_test) = mnist.load_data()

# Normalizing the input data
X_train = X_train / 255.0
X_test = X_test / 255.0

# One-hot encoding the labels
y_train = to_categorical(y_train, 10)
y_test = to_categorical(y_test, 10)

# Building the model
model = Sequential()
model.add(Flatten(input_shape=(28, 28)))  # Flatten the 2D images into 1D vectors
model.add(Dense(128, activation='relu'))  # Hidden layer with ReLU activation
model.add(Dense(10, activation='softmax'))  # Output layer with Softmax for classification

# Compiling the model
model.compile(optimizer='adam', 
              loss='categorical_crossentropy', 
              metrics=['accuracy'])

# Training the model
model.fit(X_train, y_train, epochs=5, batch_size=32, validation_split=0.2)

# Evaluating the model
test_loss, test_accuracy = model.evaluate(X_test, y_test)
print(f"Test Accuracy: {test_accuracy:.4f}")

(Example - GeeksforGeeks)

PyTorch

  • Overview: PyTorch is an open-source deep learning library based on the Torch framework, which is implemented in C and Lua. It has gained significant popularity due to its flexibility and ease of use.


  • Applications in Machine Learning: PyTorch is used for creating deep learning models, especially in fields like computer vision and natural language processing (NLP). It supports dynamic computation graphs, which allow for more flexibility during model development.


  • Key Features:
  • Dynamic computation graphs.
  • GPU acceleration with CUDA.
  • Strong support for neural networks and automatic differentiation.


# 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.random(N, D_in, device=device, dtype=dtype)
y = torch.random(N, D_out, device=device, dtype=dtype)

# Randomly initialize weights
w1 = torch.random(D_in, H, device=device, dtype=dtype)
w2 = torch.random(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 = x.t().mm(grad_h)

    # Update weights using gradient descent
    w1 -= learning_rate * grad_w1
    w2 -= learning_rate * grad_w2

(Example - GeeksforGeeks)

Scikit-learn

  • Overview: Scikit-learn is one of the most popular Python libraries for machine learning, offering simple and efficient tools for data mining and data analysis.


  • Applications in Machine Learning: Scikit-learn provides a variety of algorithms for classification, regression, clustering, and dimensionality reduction. It also offers tools for model evaluation and hyperparameter tuning.


  • Key Features:
  • Pre-built machine learning algorithms.
  • Easy integration with NumPy and Pandas.
  • Tools for model evaluation and cross-validation.


# Import necessary libraries
from sklearn import datasets
from sklearn.tree import DecisionTreeClassifier

# Load the iris dataset
iris = datasets.load_iris()

# Split the dataset into features (X) and target labels (y)
X = iris.data   # Features (sepal length, sepal width, petal length, petal width)
y = iris.target # Target (species)

# Initialize the Decision Tree Classifier
clf = DecisionTreeClassifier()

# Train the model on the entire dataset
clf.fit(X, y)

# Make predictions on the same dataset
predictions = clf.predict(X)

# Print the first 10 predictions
print("Predicted labels for the first 10 samples:", predictions[:10])

# Print the actual labels for comparison
print("Actual labels for the first 10 samples:", y[:10])

(Example: Decision Tree Classifier - GeeksforGeeks)

Bibliographies

GeeksforGeeks. "Best Python Libraries for Machine Learning." Erişim Adresi.

Quintagroup. "The Role of Python in Machine Learning and Artificial Intelligence" Erişim Adresi.

You Can Rate Too!

0 Ratings

Author Information

Avatar
Main AuthorAybala KılıçFebruary 9, 2025 at 3:56 PM
Ask to Küre