2017-10-12 9 views
0

私は、私がlhsで同時に必要とする複数の属性を指定できるようにR aprioriアルゴリズムを取得しようとしています。R Aprioriのlhsに対する複数の基準

rules <- apriori(Data, parameter=list(supp = 0.0001, conf = 0.001, minlen = 2), appearance = list(lhs = c("DiagnoseTekst=Acuut hartfalen"), default="rhs")) 

上の行は、しかし、私はそれがBOTH DiagnoseTekstでフィルタしたい (私のデータの列が「MedicatieTekst」、「Geslacht」と「DiagnoseTekst」です)だけで、特定のDiagnoseTekstためのLHSをフィルタリングしますAND Geslacht。私が置くとき

rules <- apriori(Data, parameter=list(supp = 0.0001, conf = 0.001, minlen = 2), appearance = list(lhs = c("DiagnoseTekst=Acuut hartfalen", "Geslacht=M"), default="rhs")) 

私はDiagnoseTekstとGeslachtだけでいくつかのルールを得ます。 (この場合、ほとんどの場合、両方の属性が必要です)。 lhs列の複数の条件を指定できるように検索または結果をフィルタリングする方法はありますか?

完全なコードは、明確にする:出力の

Data <- as(data, "transactions") 

str(Data) 
rules <- apriori(Data, parameter=list(supp = 0.0001, conf = 0.001, minlen = 2), appearance = list(lhs = c("DiagnoseTekst=Acuut hartfalen"), default="rhs")) 
top.conf <- sort(rules, decreasing = TRUE, na.last = NA, by = c("confidence","lift")) 
set <- inspect(head(subset(top.conf), 30)) 

例:

> set <- inspect(head(subset(top.conf), 30)) 
    lhs        rhs            support  confidence lift  count 
[1] {DiagnoseTekst=Acuut hartfalen} => {Geslacht=V}          0.066477566 0.525500378 1.1539592 30561 
[2] {DiagnoseTekst=Acuut hartfalen} => {Geslacht=M}          0.060025798 0.474499622 0.8712635 27595 
[3] {DiagnoseTekst=Acuut hartfalen} => {MedicatieTekst=FUROSEMIDE}      0.017917467 0.141636289 2.9290550 8237 
[4] {DiagnoseTekst=Acuut hartfalen} => {MedicatieTekst=METOPROLOL}      0.006279923 0.049642341 0.9877311 2887 
[5] {DiagnoseTekst=Acuut hartfalen} => {MedicatieTekst=PARACETAMOL}      0.005201003 0.041113557 0.6085413 2391 

答えて

0

私が正しくあなたを理解していれば、あなたは指定された2つの項目がLHSで発生していることを確認しますルールの外観は、どのアイテムがルール内に出現するかを制限することができますが、それらのすべてが存在する必要はありません。ただし、この問題を解決するにはsubsetでフィルタリングを使用できます。次のコードは、%ain%を使用して、ルールのLHS内の項目「年齢=シニア」と「性別=男性」を持つすべてのルールを検索します。

> library("arules") 
> data(Adult) 

> rules <- apriori(Adult) 
> rules 
set of 6137 rules 

> rules <- subset(rules, lhs %ain% c("age=Senior","sex=Male")) 
> rules 
set of 167 rules 

> inspect(head(rules, by = "lift", n = 3)) 
    lhs         rhs     support confidence lift count 
[1] {age=Senior,                    
    marital-status=Married-civ-spouse,               
    sex=Male,                     
    capital-gain=None,                   
    native-country=United-States}  => {relationship=Husband} 0.12   1 2.5 5687 
[2] {age=Senior,                    
    marital-status=Married-civ-spouse,               
    race=White,                    
    sex=Male,                     
    capital-gain=None,                   
    native-country=United-States}  => {relationship=Husband} 0.11   1 2.5 5293 
[3] {age=Senior,                    
    marital-status=Married-civ-spouse,               
    sex=Male,                     
    capital-gain=None,                   
    capital-loss=None,                   
    native-country=United-States}  => {relationship=Husband} 0.11   1 2.5 5238 
(すべてで ? "%ain%"を参照してください)