Exécutez Aprili depuis Python sur Orange

introduction

--Lorsque je cherchais une implémentation Python d'Apriori, il semble qu'elle soit implémentée dans Orange, donc un mémo quand je l'ai essayé

Mise en garde

--Il existe une nouvelle version d'Orange 3 et une ancienne version d'Orange 2 (Orange 2.7.8 du 11/09/2016)

--Alors installez Orange 2

Installation

Voici un exemple d'installation sur Ubuntu

Téléchargez le fichier source depuis Site officiel et extrayez-le

Construisez et installez comme décrit dans Python Software Foundation

python setup.py build
python setup.py install

Si vous n'avez pas besoin de scipy, installez-le

Apriori

J'ai fait référence à Association Analysis

Les données sont préparées comme suit. L'extension doit être un panier

$ more hayes-roth-train1-1.basket
a2,b2,c3,d4,D3
a3,b2,c1,d3,D1
<snip>

Courir

>>> import Orange
>>> data = Orange.data.Table('hayes-roth-train1-1.basket')
>>> rules = Orange.associate.AssociationRulesSparseInducer(data, support=0.03, confidence=0.2, classification_rules=1, store_examples=True)
>>> print "%4s %4s %4s  %4s" % ("Supp", "Conf", "Lift", "Rule")
Supp Conf Lift  Rule
>>> for r in rules[:5]:
...     print "%4.1f %4.1f %4.1f   %s" % (r.support, r.confidence, r.lift, r)
...
 0.0  0.2  3.6   b4 -> c4
 0.0  0.3  3.6   c4 -> b4
 0.0  0.2  7.2   c4 -> b4 a1
 0.0  0.5  6.0   c4 a1 -> b4
 0.0  0.2  7.2   c4 -> b4 a1 D3

Extraire la règle

Consultez le document suivant et essayez-le

Association rules and frequent itemsets Orange.data.Instance Orange.data.Value

>>> len(rules)
400
>>> rules[383]
b2 a2 -> c1
>>> rules[383].left
[], {"b2":1.000, "a2":1.000}
>>> rules[383].left.get_metas(str).keys()
['a2', 'b2']
>>> rules[383].right.get_metas(str).keys()
['c1']
>>> rules[383].confidence
0.7333333492279053
>>> rules[383].support
0.07692307978868484
>>> rules[383].n_applies_both
11.0

La cible correspond-elle à la règle?

>>> rule = rules[383]
>>> for d in data:
...     if rule.appliesBoth(d):
...         print d
...
[], {"a2":1.000, "b2":1.000, "c1":1.000, "d3":1.000, "D1":1.000}
[], {"a2":1.000, "b2":1.000, "c1":1.000, "d2":1.000, "D2":1.000}
[], {"a2":1.000, "b2":1.000, "c1":1.000, "d2":1.000, "D2":1.000}
[], {"a2":1.000, "b2":1.000, "c1":1.000, "d2":1.000, "D2":1.000}
[], {"a2":1.000, "b2":1.000, "c1":1.000, "d3":1.000, "D2":1.000}
[], {"a2":1.000, "b2":1.000, "c1":1.000, "d4":1.000, "D3":1.000}
[], {"a2":1.000, "b2":1.000, "c1":1.000, "d1":1.000, "D1":1.000}
[], {"a2":1.000, "b2":1.000, "c1":1.000, "d3":1.000, "D1":1.000}
[], {"a2":1.000, "b2":1.000, "c1":1.000, "d1":1.000, "D1":1.000}
[], {"a2":1.000, "b2":1.000, "c1":1.000, "d2":1.000, "D2":1.000}
[], {"a2":1.000, "b2":1.000, "c1":1.000, "d1":1.000, "D1":1.000}

>>> rule.examples
Orange.data.Table 'table'
>>> rule.match_both
<2, 3, 5, 40, 87, 105, 111, 116, 118, 135, 137>

en conclusion

Recommended Posts

Exécutez Aprili depuis Python sur Orange
Exécutez Python avec VBA
Exécutez prepDE.py avec python3
Exécutez Python à partir d'Excel
Exécutez iperf avec python
Exécutez python avec PyCharm (Windows)
Exécutez Python avec CloudFlash (arm926ej-s)
Exécutez le script illustrator à partir de python
Exécuter Label avec tkinter [Python]
Avec skype, notifiez avec skype de python!
Exécutez Python à partir d'Excel VBA avec xlwings et un supplément de tutoriel
python + sélénium + safari-run iphone safari de mac avec webdriver
Appeler C depuis Python avec DragonFFI
Installez Python à partir des sources avec Ansible
Exécutez Rotrics DexArm avec l'API Python
Exécutez mruby avec Python ou Blender
Exécutez XGBoost avec Cloud Dataflow (Python)
Exécutez python3 Django1.9 avec mod_wsgi (déployer)
Détection d'erreur Python exécutée à partir de Powershell
Exécutez des scripts Python de manière synchrone à partir de C #
Appelez python de nim avec Nimpy
Jusqu'à ce que Python fonctionne sur Apache
Exécutez Ansible à partir de Python à l'aide de l'API
Charger fbx depuis python avec cinema4d
Exécutez le script Python à partir de Cisco Memorandum_EEM
Collecter des informations sur Twitter avec Python (API Twitter)
Exécutez Cloud Dataflow (Python) depuis AppEngine
Recevoir des données textuelles de mysql avec python
Obtenir le code HTML de l'élément avec du sélénium Python
[Note] Obtenir des données de PostgreSQL avec Python
Exécutez le servo avec Python sur ESP32 (Windows)
Lire un fichier audio à partir de Python avec interruption
Créez wordcloud à partir de votre tweet avec python3
Exécutez Keras avec le backend CNTK à partir de CentOS
Efficacité commerciale à partir de zéro avec Python
Manipulation d'Azure CosmosDB à partir de Python Part.2
Acquisition d'images depuis une caméra avec Python + OpenCV
Premiers pas avec Dynamo de Python boto
Essayez d'appeler Python depuis Ruby avec une économie
Scraping depuis un site authentifié avec python
Exécutez une application Web Python avec Docker
Utilisation des fonctions C ++ de python avec pybind11
FizzBuzz en Python3
Grattage avec Python
Statistiques avec python
Grattage avec Python
Twilio avec Python
Intégrer avec Python
Jouez avec 2016-Python
sql à sql
AES256 avec python
python commence par ()
avec syntaxe (Python)
MeCab de Python
Bingo avec python
Zundokokiyoshi avec python
Excel avec Python
Micro-ordinateur avec Python
Cast avec python