Rabu, 23 Januari 2019

Ini dia model yang bisa dipakai.

MODEL  di sini bahkan bisa dijadikan experimen, tidak cuma bisa dicoba coba, diperlakukan apapun dia tidak akan komplain, dan yang mengherankan lagi ... tidak mau dibayar alias gratis. Trus pertanyaanya siapa model yang bisa dipakai tsb? Simak paparan saya, untuk menepati janji melanjutkan postingan kemarin.

Model tersebut adalah Model Machine Learning dari Studio Azure Machine Learning Microsof, di sini akan dicoba menganalisa dataset yang sudah dipersiapkan, untuk menguji 5 model Machine Learning sbb:
1. Bayesian Linear Regression
2. Neural Network Regression
3. Boosted Decision Tree Regression
4. Linear Regression
5. Decision Forest Regression
Model Bayesian Linear Regression dan Neural Network Regression sudah dicoba dipostingan sebelumnya, hasilnya Neural Network Regression lebih unggul dari Bayesian Linear Regression, apakah model Neural Network Regression masih unggul, jika data diatas duji lagi dengan model Boosted Decision Tree Regression, Linear Regression dan Decision Forest Regression? Ikuti langkah di bawah ini:
Langkahnya sama seperti postingan terdahulu, 
1. Upload Modul data
2. Split data, recomended 50% training data 50% test data
3. Modul Machine Learning
4. Modul Train Model, di panel properties, dikeluarkan variable lable(medv), sebagai target.
5. Modul Score Model
6. Evaluate Model
7. Executed R Script modul
8. Masing masing dihubungkan dengan Modul Add Row
Note:
Perlu modifikasi R script di panel properties sbb:
Untuk Bayesian Linear Regressian dan Decision Forest Regression  model, ketik R script di bawah ini(Script 1)
Script 1
Untuk Neural Network Regression, Boosted Decision Tree Regression dan Linear Regression, ketik R script (Script 2)
Script 2

9. Lakukan prosedure 1 sampai 7 untuk setiap modul machine learning, jadi ada total 5 modul yang akan diexecusi di Studio Machine Learning. Diagram lengkap modelnya ada di Screen 1
Screen 1
10. Klik Run
11. Upload to Web


Screen 2

12. Kesimpulan
12.1. Ternyata model yang unggul adalah Boosted Decision Tree Regression, dengan nilai
 Coefficient Determination = 0.898651, dan RMSE = 2.790232, lihat Screen 2.
12.2. Jadi dari kelima model machine learning yang dicoba di sini, yang terbaik adalah model Boosted Decision Tree Regression.
12.3. Eksekusi 5 model di atas di Studio Azure Machine Learning hanya makan waktu kira2-kira 3 menit. 

Referensi
3. Github
4. Dropbox
5. H2O




Selasa, 22 Januari 2019

Pilih model yang mana?

Analisa data itu mudah! yang susah adalah menentukan hasilnya itu valid apa tidak, sesuai apa tidak. Mengatasi hal tersebut terpaksa kita harus membandingkan beberapa model yang kita pakai. 
Di sini akan dicoba membandingan antara Model Bayesian Linear Regression dengan Neural Network Regression, dengan memakai fasilitas Studio Microsoft Machine Learning. Jadi tidak perlu mebuat  coding R satu persatu, tapi bagi yang ingin memperdalam bisa email saya.
Sebelum memulai, tentunya harus punya account di Studio Microsoft Machine Learning, bisa daftar disini. Selanjutnya ikuti langkahnya sbb:



1. Preparation 
1.1.Data preparation, use data Boston , from Boston Housing Values in Suburbs of Boston, Source:Belsley D.A., Kuh, E. and Welsch, R.E. (1980) Regression Diagnostics. Identifying Influential Data and Sources of Collinearity. New York: Wiley.
1.2. Use modul Split Data, split data randomly 50% train data and 50% test data

Screen1, Boston raw data

3. Model 
3.1. Bayesian Linear Regression 
3.2. Neural Network Regression

Screen 2, Flowchart lengkap

4. Train Model
4.1. Use Train Model modul, connect to modul Bayesian, connect to Modul Split Data 
4.2. Use Score Model modul, connect right bottom to right bottom Modul Split Data 
4.3. Modul Evaluate 
5. Execute R Script
5.1. Change the R script in Properties panel for Bayesian Linear Regression
5.2. Connect to Modul Add Rows

