Difference between revisions of "Pm4py: contoh minimal dari csv"

From OnnoWiki
Jump to navigation Jump to search
(Created page with "Berikut adalah '''minimal source code''' untuk menggunakan ['''PM4Py'''](https://pm4py.fit.fraunhofer.de/) — library Python yang digunakan untuk '''Process Mining''', biasan...")
 
 
(5 intermediate revisions by the same user not shown)
Line 5: Line 5:
 
==Contoh Format File Input (`event_log.csv`):==
 
==Contoh Format File Input (`event_log.csv`):==
  
case_id,activity,timestamp
+
case_id,activity,timestamp
1,Start,2024-01-01 08:00:00
+
1,Start,2024-01-01 08:00:00
1,Check,2024-01-01 08:15:00
+
1,Check,2024-01-01 08:15:00
1,Approve,2024-01-01 08:45:00
+
1,Approve,2024-01-01 08:45:00
2,Start,2024-01-01 09:00:00
+
2,Start,2024-01-01 09:00:00
2,Check,2024-01-01 09:10:00
+
2,Check,2024-01-01 09:10:00
2,Reject,2024-01-01 09:30:00
+
2,Reject,2024-01-01 09:30:00
  
 
Kolom wajib:
 
Kolom wajib:
Line 17: Line 17:
 
* `activity`: nama aktivitas
 
* `activity`: nama aktivitas
 
* `timestamp`: waktu aktivitas dilakukan
 
* `timestamp`: waktu aktivitas dilakukan
 +
 +
=='''Persiapan'''==
 +
 +
pip install pandas pm4py graphviz
  
 
=='''Minimal Source Code (PM4Py with CSV)'''==
 
=='''Minimal Source Code (PM4Py with CSV)'''==
Line 25: Line 29:
 
  from pm4py.visualization.petrinet import visualizer as pn_visualizer
 
  from pm4py.visualization.petrinet import visualizer as pn_visualizer
 
  from pm4py.objects.log.util import dataframe_utils
 
  from pm4py.objects.log.util import dataframe_utils
 +
 +
# csv_filename='Insurance_claims_event_log.csv'
 +
# csv_filename='Business Travel Permits.csv'
 +
# csv_filename='Parent-Child Union Output.csv'
 +
# csv_filename='PM4PY_Dummy_Event_Log_100_Cases_pm4py.csv'
 +
# csv_filename='PM4Py_Dummy_Event_Log-congested-business-process.csv'
 
   
 
   
 
  # 1. Load CSV event log
 
  # 1. Load CSV event log
  df = pd.read_csv("event_log.csv")
+
  df = pd.read_csv(csv_filename)
 +
# df = pd.read_csv(csv_filename,sep=';')
 +
# print(df.head())
 
   
 
   
 
  # 2. Format timestamps properly
 
  # 2. Format timestamps properly

Latest revision as of 11:57, 30 March 2025

Berikut adalah minimal source code untuk menggunakan [PM4Py](https://pm4py.fit.fraunhofer.de/) — library Python yang digunakan untuk Process Mining, biasanya dengan input berupa event logs. PM4Py umumnya menggunakan file input dalam format XES, CSV, atau Parquet.

Contoh Minimal: Menggunakan PM4Py dengan File CSV

Contoh Format File Input (`event_log.csv`):

case_id,activity,timestamp
1,Start,2024-01-01 08:00:00
1,Check,2024-01-01 08:15:00
1,Approve,2024-01-01 08:45:00
2,Start,2024-01-01 09:00:00
2,Check,2024-01-01 09:10:00
2,Reject,2024-01-01 09:30:00

Kolom wajib:

  • `case_id`: ID proses unik (setiap satu proses memiliki banyak aktivitas)
  • `activity`: nama aktivitas
  • `timestamp`: waktu aktivitas dilakukan

Persiapan

pip install pandas pm4py graphviz

Minimal Source Code (PM4Py with CSV)

import pandas as pd
from pm4py.objects.conversion.log import converter as log_converter
from pm4py.algo.discovery.alpha import algorithm as alpha_miner
from pm4py.visualization.petrinet import visualizer as pn_visualizer
from pm4py.objects.log.util import dataframe_utils

# csv_filename='Insurance_claims_event_log.csv'
# csv_filename='Business Travel Permits.csv'
# csv_filename='Parent-Child Union Output.csv'
# csv_filename='PM4PY_Dummy_Event_Log_100_Cases_pm4py.csv'
# csv_filename='PM4Py_Dummy_Event_Log-congested-business-process.csv'

# 1. Load CSV event log
df = pd.read_csv(csv_filename)
# df = pd.read_csv(csv_filename,sep=';')
# print(df.head())

# 2. Format timestamps properly
df['timestamp'] = pd.to_datetime(df['timestamp'])

# 3. Ensure column names match PM4Py expectations
df = dataframe_utils.convert_timestamp_columns_in_df(df)

# 4. Convert to event log object
event_log = log_converter.apply(df, parameters={
    log_converter.Variants.TO_EVENT_LOG.value.Parameters.CASE_ID_KEY: 'case_id'
})

# 5. Discover process model using Alpha Miner
net, initial_marking, final_marking = alpha_miner.apply(event_log)

# 6. Visualize Petri Net
gviz = pn_visualizer.apply(net, initial_marking, final_marking)
pn_visualizer.view(gviz)

Cara Install PM4Py

pip install pm4py

> Jika kamu pakai Jupyter atau Google Colab, tambahkan `!pip install pm4py` di atas cell.

Kalau kamu mau pakai format lain seperti XES, tinggal ubah bagian `pd.read_csv(...)` menjadi:

from pm4py.objects.log.importer.xes import factory as xes_importer
log = xes_importer.apply("your_log.xes")

Pranala Menarik