Seberapa baik ekosistem open-source R untuk memecahkan masalah bisnis?

Alasan untuk publikasi adalah entri blog Rstudio: "Shiny 1.1.0: Scaling Shiny with async," yang dapat dengan mudah dilewati, tetapi yang menambahkan batu bata yang sangat signifikan pada tugas menggunakan R untuk tugas-tugas bisnis. Sebenarnya, dalam versi dev yang mengkilap, asynchrony muncul sekitar setahun yang lalu, tapi agak sembrono dan “membuat-percaya” - itu adalah versi dev. Transfer ke cabang utama dan publikasi tentang CRAN adalah konfirmasi penting bahwa banyak masalah mendasar dipikirkan, diselesaikan dan diuji, Anda dapat dengan aman mentransfer ke yang produktif dan digunakan.


Dan apa lagi yang ada di R, kecuali "berlian", yang memungkinkan Anda mengubahnya menjadi alat analitis universal untuk tugas-tugas praktis?


Ini adalah kelanjutan dari publikasi sebelumnya .


Kenapa mengkilap


Jika kita berbicara tentang aplikasi praktis R untuk berbagai pemrosesan data dalam proses bisnis perusahaan nyata, pengguna utama dari hasil analisis akan menjadi manajer di berbagai tingkatan. Kami meninggalkan lapisan analisis DS di belakang tanda kurung, mereka membutuhkan berbagai alat, termasuk akses langsung ke database. Mereka sendiri dapat dan dapat melakukan segalanya. Workstation berbasis web grafis akan menjadi bantuan yang mudah, tetapi bukan pembeda utama.


Tidak seperti spesialis DS, manajer biasa membutuhkan antarmuka yang nyaman yang akan memberinya semua informasi (historis, analitis, prediktif, dll.) Yang diperlukan untuk membuat keputusan atau melaporkan kepada manajemen. Sebenarnya, User Interface adalah "alpha and omega" dari sembarang Sistem enterprise. Tidak seorang pun akan melihat di bawah tenda (well, mungkin hanya pada tahap panjang dan menyakitkan RFI-RFP). Tidak ada yang akan mengerti untuk pergi bereksperimen di luar batas cerita pengguna mereka yang ditentukan dalam tanggung jawab pekerjaan. Tidak seorang pun akan merefleksikan subjek protokol, algoritma, validasi, dan akurasi.


Menggunakan Shiny, Anda dapat menggambar antarmuka yang sangat bercabang yang akan menyertakan teks, grafik, tabel, hampir semua elemen html struktural (kerangka bootstrap). JS memungkinkan Anda untuk menambahkan penyetelan kompleks ke antarmuka web, CSS memungkinkan Anda untuk membuat gaya khusus. Hal ini juga sangat mudah dilakukan pada R beberapa hal penting yang secara kualitatif mengubah pekerjaan dengan antarmuka, yaitu generasi konten yang dinamis. Di sini kita berbicara tentang:


  • data tabular dan grafik yang dapat diubah oleh penghitung waktu atau permintaan pengguna dan dimodifikasi ketika ditampilkan dalam mnrt. dengan batasan dinamis (misalnya, menyembunyikan tanda bintang dari data pers);
  • komposisi elemen dalam antarmuka (tergantung pada logika proses bisnis, Anda dapat menambah / menghapus tombol, bookmark, dll selama eksekusi);
  • konten elemen-elemen ini (misalnya, mengisi daftar nilai yang tersedia berdasarkan data yang dimuat);
  • pengelolaan konten elemen kontrol yang cerdas (misalnya, pemilihan nilai dari satu daftar akan menentukan konten elemen lain yang tersedia untuk seleksi);
  • implementasi model peran di tingkat data (misalnya, tergantung pada peran, hanya subset tertentu dari suatu elemen mungkin tersedia)

Tanpa antarmuka - tanpa sistem. Dan tepat pada titik ini menjadi hampir jelas mengapa R, bukan python. Karena R memiliki Shiny (paket + runtime) yang dengannya Anda dapat langsung melakukan R pada Antarmuka Pengguna untuk sistem pemrosesan data dari hampir semua tingkat kerumitan algoritmik, tetapi python, sayangnya, tidak memiliki pengumuman seperti itu dalam waktu dekat.


