3/26/25, 10:22 PM patternassignment-2 - Colab
**ASSIGNMENT-2**
**PATTERN RECONIGATION**
**MALLIKARJUNA**
**BU22CSEN0102223**
Write a python program to model statistically the feature space using distribution functions
To model a feature space statistically using distribution functions in Python, we can use libraries such as NumPy, SciPy, and Matplotlib.
Below is a simple example that demonstrates how to model a feature space using Gaussian (normal) distribution functions. This example
will generate synthetic data, fit a Gaussian distribution to it, and visualize the results.
explaination- Python Program to Model a Feature Space Using Distribution Functions
numpy :
A powerful library for numerical computing in Python.
Used here to generate synthetic data that mimics a feature space.
matplotlib :
A library for creating static, animated, and interactive visualizations.
Used to plot histograms and fitted distribution curves.
[Link] :
Provides statistical functions and probability distributions.
Used to fit and visualize the Gaussian (normal) distribution.
** Generating Synthetic Feature Space Data**
[Link](mean, std_dev, size)
Generates random samples from a normal distribution.
Parameters:
mean : The average value of the distribution.
std_dev : The standard deviation (spread of the data).
size : Number of samples to generate.
Example interpretation:
feature1 → Follows a Gaussian distribution with mean 50 and standard deviation 10.
feature2 → Follows a Gaussian distribution with mean 30 and standard deviation 5.
Each feature contains 1000 samples to simulate the feature space.
** Fitting Gaussian Distribution to Each Feature**
Explanation of Visualization Code
1. [Link](figsize=(12, 6)) :
Creates a figure with a size of 12 inches wide and 6 inches tall.
2. [Link](1, 2, 1) and [Link](1, 2, 2) :
Creates two side-by-side subplots.
1, 2 : One row, two columns layout.
1 → First subplot, 2 → Second subplot.
3. Plotting the histogram:
[Link](feature1, bins=30, density=True, alpha=0.6, color='blue')
feature1 : Data to be plotted.
bins=30 : Number of bins for the histogram.
density=True : Normalizes the histogram to form a PDF.
alpha=0.6 : Sets the transparency level of the bars.
color='blue' : Histogram color.
4. Plotting the fitted Gaussian PDF:
x1 = [Link](min(feature1), max(feature1), 100)
Creates 100 evenly spaced points between the min and max values.
pdf1 = [Link](x1, mu1, std1)
[Link] 1/3
3/26/25, 10:22 PM patternassignment-2 - Colab
Calculates the PDF values using the fitted mean ( mu1 ) and std deviation ( std1 ).
[Link](x1, pdf1, 'r-', label='Fitted Gaussian')
Plots the fitted Gaussian distribution as a red line.
Final Visualization Output
1. Feature 1:
Histogram overlaid with the fitted Gaussian curve.
Displays the mean and standard deviation.
2. Feature 2:
Histogram overlaid with the fitted Gaussian curve.
Displays the mean and standard deviation.
conclusion
Feature Space Modeling:
Each feature follows a Gaussian distribution.
We fit and visualize the distribution to observe how the data is distributed.
Statistical Parameters:
Mean: Represents the central value.
Standard Deviation: Measures the spread of the distribution.
Visualization:
Histograms show the frequency of values.
The fitted Gaussian curve shows the underlying probability distribution.
import numpy as np
import [Link] as plt
from scipy import stats
# Generate synthetic data
[Link](42) # For reproducibility
mean = 0
std_dev = 1
num_samples = 1000
# Generate data from a normal distribution
data = [Link](mean, std_dev, num_samples)
# Fit a Gaussian distribution to the data
mu, std = [Link](data)
# Create a range of x values for plotting the PDF
x = [Link](min(data), max(data), 1000)
# Get the PDF of the fitted Gaussian distribution
pdf = [Link](x, mu, std)
# Plot the histogram of the data
[Link](data, bins=30, density=True, alpha=0.6, color='g', label='Histogram of Data')
# Plot the PDF of the fitted Gaussian distribution
[Link](x, pdf, 'k', linewidth=2, label='Fitted Gaussian PDF')
# Add titles and labels
[Link]('Fit of Gaussian Distribution to Data')
[Link]('Data Values')
[Link]('Density')
[Link]()
# Show the plot
[Link]()
# Print the fitted parameters
print(f"Fitted Gaussian Parameters:\nMean: {mu}\nStandard Deviation: {std}")
[Link] 2/3
3/26/25, 10:22 PM patternassignment-2 - Colab
Fitted Gaussian Parameters:
Mean: 0.01933205582232549
Standard Deviation: 0 9787262077473543
[Link] 3/3