-
Notifications
You must be signed in to change notification settings - Fork 0
/
test3.js
56 lines (51 loc) · 1.99 KB
/
test3.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
//To test out our KNN algorithm to predict whether a patient has diabetes
//Import the Objectify class
const {Objectify} = require('./Objectify');
//Import the KNN class
const {KNN} = require('./KNN');
//Load the data
const dataFile='diabetes.csv';
const data = new Objectify(dataFile);
//To set the features
data.setFeatures(
['Pregnancies','Glucose','BloodPressure','SkinThickness','Insulin','BMI','DiabetesPedigreeFunction','Age','Outcome'],
['float','float','float','float','float','float','float','float','string']
);
//To set the target column
data.setTarget('Outcome','string');//Outcome is the target column
//Load the test data
const testDataFile='test_data.csv';
const testData = new Objectify(testDataFile);
//To set the features
testData.setFeatures(
['Pregnancies','Glucose','BloodPressure','SkinThickness','Insulin','BMI','DiabetesPedigreeFunction','Age'],
['float','float','float','float','float','float','float','float']
);
// //To zscore normalize the data
data.zScoreNormalization('Pregnancies');
data.zScoreNormalization('Glucose');
data.zScoreNormalization('BloodPressure');
data.zScoreNormalization('SkinThickness');
data.zScoreNormalization('Insulin');
data.zScoreNormalization('BMI');
data.zScoreNormalization('DiabetesPedigreeFunction');
data.zScoreNormalization('Age');
// //Also normalize the test data
testData.zScoreNormalization('Pregnancies');
testData.zScoreNormalization('Glucose');
testData.zScoreNormalization('BloodPressure');
testData.zScoreNormalization('SkinThickness');
testData.zScoreNormalization('Insulin');
testData.zScoreNormalization('BMI');
testData.zScoreNormalization('DiabetesPedigreeFunction');
testData.zScoreNormalization('Age');
//To predict the outcome of the test data
let predictions=[]
K=3;
for(let i=0;i<testData.objects.length;i++)
{
const knn = new KNN(data,K,testData.objects[i]);
predictions.push(knn.predictedTarget);
console.log(`testData[${i}]`,testData.objects[i],'Prediction:',knn.predictedTarget)
}
console.log('Predictions:',predictions);