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
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
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
|