Pattern Recognition Lab
Pattern Recognition Lab
CAL – 302
images and calculate basic statistics such as mean, mode, standard deviation,
etc.
Code:
from google.colab import files
uploaded = files.upload()
!pwd
import os
!pip install albumentations==0.4.6
import numpy as np
import pandas as pd
import torch
import torchvision
from torch.utils.data import Dataset,DataLoader
import albumentations as A
from albumentations.pytorch import ToTensorV2
import cv2
from tqdm import tqdm
import matplotlib.pyplot as plt
%matplotlib inline
device = torch.device('cpu')
import requests
os.environ['KAGGLE_CONFIG_DIR'] = "/content"
!kaggle competitions download -c cassava-leaf-disease-
classification
from zipfile import ZipFile
# specifying the zip file name
file_name = "cassava-leaf-disease-classification.zip"
df2.head()
class LeafData(Dataset):
def __init__(self,
data,
directory,
transform = None):
self.data = data
self.directory = directory
self.transform = transform
def __len__(self):
return len(self.data)
# import
path = os.path.join(self.directory,
self.data.iloc[idx]['image_id'])
image = cv2.imread(path, cv2.COLOR_BGR2RGB)
# augmentations
if self.transform is not None:
image = self.transform(image = image)['image']
return image
num_workers = 4
image_size = 512
batch_size = 8
# data loader
image_loader = DataLoader(image_dataset,
batch_size = batch_size,
shuffle = False,
num_workers = num_workers,
pin_memory = True)
# display images
for batch_idx, inputs in enumerate(image_loader):
fig = plt.figure(figsize = (14, 7))
for i in range(8):
ax = fig.add_subplot(2, 4, i + 1, xticks = [], yticks =
[])
plt.imshow(inputs[i].numpy().transpose(1, 2, 0))
break
Code:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets
wine=datasets.load_wine()
print(wine)
print(wine.feature_names)
print(wine.target_names)
X=pd.DataFrame(wine['data'])
print(X.head())
y=print(wine.target)
from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test=train_test_split(wine.data,wine.target,te
st_size=0.30,random_state=100)
Code:
!pip install pgmpy
import pandas as pd
data = pd.read_csv('heart.csv')
from pgmpy.models import BayesianNetwork
names = "A,B,C,D,E,F,G,H,I,J,K,L,M,RESULT"
names = names.split(",")
len(names)
data.head()
import pandas.util.testing as tm
model =
BayesianNetwork([('age','sex'),('trestbps','chol'),('restecg','thalach'
),('exang','target')])
model.fit(data)
from pgmpy.inference import VariableElimination
infer = VariableElimination(model)
print(infer)
q=infer.query(variables=['target'],evidence={'age':28})
print(q)
PROGRAM – 4
CODE:
def bayes_theorem(p_b, p_g_given_b, p_g_given_not_b):
# calculate P(not B)
not_b = 1 - p_b
# calculate P(G)
p_g = p_g_given_b * p_b + p_g_given_not_b * not_b
# calculate P(B|G)
p_b_given_g = (p_g_given_b * p_b) / p_g
return p_b_given_g
#P(B)
p_b = 1/7
# P(G|B)
p_g_given_b = 1
# P(G|notB)
p_g_given_not_b = 2/3
# calculate P(B|G)
result = bayes_theorem(p_b, p_g_given_b, p_g_given_not_b)
# print result
print('P(B|G) = %.2f%%' % (result * 100))
import pandas as pd
df = pd.read_csv('cereal.csv')
df
col1 = df.calories
col2 = df.potass
col3 = df.sodium
for i in range(1,21,2):
p_a = col1[i]/1000
p_b_given_a = col2[i]/1000
p_b_not_a = col3[i]/1000
result = bayes_theorem(p_a, p_b_given_a, p_b_not_a)
print(result)
PROGRAM – 5
CODE:
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
df = pd.read_csv("cereal.csv")
df
print(df.weight)
print(df.columns)
x =df.calories
print(x.var())
print(x.std())
df[['weight']].idxmax()
df.mean(axis = 0)
PROGRAM – 6
CODE:
x.shape
y.shape
digits.images.shape
digits.images[0]
y_red = knn.predict(x_test)
y_red
CODE:
import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
from sklearn.datasets import make_blobs
from sklearn.cluster import KMeans
wcss = []
for i in range(1, 11):
kmeans = KMeans(n_clusters=i, init='k-
means++', max_iter=300, n_init=10, random_state=0)
kmeans.fit(X)
wcss.append(kmeans.inertia_)
plt.plot(range(1, 11), wcss)
plt.title('Elbow Method')
plt.xlabel('Number of clusters')
plt.ylabel('WCSS')
plt.show()
kmeans = KMeans(n_clusters=4, init='k-
means++', max_iter=300, n_init=10, random_state=0)
pred_y = kmeans.fit_predict(X)
plt.scatter(X[:,0], X[:,1])
plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1
], s=300, c='red')
plt.show()
PROGRAM – 8
CODE:
import pandas as pd
url = "https://archive.ics.uci.edu/ml/machine-learning-
databases/iris/iris.data"
# load dataset into Pandas DataFrame
df = pd.read_csv(url, names=['sepal length','sepal width','petal length
','petal width','target'])
df.head()
pca.explained_variance_ratio_