Операция интеллектуального анализа данных с использованием SQL-запрос (нечеткий априорный алгоритм) - как его кодировать с помощью SQL?

Итак, я иметь эту таблицу:

Trans_ID    Name    Fuzzy_Value    Total_Item  
100          I1  0.33333333        3  
100          I2  0.33333333        3  
100          I5  0.33333333        3  
200          I2  0.5               2  
200          I5  0.5               2  
300          I2  0.5               2  
300          I3  0.5               2  
400          I1  0.33333333        3  
400          I2  0.33333333        3  
400          I4  0.33333333        3  
500          I1  0.5               2  
500          I3  0.5               2  
600          I2  0.5               2  
600          I3  0.5               2  
700          I1  0.5               2  
700          I3  0.5               2  
800          I1  0.25              4  
800          I2  0.25              4  
800          I3  0.25              4  
800          I5  0.25              4  
900          I1  0.33333333        3  
900          I2  0.33333333        3  
900          I3  0.33333333        3  
1000         I1  0.2               5  
1000         I2  0.2               5  
1000         I4  0.2               5  
1000         I6  0.2               5  
1000         I8  0.2               5  

и 2 пустые таблицы:

Table  ITEMSET

"ITEM_SET" "Support" 



Table Confidence

"ANTECEDENT" "CONSEQUENT" 

Мне нужно найти значение FUZZY для каждого элемента, который встречается в каждой транзакции:

I1 = Sum of (Fuzzy_Value from item I1 in trans 100 until 1000 which is trans: 100,400,500,700,800,900,1000)/Total Trans  
-> (.33333333+0.33333333+0.5+0.5+0.25+0.33333333+0.2)/10 = 0.244999999


I2 = Sum of (Fuzzy_Value from item I2 in trans 100 - 1000 which is trans:100,200,300,400,600,800,900,1000)/Total Trans  
-> (0.33333333+0.5+0.5+0.33333333+0.5+0.25+0.33333333)/10 = 0.274999999


I3 -> 0.258333333  
I4 -> 0.103333333  
I5 -> 0.058333333    
I6 -> 0.02    
I8 -> 0.02    

Для EX: я использую минимальную поддержку 10% -> 0,1
Мне нужно удалить I5, I6, I8, так как его значение <0,1 => шаг сокращения

, затем сохранить

I1=0.244999999, I2=0.274999999, I3=0.258333333,I4=0.103333333  on new table 'ITEMSET' 

2 КОМБИНАЦИЯ

ПРИМЕЧАНИЕ: это основной 1-й шаг после этого, скорее всего, потребуется использовать повтор или рекурсивно, так как процесс будет продолжаться до тех пор, пока не станет невозможной другая комбинация элементов
, тогда из того, что осталось, мне нужно найти набор элементов K + 1 (который представляет собой набор элементов 2 комбинаций) => шаг соединения

{I1,I2} =Sum of (Fuzzy_Value from item I1 + I2 in trans 100 - 1000 which is trans:100,400,800,900,1000)/Total Trans 
->(0.666666667+0.666666667+0.5+0.666666667+0.4)/9 = 0.29

*do the same for the rest*
{I1,I3} =(1+1+0.5+0.666666667)/9 = 0.316666667
{I1,I4} =(0.666666667+0.4)/9 = 0.106666667
{I2,I3} =(1+1+0.5+0.666666667)/9 = 0.316666667
{I2,I4} =(1+0.666666667+0.4)/9 =0.206666667
{I3,I4} =0  

Затем Выполните еще один шаг сокращения , удалив значение менее 0,1, которое является {I3, I4}

Store {I1,I2} = 0.29, {I1,I3} = 0.316666667, {I1,I4} =0.106666667, {I2,I3} = 0.316666667, {I2,I4} = 0.206666667  AT "ITEMSET" TABLE 

3 КОМБИНАЦИЯ

После этого выполните еще один ШАГ СОЕДИНЕНИЯ , объединяющий набор элементов, прошедший сокращение

{I1,I2,I3} = Sum of (Fuzzy_Value from item I1 + I2 +I3 in trans 100 - 1000 which is trans:800,900)/Total Trans  
-> 0.75+1 = 0.175  
**Same for the rest**  
{I1,I2,I4} = 1+0.6 = 0.16  
{I2,I3,I4} = 0  

Выполните еще один шаг сокращения , удалив значение менее 0,1, которое является {I1, I3,I4}

Store {I1,I2,I3} = 0.176 AND {I1,I2,I4} = 0,16 AT "ITEMSET" TABLE  

4 КОМБИНАЦИЯ

Объединить набор элементов, прошедших отсечение K + 4 (комбинация 4)

{I1,I2,I3,I4} = 0

**, поскольку после остановки процесса не осталось транзакций, содержащих этот элемент

, поскольку на этом этапе не осталось возможных комбинаций


точка в базе данных ITEMSET:

ITEM_SET           Support  
{I1}               0.244999999
{I2}               0.274999999     
{I3}               0.258333333    
{I4}               0.103333333  
{I1,I2}            0.29    
{I1,I3}            0.316666667  
{I1,I4}            0.106666667  
{I2,I3}            0.316666667  
{I2,I4}            0.206666667  
{I1,I2,I3}         0.176  
{I1,I2,I4}         0,16  

как мне закодировать это в sql? большое спасибо

* примечание: при необходимости вы можете добавить еще одну таблицу

9
задан Rico 4 December 2010 в 02:52
поделиться