Need Help Task 1 Anyone Help Solve Task 1 Use Pca Previous Assignment Convert Data 4d 2d M Q43779624
I need help with task 1, can anyone help me solveit?
Task 1: Use PCA from previous assignment to convert data from 4Dto 2D. If you did not manage to implement PCA, you can simply usefirst 2 dimensions of the database. (4 points if PCA is used,otherwise 1 point)
Task 2a: Implement kNN classification algorithm and apply it toclassify iris database. (2 points)
Task 2b: Try different values of k = {1, 2, 3, 4, 5} and printprediction accuracy for validation set. Please select optimal valueof k and justify your selection. (3 points)
Task 3: Implement random forest classification and apply it toclassify iris database. Use any reasonable parameters you want. (3points)
Taks 4: Visualize results of kNN and random forests (4points)
# Load packages as usual
%matplotlib inline
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import math
import random
import matplotlib.cm as cm
import numpy.matlib
from matplotlib.colors import ListedColormap
from sklearn.neighbors import KNeighborsClassifier
from sklearn.ensemble import RandomForestClassifier
# Manipulating figure sizes
import matplotlib
matplotlib.rcParams[‘figure.figsize’] = (15,7)
matplotlib.rc(‘font’, size=15)
matplotlib.rc(‘axes’, titlesize=15)
def __read(fileName, pTrainSamples = 0.6, pValidSamples =0.2):
emp_df = pd.read_csv(fileName)
values = emp_df.values
values =emp_df.values.astype(np.float)
nTrainSamples = int(values.shape[0] *pTrainSamples)
nValidSamples = int(values.shape[0] *pValidSamples)
trainingFeatures =values[0:nTrainSamples, 0:-1]
trainingLabels =values[0:nTrainSamples, -1]
validationFeatures =values[nTrainSamples:nTrainSamples + nValidSamples, 0:-1]
validationLabels =values[nTrainSamples:nTrainSamples + nValidSamples, -1]
testingFeatures =values[nTrainSamples + nValidSamples:, 0:-1]
testingLabels =values[nTrainSamples + nValidSamples:, -1]
returntrainingFeatures.astype(np.float), trainingLabels.astype(np.int),
validationFeatures.astype(np.float),validationLabels.astype(np.int),
testingFeatures.astype(np.float),testingLabels.astype(np.int)
trainingFeatures, trainingLabels, validationFeatures,validationLabels, testingFeatures, testingLabels =__read(‘C:/Users/me/iris_new.csv’)
# Converting data to two dimensions usingPCA
# The conversion to 2D from 4D input is needed tosimplify visualization of the results. Please generate PCA on thetraining, and then convert training and testing data from 4D to2D.
def __PCA(data):
# Extract data dimensions
d, N = data.shape
# First, center the data
center = np.mean(data, 1)
centers = np.matlib.repmat(center, N,1)
data_cent = data -np.transpose(centers)
# Compute covariance and its eigenvaluesfrom centered data
Sigma = np.cov(data_cent)
evals, evecs = np.linalg.eigh(Sigma)
# Return eigenvalues andeigenvectors
return np.flip(evals,0), np.flip(evecs,1)
def __transformData(features, PCevecs):
returnnp.dot(features, PCevecs[:, 0:2])
PCevals, PCevecs = __PCA(trainingFeatures)
trainingFeatures2D = __transformData(trainingFeatures,PCevecs)
validationFeatures2D = __transformData(validationFeatures,PCevecs)
testingFeatures2D = __transformData(testingFeatures,PCevecs)
print(‘shape training = ‘, trainingFeatures2D.shape)
print(‘shape validation = ‘, validationFeatures2D.shape)
print(‘shape testing = ‘, testingFeatures2D.shape)
# —————–
Data (iris_new.csv):
6.012273103359637716e+00,2.921568019750800715e+00,5.144015868688889270e+00,1.970088604348821493e+00,2.000000000000000000e+006.206367020846028204e+00,3.228161981733847608e+00,5.003777773209909796e+00,2.070722282333296693e+00,2.000000000000000000e+005.625798030443882602e+00,3.904787165603675891e+00,1.357799778276990610e+00,4.936702532950165145e-01,0.000000000000000000e+006.808195662123572411e+00,3.178650674586387392e+00,5.100970180963188660e+00,1.889159208617503083e+00,1.000000000000000000e+006.581056019090129716e+00,2.913359774022858506e+00,4.587302757255009134e+00,1.544190829702803081e+00,1.000000000000000000e+004.922743626456581367e+00,3.535691449125819119e+00,2.132672532444197522e+00,4.239278473932364122e-01,0.000000000000000000e+005.802146320330803242e+00,2.946526640063509728e+00,4.959872418259350546e+00,2.021122281946927668e+00,2.000000000000000000e+006.375128323431418664e+00,2.666462047101149313e+00,5.821189071787672198e+00,1.536890095459532590e+00,2.000000000000000000e+007.533823868138515678e+00,3.132375225578859279e+00,6.572352764606229414e+00,1.905853718958894216e+00,2.000000000000000000e+006.829638868899861492e+00,3.331713498791738726e+00,4.813943469329544200e+00,1.586665861661761712e+00,1.000000000000000000e+005.950381506190458580e+00,2.832591299094304738e+00,5.124514747648298396e+00,2.075933042607615686e+00,2.000000000000000000e+006.698675459825690126e+00,3.013641660238998377e+00,5.871907459071210589e+00,2.316142751115663589e+00,2.000000000000000000e+005.404459128494982778e+00,3.457856717182044459e+00,1.539995605002054235e+00,3.332571255378059538e-01,0.000000000000000000e+004.495654321360945893e+00,3.305647532933800203e+00,1.584864478338738003e+00,3.858567310400071726e-01,0.000000000000000000e+005.339075543530506174e+00,3.973787538327554270e+00,1.634324363275604819e+00,5.430132463146704058e-01,0.000000000000000000e+007.601062852092417721e+00,3.002185731093820920e+00,6.343795144436067623e+00,2.139230252694762413e+00,2.000000000000000000e+006.351704787787541662e+00,3.429505864743360721e+00,6.014392461776881582e+00,2.566410057648921050e+00,2.000000000000000000e+006.379738060276616274e+00,2.632994102455576968e+00,5.275529757863798075e+00,2.047544577918903652e+00,2.000000000000000000e+005.741775363214967953e+00,4.513852190532458231e+00,1.690940065951078264e+00,5.135774649003405079e-01,0.000000000000000000e+005.505925961819941428e+00,3.122705091202445438e+00,4.543438336381168341e+00,1.664080033291209793e+00,1.000000000000000000e+007.801400975875588450e+00,3.168540458555272110e+00,6.116126874927260815e+00,2.426846823877313764e+00,2.000000000000000000e+005.357132049992936018e+00,3.983135840533841066e+00,1.662844363455381558e+00,3.625930788722653286e-01,0.000000000000000000e+007.019590355323099828e+00,3.122505046361530923e+00,5.029930044598924788e+00,1.547275107884078960e+00,1.000000000000000000e+006.911969636692916197e+00,3.392803025461516242e+00,6.155437090960832691e+00,2.541774303108266242e+00,2.000000000000000000e+00
Expert Answer
Answer to I need help with task 1, can anyone help me solve it? Task 1: Use PCA from previous assignment to convert data from 4D t…
OR