Difference between revisions of "Orange: Python Script"
Onnowpurbo (talk | contribs) |
Onnowpurbo (talk | contribs) (→Contoh) |
||
(5 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
Sumber: https://docs.biolab.si//3/visual-programming/widgets/data/pythonscript.html | Sumber: https://docs.biolab.si//3/visual-programming/widgets/data/pythonscript.html | ||
− | Widget Python Script memperluas fungsi melalui script Python. | + | Widget Python Script memperluas fungsi Orange melalui script Python. |
==Input== | ==Input== | ||
Line 31: | Line 31: | ||
'''Catatan:''' Anda tidak boleh memodifikasi objek input di tempat. | '''Catatan:''' Anda tidak boleh memodifikasi objek input di tempat. | ||
− | [[File:PythonScript-stamped.png|center| | + | [[File:PythonScript-stamped.png|center|600px|thumb]] |
* Info box contains names of basic operators for Orange Python script. | * Info box contains names of basic operators for Orange Python script. | ||
Line 43: | Line 43: | ||
Widget Python Script dimaksudkan untuk memperluas fungsionalitas bagi pengguna tingkat lanjut. Class dari library Orange dijelaskan dalam dokumentasi. Untuk menemukan informasi lebih lanjut tentang Table class lihat Table, Domain, and Variable documentation. | Widget Python Script dimaksudkan untuk memperluas fungsionalitas bagi pengguna tingkat lanjut. Class dari library Orange dijelaskan dalam dokumentasi. Untuk menemukan informasi lebih lanjut tentang Table class lihat Table, Domain, and Variable documentation. | ||
− | + | Dalam contoh penggunaan widget Python Script berikut, kita bisa melakukan pemfilteran batch berdasarkan atribut. Kita menggunakan zoo.tab sebagai contoh dan kita memfilter semua atribut yang memiliki lebih dari 5 nilai diskrit. Dalam kasus kita hanya menghapus atribut 'leg', tetapi bayangkan dimana kita bisa memiliki contoh lain dengan banyak atribut seperti itu. | |
from Orange.data import Domain, Table | from Orange.data import Domain, Table | ||
Line 51: | Line 51: | ||
out_data = Table(domain, in_data) | out_data = Table(domain, in_data) | ||
− | [[File:PythonScript-filtering.png|center| | + | [[File:PythonScript-filtering.png|center|600px|thumb]] |
− | Contoh berikut ini menunjukkan bagaimana membulatkan semua nilai dalam beberapa baris kode. Kali ini kita menggunakan wine.tab dan bulatkan semua nilai menjadi bilangan bulat. | + | Contoh penggunaan widget Python Script berikut ini menunjukkan bagaimana membulatkan semua nilai dalam beberapa baris kode. Kali ini kita menggunakan wine.tab dan bulatkan semua nilai menjadi bilangan bulat. |
import numpy as np | import numpy as np | ||
Line 61: | Line 61: | ||
np.round(out_data.X, 0, out_data.X) | np.round(out_data.X, 0, out_data.X) | ||
− | [[File:PythonScript-round.png|center| | + | [[File:PythonScript-round.png|center|600px|thumb]] |
− | Contoh berikut ini | + | Contoh penggunaan widget Python Script berikut ini memasukan noise Gaussian ke data. Sekali lagi kita membuat salinan data input, lalu berjalan melalui semua nilai dengan loop ganda untuk dan menambahkan noise random. |
import random | import random | ||
Line 73: | Line 73: | ||
out_data = new_data | out_data = new_data | ||
− | [[File:PythonScript-gauss.png|center| | + | [[File:PythonScript-gauss.png|center|600px|thumb]] |
Line 86: | Line 86: | ||
Kita dapat menambahkan banyak langkah preprocessing lainnya untuk lebih menyesuaikan output. Output dari widget Python Script dapat digunakan dengan widget apa pun yang menerima jenis output yang dihasilkan script. Dalam hal ini, koneksi berwarna hijau, yang menandakan jenis input yang tepat untuk widget Word Cloud. | Kita dapat menambahkan banyak langkah preprocessing lainnya untuk lebih menyesuaikan output. Output dari widget Python Script dapat digunakan dengan widget apa pun yang menerima jenis output yang dihasilkan script. Dalam hal ini, koneksi berwarna hijau, yang menandakan jenis input yang tepat untuk widget Word Cloud. | ||
− | [[File:PythonScript-Example3.png|center| | + | [[File:PythonScript-Example3.png|center|600px|thumb]] |
==Referensi== | ==Referensi== |
Latest revision as of 09:38, 17 April 2020
Sumber: https://docs.biolab.si//3/visual-programming/widgets/data/pythonscript.html
Widget Python Script memperluas fungsi Orange melalui script Python.
Input
Data (Orange.data.Table): input dataset bound to in_data variable Learner (Orange.classification.Learner): input learner bound to in_learner variable Classifier (Orange.classification.Learner): input classifier bound to in_classifier variable Object: input Python object bound to in_object variable
Output
Data (Orange.data.Table): dataset retrieved from out_data variable Learner (Orange.classification.Learner): learner retrieved from out_learner variable Classifier (Orange.classification.Learner): classifier retrieved from out_classifier variable Object: Python object retrieved from out_object variable
Widget Python Script dapat digunakan untuk menjalankan skrip python di input, ketika fungsionalitas yang sesuai tidak diterapkan dalam widget yang ada. Script memiliki variabel in_data, in_distance, in_learner, in_classifier dan in_object (dari sinyal input) di namespace lokalnya. Jika sinyal tidak terhubung atau belum menerima data apa pun, variabel tersebut akan berisi None.
Setelah script dijalankan, variabel dari namespace lokal script diekstraksi dan digunakan sebagai output dari widget. Widget dapat lebih lanjut dihubungkan ke widget lain untuk memvisualisasikan output.
Misalnya script berikut hanya akan meneruskan semua sinyal yang diterimanya:
out_data = in_data out_distance = in_distance out_learner = in_learner out_classifier = in_classifier out_object = in_object
Catatan: Anda tidak boleh memodifikasi objek input di tempat.
- Info box contains names of basic operators for Orange Python script.
- The Library control can be used to manage multiple scripts. Pressing “+” will add a new entry and open it in the Python script editor. When the script is modified, its entry in the Library will change to indicate it has unsaved changes. Pressing Update will save the script (keyboard shortcut “Ctrl+S”). A script can be removed by selecting it and pressing the “-“ button.
- Pressing Execute in the Run box executes the script (keyboard shortcut “Ctrl+R”). Any script output (from print) is captured and displayed in the Console below the script.
- The Python script editor on the left can be used to edit a script (it supports some rudimentary syntax highlighting).
- Console displays the output of the script.
Contoh
Widget Python Script dimaksudkan untuk memperluas fungsionalitas bagi pengguna tingkat lanjut. Class dari library Orange dijelaskan dalam dokumentasi. Untuk menemukan informasi lebih lanjut tentang Table class lihat Table, Domain, and Variable documentation.
Dalam contoh penggunaan widget Python Script berikut, kita bisa melakukan pemfilteran batch berdasarkan atribut. Kita menggunakan zoo.tab sebagai contoh dan kita memfilter semua atribut yang memiliki lebih dari 5 nilai diskrit. Dalam kasus kita hanya menghapus atribut 'leg', tetapi bayangkan dimana kita bisa memiliki contoh lain dengan banyak atribut seperti itu.
from Orange.data import Domain, Table domain = Domain([attr for attr in in_data.domain.attributes if attr.is_continuous or len(attr.values) <= 5], in_data.domain.class_vars) out_data = Table(domain, in_data)
Contoh penggunaan widget Python Script berikut ini menunjukkan bagaimana membulatkan semua nilai dalam beberapa baris kode. Kali ini kita menggunakan wine.tab dan bulatkan semua nilai menjadi bilangan bulat.
import numpy as np out_data = in_data.copy() #copy, otherwise input data will be overwritten np.round(out_data.X, 0, out_data.X)
Contoh penggunaan widget Python Script berikut ini memasukan noise Gaussian ke data. Sekali lagi kita membuat salinan data input, lalu berjalan melalui semua nilai dengan loop ganda untuk dan menambahkan noise random.
import random from Orange.data import Domain, Table new_data = in_data.copy() for inst in new_data: for f in inst.domain.attributes: inst[f] += random.gauss(0, 0.02) out_data = new_data
Contoh berikut ini menggunakan add-on Orange3-Text. Widget Script Python sangat berguna untuk preprocessing custom dalam text mining, mengekstraksi feature baru dari string, atau memanfaatkan fungsi nltk atau gensim yang canggih. Di bawah ini, kita hanya men-tokenisasi data input kita dari deerwester.tab dengan membaginya dengan spasi.
print('Running Preprocessing ...') tokens = [doc.split(' ') for doc in in_data.documents] print('Tokens:', tokens) out_object = in_data out_object.store_tokens(tokens)
Kita dapat menambahkan banyak langkah preprocessing lainnya untuk lebih menyesuaikan output. Output dari widget Python Script dapat digunakan dengan widget apa pun yang menerima jenis output yang dihasilkan script. Dalam hal ini, koneksi berwarna hijau, yang menandakan jenis input yang tepat untuk widget Word Cloud.