Asynchrony mengilap dan mengapa itu sangat penting


Aplikasi mengkilap itu sendiri dijalankan secara berurutan, untuk setiap tautan url (aplikasi mengkilap) di open-source server mengkilap, satu proses R backend naik, yang melayani perhitungan sesuai dengan aktivitas pengguna. Sampai rilis terakhir, versi open-source dari shiny sepenuhnya sinkron. Ini berarti bahwa setiap perhitungan panjang dalam kode “membekukan” respons aplikasi untuk semua pengguna yang menggunakannya pada saat yang sama. Secara alami, dalam versi perusahaan Shiny Server Pro, masalah mengelola sesi pengguna telah diselesaikan. Konsumen memiliki kesempatan untuk memilih apakah akan mendapatkan semua yang mereka sukai selama aplikasi perusahaan dalam 5 detik atau untuk menambahnya sendiri.


Pada prinsipnya, fitur aplikasi mengkilap seperti itu dapat ditingkatkan dengan:


  • memposting aplikasi untuk pengguna yang berbeda ke url yang berbeda, termasuk, misalnya, nama pengguna (satu kode, tautan dibuat di server mengkilap)
  • melakukan perhitungan kompleks sebelumnya, dalam proses latar belakang yang berbeda
  • simbiosis optimal antara kemampuan pemrosesan data backend dan postprocessing di R.

Namun, sekarang ini menjadi jauh lebih nyaman. Asynchrony melalui mekanisme janji (s) memungkinkan beberapa baris untuk menghasilkan thread R tambahan di mana perhitungan intensif sumber daya akan dilakukan, tanpa mempengaruhi kinerja aliran dan waktu respons aplikasi mengkilap utama. Jadi, secara formal, masalah kerja paralel banyak pengguna dapat dianggap diselesaikan dalam versi open-source juga. Saatnya minum kopi dan menunggu hasilnya bukan tentang Shiny.


Studi Kasus Khas R


Mereka sering dan sering suka berbicara tentang model dan ML dalam kerangka aplikasi perusahaan, tetapi dimungkinkan untuk mendekati tugas-tugas ini hanya setelah mendigitalkan tugas dan menyiapkan data. Dan semua ini bisa dilakukan dalam kerangka R.
Secara alami, R tidak selalu cukup dengan satu, tergantung pada skala tugas dan jumlah data, baik backend sumber terbuka olap dan subsistem akuisisi data sumber terbuka mungkin diperlukan. Tetapi ini tidak mengubah apa pun, karena pengguna hanya bekerja dengan Aplikasi Pengguna (lihat di atas).
Banyak cerita yang sebelumnya menampilkan produk-produk khusus dari "vendor besar" yang telah diperkenalkan selama bertahun-tahun hingga miliaran dolar. Tetapi sekarang semuanya diselesaikan dengan lebih mudah dan lebih murah. Praktek menunjukkan bahwa 99% tugas bisnis termasuk dalam salah satu dari tiga kasus yang dijelaskan di bawah ini.


Kasus No. 1. Analitik operasional


Tugas khas, yaitu membuat loop umpan balik operasional. Tahapan utama:


  • multi-protokol dan pengumpulan data multi-format dalam mode mendekati nyata (sesuai dengan spesifik proses bisnis, delta optimal adalah beberapa puluh menit) dari berbagai sistem pabrikan yang berbeda dan buku referensi dalam berbagai format. Misalnya, dapat berupa data dari peralatan pemompaan, data dari berbagai pemindai, log operasi sistem
  • pembersihan, normalisasi dan pengayaan dengan data dari sumber dan direktori lain
  • analisis deret waktu yang diperoleh. di sini adalah perhitungan perkiraan dan analisis penyimpangan dari nilai-nilai yang diprediksi, dan analisis anomali, dan berbagai antifraud dan prediksi masalah yang mungkin terjadi (misalnya, suhu di lemari es mulai naik perlahan-lahan. Sementara indikator ada di pengaturan, tetapi tren sudah jelas - produk mungkin segera memburuk)
  • perhitungan nilai KPI instan (dalam batas imajinasi analis bisnis)
  • umpan balik multi-saluran umpan balik: menghasilkan laporan, memperbarui dasbor, pelaporan otomatis ke sistem eksternal (mis. pemantauan), pelaksanaan perintah secara otomatis di sistem yang lebih rendah.

