Skip to content

Commit 16a1831

Browse files
committed
Adding requested changes
1 parent 47367c1 commit 16a1831

File tree

1 file changed

+6
-17
lines changed

1 file changed

+6
-17
lines changed

Diff for: machine_learning/linear_discriminant_analysis.py

+6-17
Original file line numberDiff line numberDiff line change
@@ -55,12 +55,7 @@ def Normal_gen(mean: float, std_dev: float, instance_count: int) -> list:
5555
:return: a list containing generated values based-on given mean, std_dev and instance_count
5656
"""
5757
generated_instances = [] # An empty list to store generated instances
58-
# for loop iterates over instance_count
59-
for r in range(instance_count):
60-
# appending corresponding gaussian distribution to 'generated_instances' list
61-
generated_instances.append(gauss(mean, std_dev))
62-
63-
return generated_instances
58+
return [gauss(mean, std_dev) for _ in range(instance_count)]
6459

6560

6661
# Making corresponding Y flags to detecting classes
@@ -73,11 +68,7 @@ def Y_gen(class_count: int, instance_count: list) -> list:
7368
ys = [] # An empty list to store generated corresponding Ys
7469
# for loop iterates over class_count
7570
for k in range(class_count):
76-
# for loop iterates over related number of instances of each class
77-
for p in range(instance_count[k]):
78-
# appending corresponding Ys to 'ys' list
79-
ys.append(k)
80-
return ys
71+
return [k for _ in range(instance_count[k]) for k in range(class_count)]
8172

8273

8374
# Calculating the class means
@@ -88,21 +79,19 @@ def mean_calc(instance_count: int, items: list) -> float:
8879
:return: calculated actual mean of considered class
8980
"""
9081
# the sum of all items divided by number of instances
91-
class_mean = sum(items) / instance_count
92-
return class_mean
82+
return sum(items) / instance_count
9383

9484

9585
# Calculating the class probabilities
96-
def prob_calc(instance_count: int, total_count: int) -> float:
86+
def calculate_probabilities(instance_count: int, total_count: int) -> float:
9787
""" This function calculates the probability that a given instance
9888
will belong to which class
9989
:param instance_count: number of instances in class
10090
:param total_count: the number of all instances
10191
:return: value of probability for considered class
10292
"""
10393
# number of instances in specific class divided by number of all instances
104-
probability = instance_count / total_count
105-
return probability
94+
return instance_count / total_count
10695

10796

10897
# Calculating the variance
@@ -308,7 +297,7 @@ def main():
308297
# # for loop iterates over number of classes(data groupings)
309298
for l in range(n_classes):
310299
# appending return values of 'prob_calc' function to 'probabilities' list
311-
probabilities.append(prob_calc(counts[l], sum(counts)))
300+
probabilities.append(calculate_probabilities(counts[l], sum(counts)))
312301
# for loop iterates over number of elements in 'probabilities' list and print out them in separated line
313302
for e in range(len(probabilities)):
314303
print("Probability of class_{} is: {}".format(e + 1, probabilities[e]))

0 commit comments

Comments
 (0)