Catatan
Di modul R Script, di bagian Properti Panel, harus dimasukkan R script yang baru, lihat di
Screen 3.
Screen 3

Screen 3, Script R yang harus dimasukkan ke Modul Bayesian Linear Regression.
Begitu juga di modul Neural Network Regression, di Panel Properties harus dimasukkan R script baru ada di Screen 4
Screen 4

Screen 4. Script R yang harus dimasukkan ke Modul Neural Net Regression.

6. Neural Network Regression
6.1. Follow the procedure from Preparation to Add Rows, for the Neural Network Regression. 
6.2. Connect the Add Rows module Execute R Script in Neural Network Regression. 
7. Result. 
7.1. Run all application 
7.2. Click Visualize table,
7.3. Comparing which is better, Bayesian Linear Regression or Neural Network Regression.
7.4. Check Screen 5.
7.5. Neural Network Regression  has RMSE  3.609129(less than RMSE of Bayesia Network Regression ) and Coefficient determination 0.830432 bigger than Bayesian Linear Regression.

Screen 5.

8. Conclusion
8.1. Neural Network Regression better than Bayesian Linear Regression Model.
8.2. Not absolutely true, in the next I will compare this result with model Boosted Decicion Tree Regression, Linear Regression and Decicion Forest Regression.

References
2. Github
4. Dropbox
5. H2O






Senin, 21 Januari 2019

Berapakah harga yang pantas?


Berapakah harga yang pantas?

Pertanyaan itu muncul setiap saat kita mendapat penawaran dari penjual. Menentukan harga sebuah produk itu gampang apabila variable yang mempengaruhi produk tsb sedikit, tapi jika banyak bagaimana?
Kami akan berikan ilustrasi data yang diambil dari Housing Values in Suburbs of Boston, Source:Belsley D.A., Kuh, E. and Welsch, R.E. (1980) Regression Diagnostics. Identifying Influential Data and Sources of Collinearity. New York: Wiley.

Cara mudah cepat , murah dan akurat  untuk menjawab pertanyaan di atas.

Gunakan  fasilitas Azure Machine Learning dari microsoft, memberikan fasilitas free 10gb, dan dapat
mengeksekusi max 1000 line script. Dengan tool machine learning yang cukup memadai untuk mengolah data yang ada, pilihan bahasa bisa R atau Python. Microsoft sangat murah hati, dibandingkan dengan AWS (Amazone Web Service) yang kenakan charge/jam/dollar!.
Sangat menarik terutama, bagi UKM, startup, ecomerce, dan siapa saja ingin memulai bisnis hanya bermodal laptop saja! karena anda tidak perlu  programmer.

Data Boston
Dimensi data Boston terdiri 506 baris dan 14 kolom
crim    : criminal ratio/town
zn       : population density
indus  : proportion of non-retail business acres per town.
chas    : Charles River dummy variable (= 1 if tract bounds river; 0 otherwise).
nox     : nitrogen oxides concentration (parts per 10 million).
rm       : average number of rooms per dwelling.
age      : proportion of owner-occupied units built prior to 1940.
dis       : weighted mean of distances to five Boston employment centres.
rad      : index of accessibility to radial highways.
tax      : full-value property-tax rate per \$10,000.
ptratio: pupil-teacher ratio by town.
black  : 1000(Bk - 0.63)^2 where Bk is the proportion of blacks by town.
lstat    : lower status of the population (percent).
medv  : median value of owner-occupied homes in \$1000s



Gb1. Ilustrasi data dari excel

Eksekusi di Azure Machine Learning
1. Buat account di sini Azure
2. Masuk studio.studio.azureml.net
3. Upload data Boston (Gb.1)
4. Cleansing data Boston
5. Spliting data Boston, recomended, 75% train data, 25%test data
6. Ambil modul Machine Learning, tool Regression
7. Klik modul Train Model
8. Hubungkan Train Model dengan modul Regression
9. Hubungkan port kanan modul split data dengan Modul Train
10. Run
11. Klik modul Score untuk menguji(Gb.2)

Gb.2

12. Upload di Web (Gb.3)


Gb.3

