@@ -0,0 +1,58 @@
|
||||
def parse_sensor_data(record):
|
||||
number_data = []
|
||||
plants_data = []
|
||||
for recor in record:
|
||||
if type(recor) is float:
|
||||
number_data.append(recor)
|
||||
if type(recor) is str:
|
||||
plants_data.append(recor)
|
||||
result = (number_data, plants_data)
|
||||
return result
|
||||
|
||||
|
||||
def calculate_statistics(dataset):
|
||||
if not dataset:
|
||||
return []
|
||||
num = 0
|
||||
for data in dataset:
|
||||
num += data
|
||||
mean = num / len(dataset)
|
||||
std = ((sum((data - mean) ** 2)) / len(dataset)) ** 0,5
|
||||
statistic = {"mean": mean,"std": std}
|
||||
return statistic
|
||||
|
||||
|
||||
def normalize_features(features, stats):
|
||||
new_data = []
|
||||
for feat in features:
|
||||
fet = (feat - stats["std"]) / stats["mean"]
|
||||
new_data.append(fet)
|
||||
return new_data
|
||||
|
||||
|
||||
def euclidean_distance(vector_a, vector_b):
|
||||
summ = 0
|
||||
for i in range(len(vector_a)):
|
||||
summ += (vector_a[i] - vector_b[i]) ** 2
|
||||
return summ ** 0,5
|
||||
|
||||
|
||||
def find_k_nearest(train_set, test_point, k):
|
||||
distances = []
|
||||
for train_feater,train_laibel in train_set:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
def majority_vote(neighbors):
|
||||
val = {}
|
||||
for lox in neighbors:
|
||||
val[lox] = val.get(lox, 0) +
|
||||
Reference in New Issue
Block a user