-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathNeuralNetwork.py
48 lines (36 loc) · 1.24 KB
/
NeuralNetwork.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
import numpy as np
import configparser
from sklearn import datasets, svm
def readFromIni() -> list:
config = configparser.RawConfigParser()
config.read('file.ini')
iClusters = config.getint('cluster_points', 'clusters_number')
vPoints = [[] for _ in range(iClusters)]
for i in range(iClusters):
temp = config.get('cluster_points', str(i))
assert isinstance(temp, str)
temp = temp.replace('(', '').replace(')', '').split('#')
temp = [x.split(',') for x in temp]
vPoints[i] = [(float(x[0]), float(x[1])) for x in temp]
return vPoints
def learnNeuralNetwork(vLearning) -> svm.SVC:
clf = svm.SVC(kernel='linear')
X = []
y = []
for iCluster in range(len(vLearning)):
for point in vLearning[iCluster]:
X.append(point)
y.append(iCluster)
clf.fit(X, y)
return clf
def askNeuralNetwork(clf, vAsking):
for point in vAsking:
print(clf.predict(point))
if __name__ == "__main__":
vPoints = readFromIni()
vLearning, vAsking = [], []
for vClusterPoints in vPoints:
vLearning.append(vClusterPoints[:-5])
vAsking.append(vClusterPoints[-5:])
clf = learnNeuralNetwork(vLearning)
askNeuralNetwork(clf, vAsking)