13. Test hasil
Gb. 4

Kesimpulan. 
1. Lihat data Excel Boston baris 3(GB.1, nilai medv = 34.7, setelah ditest ternyata hanya 30.520, jadi nilai nya overprice. Lihat(Gb.4)
2. Bisa juga nilanya setelah distest underprice, bisa dicoba sendiri.
3. Hal tersebut terjadi karena tiap variable punya respon sendiri, terhadap price/medv.
5. Jadi dengan analisa sederhana ala DATA SCIENTIST bermanfaat bukan?
6. Machine learning memudahkan hidup kita.

Referensi:
2. Github 




Minggu, 20 Januari 2019

Mencoba Azure Machine Learning

Prediksi harga harga mobil dari berbagai merk, rational atau tidak.

1.Data preparation
1.1. Data bisa diambil dari dataset Azure Machine Learning
1.2. Data dari luar dataset Azure Machine Learning

2. Menggunakan Machine Learning dari Azure Machine Learning
2.1. Upload data ke dataset Azure Machine Learning
2.2. Data preparation, cleansing dll.
2.3. Split data, data dibagi dua, train data dan test data
2.4. Gunakan Machine larning, pilih linear regression
2.5. Gunakan modul Train model
2.6. Hubungkan Train model dengan modul Linear Regression
2.7. Hubungkan juga Train Model dengan Split Data
2.8. Gunakan Modul Score
2.9. Hubungkan Train modul dengan Score Modul
2.10. Hubungkan pula Score Modul dengan Split Data
2.11. Klik tombol Run, tunggu sebentar
2.12. Klik tomol bawah Score Modul, pilih Visualised
2. 13.Terlihat data Score Lable, bandingkan dengan Aktual price

3. Upload di Web 
3.1. Buka set up Web Service
3.2. Test Web Servise

4. Kesimpulan
4.1. Dengan Test Web Servise, akan terlihat apakah harga mobil tsb rational atau tidak
4.2. Dengan menggunakan Azure Machine Learning, tidak perlu membuat koding.
4.3. Sekarang Microsoft Azure , menyediakan free account hampir 10GB, dengan 100 modul/experiment, bandinkan jika menggunakan AWS(Amazone Web Servisce) akan kena charge/jam.

Referensi:




Jumat, 21 Desember 2018

Belajar yang mana dulu, R,Python atau SAS?


Belajar yang mana dulu, R, Python atau SAS?
Jika anda baru mengenal dunia Data Science (ilmu data) dan tidak berpengalaman dalam salah satu dari bahasa ini, masuk akal untuk tidak yakin apakah anda akan belajar R, Python, atau SAS.
Jangan khawatir, pada saat anda selesai membaca artikel ini, anda akan tahu tanpa ragu bahasa mana yang tepat untuk anda.


Overview
R - R identik dengan statistik dan matematik. R adalah bahasa pemrograman open source alias gratis yang digunakan untuk melakukan tugas analisis data tingkat advance, library yang melimpah, berkembang terus, didukung banyak komunitas yang berkontribusi memperkaya library.

Python – Python adalah bahasa pemrograman gratis dan open source yang telah menjadi sangat populer bagi programmer dan ilmu data, punya  komunitasnya yang aktif dan  data mining libraries yang memadai.

SAS - SAS menjadi pemimpin pasar terpakai dalam analitik perusahaan. SAS menawarkan berbagai fungsi statistik, memiliki GUI yang baik bagi orang untuk belajar dengan cepat dan memberikan dukungan teknis yang brilian.

Jika anda mencari untuk memulai karir di bidang Data Science atau untuk mendapatkan keterampilan untuk dapat beralih ke bidang ini di masa depan. Maka anda mungkin sedang melakukan penelitian yang mana dari tiga bahasa pemrograman ini anda harus belajar terlebih dahulu untuk memaksimalkan peluang anda mendapatkan pekerjaan impian anda. Haruskah anda fokus pada penguasaan R? Atau akan lebih baik untuk menjadikan SAS prioritas? Atau harus belajar Python?
Lihat  5 faktor ini sebagai titik awal anda untuk membantu anda memutuskan.
1.     Industri menggunakan tools ini
Burtch Works, Lembaga yang bergerak di bidang SDM, bertanya kepada lebih dari 1000 profesional  mana yang mereka sukai, SAS, R atau Python. Berikut adalah hasil survei:


SAS lebih disukai oleh perusahaan-perusahaan besar karena mereka mendapatkan layanan istimewa,  dimana biaya tidak masala bagi mereka.




R dan Python, di sisi lain, digunakan oleh Startups dan perusahaan menengah. Perusahaan Tech dan Telecom membutuhkan dengan volume besar data yang tidak terstruktur untuk dianalisa, dan karenanya para ilmuwan data menggunakan teknik Machine Learning(pembelajaran mesin), dimana hal tersebut lebih cocok untuk R dan Python.


2.     Biaya dan kemudahan belajar


SAS adalah perangkat lunak komersial yang mahal dan sebagian besar digunakan oleh perusahaan besar dengan anggaran besar.
Python dan R adalah perangkat gratis yang dapat diunduh oleh siapa saja.
Untuk menganalisis data dalam Python, anda akan menggunakan library  seperti Pandas, Numpy, dan Scipy.
Dengan kata lain, 
Anda tidak akan mendapatkan kode dalam bahasa Python asli saat menganalisis data.
Kode yanga anda tulis di library ini terlihat lebih mirip dengan kode yang anda tulis di dalam R.
Jadi, jangan pikirkan  R itu sulit, dan Python mudah dipelajari!
3. Data Science capabilities
SAS sangat efisien pada akses data sekuensial, dan akses database melalui SQL terintegrasi dengan baik. Antarmuka drag-and-drop memudahkan anda untuk membuat model statistik yang lebih baik dengan cepat. Ini memiliki kemampuan grafis fungsional yang layak, tetapi sulit untuk membuat plot grafis yang kompleks di SAS.

R dikenal untuk analitik dalam memori dan terutama digunakan ketika tugas analisis data memerlukan server mandiri. R adalah alat yang sangat baik untuk menjelajahi data. Saat ini, R memiliki lebih dari 5000 paket kontribusi komunitas CRAN

Berbagai paket dan modul yang tersedia untuk statistik dan analisis data menjadikannya bahasa yang paling populer dan kuat dalam ilmu data. Model statistik dapat ditulis dalam beberapa baris kode.
Anda dapat menggambar grafik rumit dengan indah di R menggunakan paket seperti Ggplot2, kisi, rCharts, dll.
Pustaka python seperti Pandas, Numpy, Scipy dan Scikit-learn menjadikannya bahasa pemrograman paling populer kedua dalam ilmu data setelah R.

Anda juga dapat membuat bagan dan grafik yang indah menggunakan pustaka seperti Matlplotlib dan Seaborn.
Python secara aktif digunakan oleh komunitas pembelajaran mesin untuk memo dan menganalisis data yang tidak terstruktur dari web.
R lebih mudah dan intuitif untuk dipelajari dan digunakan untuk analisis dan manipulasi data.Umumnya hasil riset terbaru selalu diimplementasikan di bahasa pemrogramman R. R nyaris bisa digunakan untuk apa saja: mulai dari bisnis, membuat web sampai robotik, dan science tentunya.

Belajar R tidak perlu menggunakan atau mempelajari HTML, CSS dan javascript! Dengan menggunakan package Shiny, kita bisa membuat web hanya dengan menggunakan bahasa pemrograman R, baik untuk layoutsampai business logic. Anda bisa melihat contoh aplikasi web yang dibuat dengan shiny pada situs berikut.
“Tapi kan Shiny terbatas tampilannya cuman gitu-gitu doang, sedangkan kalau ngoding pakai python kita bisa bikin tampilan lebih dinamis…”
Dengan  OpenCPU and Plumber ,kita bisa membangun aplikasi web dengan memanfaatkan kemampuan R.
Dengan menggunakan Plumber kita bisa membuat RESTAPI.
Dengan bantuan ROS (Robotic Operating Systems), R dapat digunakan untuk melakukan pemrograman robotik.
Bahkan dengan R kita bisa membuat labirin untuk game Minecraft.
4.Community Support
SAS memiliki komunitas online aktif yang dimoderatori oleh manajer komunitas. Komunitas-komunitas ini telah berkembang dari forum peer to peer menjadi platform penerbitan untuk konten penting.

Anda dapat menanyakan pertanyaan terkait SAS, dan komunitas akan menjawabnya. Blog resmi SAS juga merupakan sumber penting untuk merujuk ketika anda membutuhkan bantuan dengan masalah tertentu.

R memiliki 125 grup pengguna aktif di seluruh dunia, dan jumlah pertemuan grup pengguna telah meningkat dengan jumlah yang signifikan pada tahun lalu. Python memiliki 1.657 grup pengguna, komunitasnya sangat fokus pada data, jauh lebih sedikit jika dibandingkan dengan R.

R dan Python memiliki dukungan komunitas online yang sangat besar dari aliran Stackover, milis, kode kontribusi pengguna dan dokumentasi.
SAS sama sekali tidak memiliki komunitas open source yang aktif.
5.Job Scenario
SAS memiliki lebih dari 80.000 pelanggan di seluruh dunia, dan kebanyakan dari mereka adalah korporasi dengan anggaran besar. Analis dalam organisasi ini menggunakan SAS untuk dengan cepat dan efisien menjalankan berbagai model statistik pada set data.

Di sisi lain, R dan Python digunakan oleh startup dan perusahaan teknologi. R lebih condong ke tugas-tugas yang berkaitan dengan statistik dan analisis data karena yang pekerjaannya terkait R menyebutkan seperti "Penambang data-Data Miner", " Statistician",  “Manager Data Analyst", "Data Scientist",dll.
Pelajari pemrograman R dari yang berpengalaman.

Sementara itu, mengingat booming dalam Big Data - yang diproyeksikan oleh Ovum akan tumbuh 50 persen pada beberapa tahun mendatang  - Anda dapat mengharapkan peningkatan jumlah analist bisnis dan program er lainnya untuk mempersenjatai diri dengan bahasa R juga.

Sedangkan, Python digunakan oleh programmer yang ingin mempelajari analisa data atau menerapkan teknik statistik, dan oleh developer yang beralih ke Data Science. Pekerjaan yang berhubungan dengan Python memiliki sebutan  seperti "Machine Learning Engineer", "Data Engineer", "Big Data Architek", dll.

Kesimpulan
Jika tujuan anda adalah menjadi seorang profesional analitik bisnis dan anda berencana untuk bergabung dengan startup, maka anda harus belajar R terlebih dahulu.

Di sisi lain, jika anda ingin bergabung dengan bank atau perusahaan farmasi, Anda harus mulai dengan SAS dan kemudian belajar R setelah anda merasa nyaman dengan SAS.

Jika anda ingin menjadi profesional Big Data, maka anda perlu mempelajari R atau Python.
Ini tergantung pada latar belakang anda juga. 

Jika anda berasal dari latar belakang statistik / matematika maka anda harus belajar R, Jika anda memiliki latar belakang pemrograman, maka anda harus belajar Python.

Jika anda belum punya dasar apapun tentang computer, tapi punya niat yang kuat untuk bersaing dimasa depan, R programming  tidak salah pilihannya. Semua orang yang pernah bersekolah, tentu pernah mendapat pelajaran Matematika dan Statistik.

Referensi:
Bahan dirangkum dan diterjemahkan dari berbagai sumber.

Selasa, 20 November 2018

Login dalam aplikasi shiny


Apa itu Shiny dashboard? Bagaimana membuat login di Aplikasi Shiny?


Login Page

Salah satu keunggulan yang dimiliki R adalah Shiny(Python tidak memiliki). Shiny adalah paket R yang membuatnya mudah untuk membangun aplikasi web interaktif langsung dari R. Dasbor sangat populer karena  bagus  dalam membantu bisnis menampilkan  insights out (wawasan), dari data yang ada.

require(shiny)
require(shinydashboard)

header <- dashboardHeader(title = "my heading")
sidebar <- dashboardSidebar(uiOutput("sidebarpanel"))
body <- dashboardBody(uiOutput("body"))

server <- function(input, output, session) {
  # To logout back to login page
  login.page = paste(
    isolate(session$clientData$url_protocol),
    "//",
    isolate(session$clientData$url_hostname),
    ":",
    isolate(session$clientData$url_port),
    sep = ""
  )
  histdata <- rnorm(500)
  USER <- reactiveValues(Logged = F)
  observe({
    if (USER$Logged == FALSE) {
      if (!is.null(input$Login)) {
        if (input$Login > 0) {
          Username <- isolate(input$userName)
          Password <- isolate(input$passwd)
          Id.username <- which(login_details$user %in% Username)
          Id.password <- which(login_details$pswd %in% Password)
          if (length(Id.username) > 0 & length(Id.password) > 0){
            if (Id.username == Id.password) {
              USER$Logged <- TRUE
            }
          }
        }
      }
    }
  })
  output$sidebarpanel <- renderUI({
    if (USER$Logged == TRUE) {
      div(
        sidebarUserPanel(
          isolate(input$userName),
          subtitle = a(icon("usr"), "Logout", href = login.page)
        ),
        selectInput(
          "in_var",
          "myvar",
          multiple = FALSE,
          choices = c("option 1", "option 2")
        ),
        sidebarMenu(
          menuItem(
            "Item 1",
            tabName = "t_item1",
            icon = icon("line-chart")
          ),
          menuItem("Item 2",
                   tabName = "t_item2",
                   icon = icon("dollar"))
        )
      )
    }
  })

  output$body <- renderUI({
    if (USER$Logged == TRUE) {
      tabItems(
        # First tab content
        tabItem(tabName = "t_item1",
                fluidRow(
                  output$plot1 <- renderPlot({
                    data <- histdata[seq_len(input$slider)]
                    hist(data)
                  }, height = 300, width = 300) ,
                  box(
                    title = "Controls",
                    sliderInput("slider", "observations:", 1, 100, 50)
                  )
                )),

        # Second tab content
        tabItem(
          tabName = "t_item2",
          fluidRow(
            output$table1 <- renderDataTable({
              iris
            }),
            box(
              title = "Controls",
              sliderInput("slider", "observations:", 1, 100, 50)
            )
          )
        )
      )
    } else {
      login
    }
  })
}

Dasbor R Shiny canggih membutuhkan otentikasi pengguna. Saya ingin berbagi dengan Anda bagaimana kami menerapkan manajemen pengguna - akun pengguna, proses otorisasi dan mengumpulkan statistik penggunaan untuk memiliki pemahaman yang lebih baik tentang bagaimana penggunaan aplikasi R Shiny.



require(shiny)
require(shinydashboard)

ui <- dashboardPage(header, sidebar, body)
#server.r

login_details <- data.frame(user = c("sam", "pam", "ron", "jon", "cyn"),
                            pswd = c("111", "222", "333", "444", "555"))
login <- box(
  title = "Login",
  textInput("userName", "Username"),
  passwordInput("passwd", "Password"),
  br(),
  actionButton("Login", "Log in")
)


Ini adalah demo sederhana dengan pengguna yang ditentukan dalam daftar. Dalam skenario dunia nyata, Anda akan menyimpan kredensial pengguna di database atau mengotentikasi pengguna dengan API eksternal. Ini juga tercakup dalam pengguna Shiny application.

Referensi:
Shiny R Studio
Stack overflow


Rabu, 01 Agustus 2018

Grafik dalam hitungan detik


Hanya dalam hitungan detik , dengan coding R programming  dibawah ini :

library(ggplot2)

ggplot(diamonds, aes(x=carat, y=price, color=cut)) + geom_point() + geom_smooth()
Grafik ggplot

Anda langsung bisa melihat hasilnya. Dengan begitu anda bisa mengambil kesimpulan, apa yang harus anda/manajemen/owner lakukan
Ini yang disebut belajar data science dengan R Programming.

Deskripsi data
Dataset berisi 54.000 daftar harga berlian
diamonds dataset

Dim(diamonds) terdiri dari 53940 baris dan 10 variabel/kolom

Variable:
Price  :harga dalam dolar AS (\ $ 326 - \ $ 18.823)
Carat  :berat berlian (0,2-5,01)
Cut     :kualitas potongan (Fair/wajar, Good, SVery Good, Premium, Ideal)
Color  :warna berlian, dari J (terburuk) ke D (terbaik)
clarity:berlian jernih adalah ukuran



Financial Institutions Survey Analysis Part 1

Financial Institutions Survey Analysis  1. Data     Survey data consist of the 99 observations and 73 variables. This study focuses on asses...