-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathIrisCaseStudy3.py
68 lines (47 loc) · 1.7 KB
/
IrisCaseStudy3.py
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
57
58
59
60
61
62
63
64
65
66
67
68
from sklearn.datasets import load_iris
from sklearn.metrics import accuracy_score
from sklearn.model_selection import train_test_split
from scipy.spatial import distance
def euc(a,b):
return distance.euclidean(a,b)
class MarvellousKNeighborsClassifier:
def fit(self,trainingdata,trainingtarget):
self.trainingData = trainingdata
self.trainiTargetTarget = trainingtarget
def closest(self,row):
minimumdistance = euc(row,self.trainingData[0])
minimumindex = 0
for i in range(1,len(self.trainingData)):
Distance = euc(row,self.trainingData[i])
if Distance < minimumdistance:
minimumdistance=Distance
minimumindex = i
return self.trainingData[minimumindex]
def predict(self,TestData):
prediction = []
for value in TestData:
result = self.closest(value)
prediction.append(result)
return prediction
def MarvellousML():
Dataset = load_iris() # 1 Load the data
Data = Dataset.data
Target = Dataset.target
# step 2. manipulating the data
Data_train, Data_test, Target_train, Target_test = train_test_split(Data, Target, test_size = 0.5)
# print(Data_train)
# print(Target_train)
Classifier = MarvellousKNeighborsClassifier()
# step3. Build the model
Classifier.fit(Data_train, Target_train)
# step 4 .test the model
Predictions = Classifier.predict(Data_test)
#
Accuracy = accuracy_score(Target_test, Predictions)
# step 5 . Improve - missing
return Accuracy
def main():
Ret = MarvellousML()
print("Acuracy of Iris dataset with KNN is ",Ret * 100)
if __name__ == "__main__":
main()