Contoh klasik:


  • kontrol berbagai peralatan,
  • pemantauan proses bisnis yang panjang,
  • Analisis penjualan "online",
  • analisis kerja call center,
  • analisis umum sistem kontrol akses (misalnya, apakah ada aplikasi di SAP untuk akses karyawan tertentu pada waktu tertentu ke tempat tertentu, atau apa yang ACS lihat sebagai anomali?).

Ada banyak masalah seperti itu dan semuanya dapat diselesaikan dengan ekosistem R.


Kasus No. 2. Konsolidasi Excel


Praktik menunjukkan bahwa Excel di sebagian besar perusahaan adalah alat utama untuk analis bisnis. Untuk tugas-tugas sederhana, ini masih dapat diterima, untuk tugas-tugas kompleks dengan banyak data, pendekatan ini berubah menjadi lubang hitam, yang menyedot sumber daya dalam jumlah berapa pun dan tidak menghasilkan apa pun dalam output.


Tugas khas:
SAAT (! Dipecat) DO {


  • mengumpulkan data kotor dari sejumlah sumber yang berbeda, sebagian besar unggul manual;
  • berulang kali memvalidasi semuanya (validasi teknis dan logis dari sumber + validasi silang logis antara sumber);
  • melakukan perhitungan, konsolidasi, distribusi;
  • membuat banyak pembongkaran yang berbeda untuk pengiriman ke unit lain;
  • dengan cekatan melaporkan pekerjaan yang dilakukan.
    }
    Dan semua ini dilakukan dalam mode dan pemrosesan darurat konstan.

Contoh klasik:


  • Analytics untuk sistem manajemen proyek terintegrasi (KSUP), ketika Anda tidak bisa turun dengan satu msproyek. Massa kontraktor melaporkan sebaik mungkin, tetapi kita perlu membuat gambaran yang terkonsolidasi dan mengelola risiko.
  • Sistem pemesanan dan distribusi (perdagangan dan logistik). Apa yang harus dibawa, cara mendistribusikan, cara mengumpulkan pesanan, cara menguraikannya. Juga bagus untuk memperkirakan pembelian.

Kasus No. 3. Sistem Pendukung Keputusan


Ini bahkan lebih sederhana dan paling dekat dengan ML murni:


  • mengumpulkan informasi dari mana Anda dapat (semua jenis odbc dan tidak sesuai dengan sumber odbc, xml \ json, txt \ csv \ log, xlsx, REST API);
  • mengkorelasikan data dari sumber yang berbeda satu sama lain dan mengarah ke bentuk yang dapat dicerna untuk algoritma ML;
  • datang dengan tikar. model entitas bisnis yang dijelaskan, untuk menghitung;
  • menggambar berbagai irisan dan tampilan, menghasilkan berbagai laporan dalam bentuk manajerial (docx, xlsx, pptx, pdf) dengan deskripsi situasi dan rekomendasi saat ini.

Klasifikasi kasus tidak ditemukan, tetapi ternyata didasarkan pada kebutuhan nyata bisnis (sains dan ML \ AI \ DL murni secara terpisah). Mungkin dalam waktu dekat ini akan memungkinkan untuk "berbagi tangkapan layar" tentang menyelesaikan 2-3 masalah.


Latihan menunjukkan bahwa R + Shiny memungkinkan Anda untuk "mengklik" tugas-tugas seperti itu dengan sangat, sangat efisien. Jika ada tugas, masuk akal untuk melihat alat ini lebih dekat.


Posting sebelumnya - Fitur aplikasi R perusahaan yang tangguh .

Source: https://habr.com/ru/post/id416019/


All Articles