Question: Python Help!!! Why is my code outputting zeros and how do I fix it so that it gives the correct scores? In [9] import pandas
Python Help!!! Why is my code outputting zeros and how do I fix it so that it gives the correct scores?
![fix it so that it gives the correct scores? In [9] import](https://dsd5zvtm8ll6.cloudfront.net/si.experts.images/questions/2024/09/66f325b5425e5_93266f325b4d2b7b.jpg)


In [9] import pandas as pd import seaborn as sns import numpy as np from collections import Counter import matplotlib.pyplot as plt from math import sort from csv import reader In [17] df Out[17]: trainPoints_x1 trainPoints_x2 trainLabel testPoints_x1 testPoints_x2 testlabel 0 1.947005 4.256560 -1 - 1.888977 -4.622611 1 1 0.794931 3.556851 -1 4.233796 3.851680 1 2 -0.264977 2.128280 -1 -0.697926 4.132868 -1 3 -1.555300 0.408163 -1 -3.151837 2.961839 -1 4 -0.95622 -0.991254 -1 4.048810 -4.012877 1 5 0.380184 -2.419825 -1 4.797484 -2.381288 1 6 1.947005 -3.411079 -1 -0.611300 -1.646432 -1 7 3.905530 -4.373178 -1 -3.888808 1.797280 -1 8 3.352535 4.606414 -1 -2.419353 -3.634469 -1 9 -1.555300 2.682216 -1 -0.912802 2.212275 -1 10 -3.099078 3.906706 -1 0.948961 -3.932381 1 1 11 -3.536866 -0.524781 -1 -2.377883 1.537573 -1 12 -3.214286 1.457726 -1 1.028431 -0.058261 1 13 -1.255760 -3.148688 -1 2.112158 2.790517 -1 14 1.716590 1.078717 -1 -2.782533 2.150371 -1 15 1.463134 -0.932045 -1 -3.825823 4.037205 - 1 16 -3.882488 -2.565598 -1 -2.033241 3.909225 -1 17 -2.960829 -4.198251 -1 -1.812217 -1.658369 -1 18 4.228111 0.932945 -1 -0.758332 1.987458 -1 19 -2.661290 -1.720117 -1 0.078583 -3.021902 Distance Functions for L2, L1, and L_infinity In [10] def 12norm(rowl, row2): dist = 0.0 for i in range(len(rowi)-1): dist += (rowi[i] - row2[i])**2 return sqrt(dist) def linorm(rowi, row2): dist = 0.0 for i in range(len(rowl)-1): dist += abs(rowl[i] - row2[i]) return (dist) def 1_inf_norm(rowi, row2): dist = float("-Inf") for i in range(len(rowi)-1): if abs(rowi[i] - row2[i]>>dist: dist = abs(rowi[i] - row2[i]) return (dist) Find Nearest Neighbors In [11] def get_neighbors (train, test_row, count_neighbors, distance_measure): norms = [linorm, 12norm, 1_inf_norm] distances=[] #Iterate through data to find distance between the dataset values for train_row in train: dist = norms[distance_measure](test_row, train_row) distances.append((train_row, dist)) distances.sort(key-lambda tup: tup[1]) neighbors = list) for i in range(count_neighbors): neighbors.append(distances[i][0]) return neighbors Prediction Function Prediction Function In [12] def predict_method (Xtrain, test_row, count_neighbors, distance_measure=1): # get closest count_neighbors =3 neighbors = get_neighbors (Xtrain, test_row, count_neighbors, distance_measure) output_values = [row[-1] for row in neighbors] prediction = max(set(output_values), key=output_values.count) return prediction Normalize Data In [13] def load_cs (filename) : dataset = list) with open(filename, 'r') as file: csv_reader = reader(file) for row in csv_reader: if not row: continue dataset.append(row) return dataset def dataset_minmax(dataset): minmax = list) for i in range(len(dataset[@])-1): col_values = [row[i] for row in dataset] value_min = min(col_values) value_max = max(col_values) minmax.append( [value_min, value_max]) return minmax #Scale data def normalize_dataset(dataset, minmax): for row in dataset: for i in range (len (row)-1): row[i] = (row[1] minmax[i][@]) / (minmax[i][1] - minmax[i][@]) #Dataset filename = "knnData.csv" dataset = load_csv(filename) dataset = [list(map(float, rows)) for rows in dataset[1:]] train_dataset = [rows[1:4] for rows in dataset] minmax = dataset_minmax(train_dataset) normalize_dataset(train_dataset, minmax) dataset.append(row) return dataset def dataset_minmax(dataset): minmax = list) for i in range(len(dataset[@])-1): col_values = [row[i] for row in dataset] value_min = min(col_values) value_max = max(col_values) minmax.append( [value_min, value_max]) return minmax #Scale data def normalize_dataset (dataset, minmax): for row in dataset: for i in range (len (row)-1): row[i] = (row[1] minmax[i][@]) / (minmax[i][1] - minmax[i][@]) #Dataset filename = "knnData.csv" dataset = load_csv(filename) dataset = [list(map(float, rows)) for rows in dataset[1:]] train_dataset = [rows[1:4] for rows in dataset] minmax = dataset_minmax(train_dataset) normalize_dataset (train_dataset, minmax) test_dataset = [rows [4:] for rows in dataset] minmax = dataset_minmax(test_dataset) normalize_dataset (test_dataset, minmax) Accuracy Function [14] norms = ['linorm', '12norm', '1_inf_norm'] for i in range (3): accuracy =@ for rows in test_dataset: prediction = predict_method(train_dataset, rows, 3, i) if prediction == rows [-1]: accuracy+1 print("Accuracy {norms[i]] = {accuracy/len(test_dataset)}") Accuracy linorm = 0.0 Accuracy 12norm = 0.0 Accuracy 1_inf_norm = 0.0
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
