Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from sklearn import DecisionTreeClassifier
- from sklearn import OrdinalEncoder
- dataset = [[6.3, 2.3, 4.4, 1.3, 2],
- [6.4, 2.8, 5.6, 2.1, 0],
- [5.1, 3.3, 1.7, 0.5, 1],
- [5.1, 3.5, 1.4, 0.2, 1],
- [4.6, 3.1, 1.5, 0.2, 1],
- [5.8, 2.7, 5.1, 1.9, 0],
- [5.5, 3.5, 1.3, 0.2, 1],
- [5.7, 2.6, 3.5, 1.0, 2],
- [5.0, 3.5, 1.3, 0.3, 1],
- [6.3, 2.5, 5.0, 1.9, 0],
- [6.2, 2.2, 4.5, 1.5, 2],
- [5.0, 3.4, 1.6, 0.4, 1],
- [5.7, 4.4, 1.5, 0.4, 1],
- [4.9, 2.4, 3.3, 1.0, 2],
- [4.4, 2.9, 1.4, 0.2, 1],
- [5.5, 2.4, 3.7, 1.0, 2],
- [5.6, 2.5, 3.9, 1.1, 2],
- [5.6, 2.8, 4.9, 2.0, 0],
- [4.8, 3.4, 1.6, 0.2, 1],
- [5.6, 3.0, 4.5, 1.5, 2],
- [6.0, 3.0, 4.8, 1.8, 0],
- [6.3, 3.3, 4.7, 1.6, 2],
- [4.8, 3.0, 1.4, 0.1, 1],
- [7.9, 3.8, 6.4, 2.0, 0],
- [4.9, 3.0, 1.4, 0.2, 1],
- [4.3, 3.0, 1.1, 0.1, 1],
- [6.8, 3.2, 5.9, 2.3, 0],
- [5.6, 2.7, 4.2, 1.3, 2],
- [5.2, 4.1, 1.5, 0.1, 1],
- [6.2, 2.9, 4.3, 1.3, 2],
- [6.5, 2.8, 4.6, 1.5, 2],
- [5.4, 3.9, 1.3, 0.4, 1],
- [5.8, 2.6, 4.0, 1.2, 2],
- [5.4, 3.7, 1.5, 0.2, 1],
- [4.5, 2.3, 1.3, 0.3, 1],
- [6.3, 3.4, 5.6, 2.4, 0],
- [6.2, 3.4, 5.4, 2.3, 0],
- [5.7, 2.5, 5.0, 2.0, 0],
- [5.8, 2.7, 3.9, 1.2, 2],
- [6.4, 2.7, 5.3, 1.9, 0],
- [5.1, 3.8, 1.6, 0.2, 1],
- [6.3, 2.5, 4.9, 1.5, 2],
- [7.7, 2.8, 6.7, 2.0, 0],
- [5.1, 3.5, 1.4, 0.3, 1],
- [6.8, 2.8, 4.8, 1.4, 2],
- [6.1, 3.0, 4.6, 1.4, 2],
- [5.5, 4.2, 1.4, 0.2, 1],
- [5.0, 2.0, 3.5, 1.0, 2],
- [7.7, 3.0, 6.1, 2.3, 0],
- [5.1, 2.5, 3.0, 1.1, 2],
- [5.9, 3.0, 5.1, 1.8, 0],
- [7.2, 3.2, 6.0, 1.8, 0],
- [4.9, 3.1, 1.5, 0.2, 1],
- [5.7, 3.0, 4.2, 1.2, 2],
- [6.1, 2.9, 4.7, 1.4, 2],
- [5.0, 3.2, 1.2, 0.2, 1],
- [4.4, 3.2, 1.3, 0.2, 1],
- [6.7, 3.1, 5.6, 2.4, 0],
- [4.6, 3.6, 1.0, 0.2, 1],
- [5.1, 3.4, 1.5, 0.2, 1],
- [5.2, 2.7, 3.9, 1.4, 2],
- [6.4, 3.1, 5.5, 1.8, 0],
- [7.4, 2.8, 6.1, 1.9, 0],
- [4.9, 3.1, 1.5, 0.1, 1],
- [5.0, 3.5, 1.6, 0.6, 1],
- [6.7, 3.1, 4.7, 1.5, 2],
- [6.4, 3.2, 5.3, 2.3, 0],
- [6.3, 2.7, 4.9, 1.8, 0],
- [5.8, 4.0, 1.2, 0.2, 1],
- [6.9, 3.1, 5.4, 2.1, 0],
- [5.9, 3.2, 4.8, 1.8, 2],
- [6.6, 2.9, 4.6, 1.3, 2],
- [6.1, 2.8, 4.0, 1.3, 2],
- [7.7, 2.6, 6.9, 2.3, 0],
- [5.5, 2.6, 4.4, 1.2, 2],
- [6.3, 2.9, 5.6, 1.8, 0],
- [7.2, 3.0, 5.8, 1.6, 0],
- [6.5, 3.0, 5.8, 2.2, 0],
- [5.4, 3.9, 1.7, 0.4, 1],
- [6.5, 3.2, 5.1, 2.0, 0],
- [5.9, 3.0, 4.2, 1.5, 2],
- [5.1, 3.7, 1.5, 0.4, 1],
- [5.7, 2.8, 4.5, 1.3, 2],
- [5.4, 3.4, 1.5, 0.4, 1],
- [4.6, 3.4, 1.4, 0.3, 1],
- [4.9, 3.6, 1.4, 0.1, 1],
- [6.7, 2.5, 5.8, 1.8, 0],
- [5.0, 3.6, 1.4, 0.2, 1],
- [6.7, 3.3, 5.7, 2.5, 0],
- [4.4, 3.0, 1.3, 0.2, 1],
- [6.0, 2.2, 5.0, 1.5, 0],
- [6.0, 2.2, 4.0, 1.0, 2],
- [5.0, 3.4, 1.5, 0.2, 1],
- [5.7, 2.8, 4.1, 1.3, 2],
- [5.5, 2.4, 3.8, 1.1, 2],
- [5.1, 3.8, 1.9, 0.4, 1],
- [6.9, 3.1, 5.1, 2.3, 0],
- [5.6, 2.9, 3.6, 1.3, 2],
- [6.1, 2.8, 4.7, 1.2, 2],
- [5.5, 2.5, 4.0, 1.3, 2],
- [5.5, 2.3, 4.0, 1.3, 2],
- [6.0, 2.9, 4.5, 1.5, 2],
- [5.1, 3.8, 1.5, 0.3, 1],
- [5.7, 3.8, 1.7, 0.3, 1],
- [6.7, 3.3, 5.7, 2.1, 0],
- [4.8, 3.1, 1.6, 0.2, 1],
- [5.4, 3.0, 4.5, 1.5, 2],
- [6.5, 3.0, 5.2, 2.0, 0],
- [6.8, 3.0, 5.5, 2.1, 0],
- [7.6, 3.0, 6.6, 2.1, 0],
- [5.0, 3.0, 1.6, 0.2, 1],
- [6.7, 3.0, 5.0, 1.7, 2],
- [4.8, 3.4, 1.9, 0.2, 1],
- [5.8, 2.8, 5.1, 2.4, 0],
- [5.0, 2.3, 3.3, 1.0, 2],
- [4.8, 3.0, 1.4, 0.3, 1],
- [5.2, 3.5, 1.5, 0.2, 1],
- [6.1, 2.6, 5.6, 1.4, 0],
- [5.8, 2.7, 4.1, 1.0, 2],
- [6.9, 3.2, 5.7, 2.3, 0],
- [6.4, 2.9, 4.3, 1.3, 2],
- [7.3, 2.9, 6.3, 1.8, 0],
- [6.3, 2.8, 5.1, 1.5, 0],
- [6.2, 2.8, 4.8, 1.8, 0],
- [6.7, 3.1, 4.4, 1.4, 2],
- [6.0, 2.7, 5.1, 1.6, 2],
- [6.5, 3.0, 5.5, 1.8, 0],
- [6.1, 3.0, 4.9, 1.8, 0],
- [5.6, 3.0, 4.1, 1.3, 2],
- [4.7, 3.2, 1.6, 0.2, 1],
- [6.6, 3.0, 4.4, 1.4, 2]]
- if __name__ == '__main__':
- train_set_1 = dataset[:int(0.3 * len(dataset))]
- train_x_1 = [t[:-1] for t in train_set_1]
- # train_x_1 = encoder.transform(train_x_1)
- train_y_1 = [t[-1] for t in train_set_1]
- tree_1 = DecisionTreeClassifier(criterion='entropy')
- tree_1.fit(train_x_1, train_y_1)
- train_set_2 = dataset[int(0.3 * len(dataset)):int(0.6 * len(dataset))]
- train_x_2 = [t[:-1] for t in train_set_2]
- # train_x_2 = encoder.transform(train_x_2)
- train_y_2 = [t[-1] for t in train_set_2]
- tree_2 = DecisionTreeClassifier(criterion='entropy')
- tree_2.fit(train_x_2, train_y_2)
- train_set_3 = dataset[int(0.6 * len(dataset)):]
- train_x_3 = [t[:-1] for t in train_set_3]
- # train_x_3 = encoder.transform(train_x_3)
- train_y_3 = [t[-1] for t in train_set_3]
- tree_3 = DecisionTreeClassifier(criterion='entropy')
- tree_3.fit(train_x_3, train_y_3)
- entry = [float(element) for element in input().split(',')]
- # entry = encoder.transform([entry])
- count_class_0 = 0
- count_class_1 = 0
- count_class_2 = 0
- predicted_class = -1
- if tree_1.predict([entry])[0] == 0:
- count_class_0 += 1
- elif tree_1.predict([entry])[0] == 1:
- count_class_1 += 1
- elif tree_1.predict([entry])[0] == 2:
- count_class_2 += 1
- if tree_2.predict([entry])[0] == 0:
- count_class_0 += 1
- elif tree_2.predict([entry])[0] == 1:
- count_class_1 += 1
- elif tree_2.predict([entry])[0] == 2:
- count_class_2 += 1
- if tree_3.predict([entry])[0] == 0:
- count_class_0 += 1
- elif tree_3.predict([entry])[0] == 1:
- count_class_1 += 1
- elif tree_3.predict([entry])[0] == 2:
- count_class_2 += 1
- if count_class_0 == max(count_class_0, count_class_1, count_class_2):
- predicted_class = 0
- elif count_class_1 == max(count_class_0, count_class_1, count_class_2):
- predicted_class = 1
- else:
- predicted_class = 2
- if (count_class_0 == max and count_class_1 == max) or (count_class_0 == max and count_class_2 == max) or (count_class_1 == max and count_class_2 == max):
- predicted_class = "unknown"
- print("Glasovi: {0: %d, 1: %d, 2: %d} " %(count_class_0, count_class_1, count_class_2))
- print(f"Predvidena klasa: {predicted_class}")
Add Comment
Please, Sign In to add comment