Types of Machine Learning with Code Examples
There are 4 types of Machine Learning:
- Supervised Learning
- Unsupervised Learning
- Semi-Supervised Learning
- Reinforcement Learning
Let's see them one by one in detail.
1. Supervised Learning
Definition: Supervised learning is a type of machine learning where the algorithm learns from labeled training data.
Explanation:
- In supervised learning, the algorithm learns from labeled data, where each training example has an associated output label.
- The goal is to learn a mapping from inputs to outputs.
Applications:
- Predicting house prices based on features like size, location, and number of bedrooms.
- Classifying emails as spam or not spam based on their content.
- Detecting fraudulent transactions in financial data.
Code Example (Python - Scikit-Learn):
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
# Load the Iris dataset
iris = load_iris()
X, y = iris.data, iris.target
# Split the data into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Initialize and train a K-Nearest Neighbors classifier
knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(X_train, y_train)
# Make predictions on the test data
y_pred = knn.predict(X_test)
# Evaluate the model
accuracy = knn.score(X_test, y_test)
print(f'Accuracy: {accuracy}')
2. Unsupervised Learning
Definition: Unsupervised learning is a type of machine learning where the algorithm learns from unlabeled data.
Explanation:
- In unsupervised learning, the algorithm learns from data without explicit output labels.
- The goal is to find hidden patterns or structures in the input data.
Applications:
- Customer segmentation for targeted marketing.
- Grouping news articles into topics for recommendation systems.
- Anomaly detection to identify unusual behavior in data.
Code Example (Python - Scikit-Learn):
from sklearn.datasets import load_iris
from sklearn.cluster import KMeans
# Load the Iris dataset
iris = load_iris()
X = iris.data
# Initialize and fit a K-Means clustering model
kmeans = KMeans(n_clusters=3, random_state=42)
kmeans.fit(X)
# Get the cluster labels
labels = kmeans.labels_
print(labels)
3. Semi-Supervised Learning
Definition: Semi-supervised learning is a type of machine learning that uses both labeled and unlabeled data.
Explanation:
- Semi-supervised learning leverages a small amount of labeled data along with a larger amount of unlabeled data.
- It combines the benefits of labeled data for learning structure and unlabeled data for generalization.
Applications:
- Sentiment analysis in text data where only a small subset of data is labeled.
- Medical diagnosis using a combination of labeled patient data and unlabeled medical records.
- Image classification with a limited number of labeled images and a large collection of unlabeled images.
Code Example (Python - Scikit-Learn):
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
# Load the Iris dataset
iris = load_iris()
X, y = iris.data, iris.target
# Split the data into a small labeled set and a larger unlabeled set
X_labeled, X_unlabeled, y_labeled, _ = train_test_split(X, y, test_size=0.8, random_state=42)
# Initialize and train a Support Vector Machine classifier
svm = SVC(kernel='linear')
svm.fit(X_labeled, y_labeled)
# Make predictions on new data
predictions = svm.predict(X_unlabeled)
print(predictions)
4. Reinforcement Learning
Definition: Reinforcement learning is a type of machine learning where an agent learns to make decisions by trial and error.
Explanation:
- Reinforcement learning involves an agent interacting with an environment and learning from feedback in the form of rewards or penalties.
- The goal is to learn a policy that maximizes cumulative rewards over time.
Applications:
- Game playing, such as chess or Go, where the agent learns to make strategic moves.
- Robotics, where the agent learns to perform tasks like navigating an environment or manipulating objects.
- Autonomous vehicles, where the agent learns to drive safely and efficiently.
Code Example (Python - OpenAI Gym):
import gym
import numpy as np
# Create the CartPole environment
env = gym.make('CartPole-v1')
# Initialize the Q-table
Q = np.zeros((env.observation_space.n, env.action_space.n))
# Define hyperparameters
alpha = 0.1 # Learning rate
gamma = 0.6 # Discount factor
epsilon = 0.1 # Exploration rate
# Training loop
for episode in range(1, 1001):
state = env.reset()
done = False
while not done:
if np.random.uniform(0, 1) < epsilon:
action = env.action_space.sample() # Explore action space
else:
action = np.argmax(Q[state]) # Exploit learned values
next_state, reward, done, _ = env.step(action)
# Update Q-value using Q-learning update rule
Q[state][action] += alpha * (reward + gamma * np.max(Q[next_state]) - Q[state][action])
state = next_state
# Evaluate the trained agent
total_rewards = 0
test_episodes = 100
for _ in range(test_episodes):
state = env.reset()
done = False
while not done:
action = np.argmax(Q[state])
state, reward, done, _ = env.step(action)
total_rewards += reward
average_reward = total_rewards / test_episodes
print(f'Average reward: {average_reward}')
Explanation
This code implements the Q-learning algorithm to train an agent to balance a pole on a moving cart in the CartPole environment.
- We create the CartPole environment using OpenAI Gym.
- We initialize a Q-table to store Q-values for state-action pairs.
- We define hyperparameters such as learning rate (alpha), discount factor (gamma), and exploration rate (epsilon).
- The training loop iterates through episodes, where the agent interacts with the environment, updates Q-values using the Q-learning update rule, and learns a policy.
- The trained agent is then evaluated over test episodes to calculate the average reward obtained.
Comments
Post a Comment