abc_analysis
- hana_ml.algorithms.pal.abc_analysis.abc_analysis(data, key=None, percent_A=None, percent_B=None, percent_C=None, revenue=None, thread_ratio=None)
ABC analysis is used to classify objects (such as customers, employees, or products) based on a particular measure (such as revenue or profit). ABC analysis suggests that inventories of an organization are not of equal value, thus can be grouped into three categories (A, B, and C) by their estimated importance. 'A' items are very important for an organization. 'B' items are of medium importance, that is, less important than 'A' items and more important than 'C' items. 'C' items are of the least importance. An example of ABC classification is as follows:
'A' items - 20% of the items (customers) accounts for 70% of the revenue.
'B' items - 30% of the items (customers) accounts for 20% of the revenue.
'C' items - 50% of the items (customers) accounts for 10% of the revenue.
- Parameters:
- dataDataFrame
The input data.
- keystr, optional
Name of the ID column.
Defaults to the index column of
data
(i.e. data.index) if it is set.- revenuestr, optional
Name of column for revenue (or profits).
If not given, the input DataFrame must only have two columns.
Defaults to the first non-key column.
- percent_Afloat
The proportion allocated to A class.
- percent_Bfloat
The proportion allocated to B class.
- percent_Cfloat
The proportion allocated to C class.
- thread_ratiofloat, optional
Adjusts the percentage of available threads to use, from 0 to 1. A value of 0 indicates the use of a single thread, while 1 implies the use of all possible current threads. Values outside the range will be ignored and this function heuristically determines the number of threads to use.
Defaults to 0.
- Returns:
- DataFrame
The result after partitioning the data into three categories.
Examples
Input DataFrame:
>>> df.collect() ITEM VALUE 0 item1 15.4 1 item2 200.4 ... 8 item9 96.15 9 item10 9.4
Perform abc_analysis():
>>> res = abc_analysis(data=df, key='ITEM', thread_ratio=0.3, percent_A=0.7, percent_B=0.2, percent_C=0.1) >>> res.collect() ABC_CLASS ITEM 0 A item3 1 A item2 ... 8 C item8 9 C item10