Skip to content

Commit c047009

Browse files
author
Jeel Gajera
committed
changes names
1 parent 71776e7 commit c047009

File tree

2 files changed

+20
-14
lines changed

2 files changed

+20
-14
lines changed

Diff for: DIRECTORY.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -541,7 +541,7 @@
541541
* [Dimensionality Reduction](machine_learning/dimensionality_reduction.py)
542542
* Forecasting
543543
* [Run](machine_learning/forecasting/run.py)
544-
* [FP Growth Algorithm](machine_learning/fp_growth.py)
544+
* [Frequent Pattern Growth Algorithm](machine_learning/frequent_pattern_growth.py)
545545
* [Gradient Descent](machine_learning/gradient_descent.py)
546546
* [K Means Clust](machine_learning/k_means_clust.py)
547547
* [K Nearest Neighbours](machine_learning/k_nearest_neighbours.py)

Diff for: machine_learning/fp_growth.py renamed to machine_learning/frequent_pattern_growth.py

+19-13
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,10 @@
1010
"""
1111

1212
from typing import Optional
13+
from dataclasses import dataclass, field
1314

1415

16+
@dataclass
1517
class TreeNode:
1618
"""
1719
Initialize a TreeNode.
@@ -30,14 +32,19 @@ class TreeNode:
3032
2
3133
"""
3234

33-
def __init__(
34-
self, name_value: str, num_occur: int, parent_node: Optional["TreeNode"] = None
35-
) -> None:
36-
self.name = name_value
37-
self.count = num_occur
38-
self.node_link = None # Initialize node_link to None
39-
self.parent = parent_node
40-
self.children: dict[str, TreeNode] = {}
35+
# def __init__(
36+
# self, name_value: str, num_occur: int, parent_node: Optional["TreeNode"] = None
37+
# ) -> None:
38+
# self.name = name_value
39+
# self.count = num_occur
40+
# self.node_link = TreeNode | None # Initialize node_link to None
41+
# self.parent = parent_node
42+
# self.children: dict[str, TreeNode] = {}
43+
name: str
44+
count: int
45+
node_link: Optional['TreeNode'] = None # Initialize node_link to None
46+
parent: Optional["TreeNode"] = None
47+
children: dict[str, "TreeNode"] = field(default_factory=dict)
4148

4249
def inc(self, num_occur: int) -> None:
4350
self.count += num_occur
@@ -50,7 +57,7 @@ def disp(self, ind: int = 1) -> None:
5057

5158
def create_tree(data_set: list, min_sup: int = 1) -> tuple[TreeNode, dict]:
5259
"""
53-
Create FP tree
60+
Create Frequent Pattern tree
5461
5562
Args:
5663
data_set (list): A list of transactions, where each transaction
@@ -193,10 +200,7 @@ def update_header(node_to_test: TreeNode, target_node: TreeNode) -> TreeNode:
193200
while node_to_test.node_link is not None:
194201
node_to_test = node_to_test.node_link
195202
if node_to_test.node_link is None:
196-
node_to_test.node_link = TreeNode(
197-
target_node.name, target_node.count, node_to_test
198-
)
199-
# Return the updated node
203+
node_to_test.node_link = target_node
200204
return node_to_test
201205

202206

@@ -298,6 +302,7 @@ def mine_tree(
298302
>>> all(expected in frequent_itemsets for expected in expe_itm)
299303
True
300304
"""
305+
new_head: Optional['TreeNode'] = None
301306
sorted_items = sorted(header_table.items(), key=lambda item_info: item_info[1][0])
302307
big_l = [item[0] for item in sorted_items]
303308
for base_pat in big_l:
@@ -311,6 +316,7 @@ def mine_tree(
311316
header_table[base_pat][1] = update_header(
312317
header_table[base_pat][1], my_cond_tree
313318
)
319+
my_head = new_head
314320
mine_tree(my_cond_tree, my_head, min_sup, new_freq_set, freq_item_list)
315321

316322

0 commit comments

Comments
 (0)