A python implementation on the FWPODS algorithm.
Project description
FWPODS PY
A python implementation library based on the paper named "A sliding window-based approach for mining frequent weighted patterns over data streams
A
H. Bui, T. -A. Nguyen-Hoang, B. Vo, H. Nguyen and T. Le, "A Sliding Window-Based Approach for Mining Frequent Weighted Patterns Over Data Streams," in IEEE Access, vol. 9, pp. 56318-56329, 2021, doi: 10.1109/ACCESS.2021.3070132. keywords: {Data mining;Data models;Databases;Urban areas;Itemsets;Mathematical model;Information technology;Pattern mining;data streams;frequent weighted patterns;sliding window model},
Example usage
Using the existing window manager to add a transaction to the window and start the mining process
from random import randint
from collections import OrderedDict
from fwpods_py.classes import *
FWPs = []
runtimes = []
item_weights = {}
window_size = 45000
min_ws = 0.8
panel_size = 1
twm = weights_manager()
transactions = OrderedDict()
count = 0
# This sample dataset can be found on the SPMF website at https://www.philippe-fournier-viger.com/spmf/index.php?link=datasets.php
ds_name = "retail"
with open(f"./datasets/{ds_name}.txt", "r") as f:
t_id = "1"
for line in f:
if count == window_size + 50:
break
transactions[t_id] = line.strip().split()
for item in line.strip().split():
if item in item_weights:
continue
else:
item_weights[item] = randint(1, 10)
t_id = str(int(t_id) + 1)
count += 1
win_man = window_manager(None, window_size, panel_size, min_ws)
win_man.new_weights(item_weights)
# Simulate a data stream
for t_id, t_items in transactions.items():
win_man.add_transaction(t_id, t_items)
res_location = f"./results/{ds_name}/"
with open(f"{ds_name}_runtime_total.txt", "w") as f:
for ttr in win_man.total_runtime:
f.write(f"{ttr.total_seconds()}\n")
with open(f"{ds_name}_runtime_algo.txt", "w") as f:
for art in win_man.algo_runtime:
f.write(f"{art.total_seconds()}\n")
with open(f"{ds_name}_runtime_tree.txt", "w") as f:
for tr in win_man.tree_build_time:
f.write(f"{tr.total_seconds()}\n")
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
fwpods_py-0.0.3.tar.gz
(21.0 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
fwpods_py-0.0.3-py3-none-any.whl
(21.2 kB
view details)
File details
Details for the file fwpods_py-0.0.3.tar.gz.
File metadata
- Download URL: fwpods_py-0.0.3.tar.gz
- Upload date:
- Size: 21.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eb12875d02414057b8bfe9d4d6ab21439672803266f18e7570f83413ae3656ac
|
|
| MD5 |
23bf7ad46b405eb5a7dbca7ea4149b2f
|
|
| BLAKE2b-256 |
d914d320a0b721409e2a88a8779aa6aec63cf50f37d995102c5db474ad257264
|
File details
Details for the file fwpods_py-0.0.3-py3-none-any.whl.
File metadata
- Download URL: fwpods_py-0.0.3-py3-none-any.whl
- Upload date:
- Size: 21.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e6d1337806176daa1e815a41cbbf37f0b1348754ceb41076627b51e15c350df5
|
|
| MD5 |
7558c7657ae03e383e012d23a4e5708d
|
|
| BLAKE2b-256 |
c2cac3629f11b2c9d2dfd725748bd57a3c658b6613d3ffd081936e5a702e65e3
|