Senin, 04 November 2019

R Gadget

R programming mudah di aplikasikan di gadget, di sini akan diberikan contoh sederhana aplikasi  R programming untuk gadget.


Berikut script R nya:


Script ui.R
library(shiny)
library(miniUI)
library(leaflet)
library(ggplot2)

ui <- miniPage(
  gadgetTitleBar("Example R in Gadget"),
  miniTabstripPanel(
    miniTabPanel("Parameters", icon = icon("sliders"),
      miniContentPanel(
        sliderInput("year", "Year", 1978, 2010, c(2000, 2010), sep = "")
      )
    ),
    miniTabPanel("Visualize", icon = icon("area-chart"),
      miniContentPanel(
        plotOutput("cars", height = "100%")
      )
    ),
    miniTabPanel("Map", icon = icon("map-o"),
      miniContentPanel(padding = 0,
        leafletOutput("map", height = "100%")
      ),
      miniButtonBlock(
        actionButton("resetMap", "Reset")
      )
    ),
    miniTabPanel("Data", icon = icon("table"),
      miniContentPanel(
        DT::dataTableOutput("table")
      )
    )
  )
)

Script server.R


library(shiny)
library(miniUI)
library(leaflet)
library(ggplot2)

server <- function(input, output, session) {
  output$cars <- renderPlot({
    require(ggplot2)
    ggplot(cars, aes(speed, dist)) + geom_point()
  })

  output$map <- renderLeaflet({
    force(input$resetMap)

    leaflet(quakes, height = "100%") %>% addTiles() %>%
      addMarkers(lng = ~long, lat = ~lat)
  })

  output$table <- DT::renderDataTable({
    diamonds
  })

  observeEvent(input$done, {
    stopApp(TRUE)
  })
}

Setelah di upload di server shiny.io, maka hasilnya dapat dilihat di gadget


Referensi:
Health prediction
Education
Rstudio
Kursus R

Kamis, 17 Oktober 2019

Gadged dan Machine Learning


Melanjutkan R gadget sebelumnya, kali ini akan diberikan contoh Analisa Modeling menggunakan R programming yang mudah dibaca lewat smartphone, analisa menggunakan data  'Housing Values in Suburbs of Boston' menentukan variable yang paling berpengaruh(Variable Important) terhadap nilai perumahan.

Sebuah contoh penggunaan Machine Learning dengan R programming yang mudah dipelajari dan mudah di aplikasi. 




Seperti biasa file terdiri dari file ui dan file server, scriptnya sbb:

ui.R
 ui <-
    miniPage(
    gadgetTitleBar("Boston Analytic, simple way finding Variable Importance"),
  miniTabstripPanel(
    miniTabPanel("Data", icon = icon("table"),
      miniContentPanel(     
       dataTableOutput("data"))),
    #---keterangan
    miniTabPanel("About Boston Data", icon = icon("list-alt"),
      miniContentPanel(     
       dataTableOutput("About"),
         h3(strong('Housing Values in Suburbs of Boston')),
               # p('Housing Values in Suburbs of Boston',align = 'Justify'),
p('Description : The Boston data frame has 506 rows and 14 columns.',align = 'Justify'),
p('Usage : Boston',align = 'Justify'),
p('Format : This data frame contains the following columns:',align = 'Justify'),
p('1. crim : per capita crime rate by town.',align = 'Justify'),
p('2. zn : proportion of residential land zoned for lots over 25,000 sq.ft.',align = 'Justify'),
p('3. indus : proportion of non-retail business acres per town.',align = 'Justify'),
p('4. chas : Charles River dummy variable (= 1 if tract bounds river; 0 otherwise).',align = 'Justify'),
p('5. nox : nitrogen oxides concentration (parts per 10 million).',align = 'Justify'),
p('6. rm : average number of rooms per dwelling.',align = 'Justify'),
p('7. age : proportion of owner-occupied units built prior to 1940.',align = 'Justify'),
p('8. dis : weighted mean of distances to five Boston employment centres.',align = 'Justify'),
p('9. rad : index of accessibility to radial highways.',align = 'Justify'),
p('10. tax : full-value property-tax rate per 10,000 dollar.',align = 'Justify'),
p('11. ptratio : pupil-teacher ratio by town.',align = 'Justify'),
p('12. black : 1000(Bk - 0.63)^2 where Bk is the proportion of blacks by town.',align = 'Justify'),
p('13. lstat : lower status of the population (percent).',align = 'Justify'),
p('14. medv : median value of owner-occupied homes per 1000s dollar.',align = 'Justify'))),

    #
     miniTabPanel("Plot Model",icon = icon("area-chart"),
    miniContentPanel(
       plotOutput("model"))),

    miniTabPanel("Variable Important",icon = icon("area-chart"),
       miniContentPanel(     
        verbatimTextOutput(("var_importance")))),
   
    miniTabPanel("Variable imp",icon = icon("table"),
       miniContentPanel(     
    plotOutput("pg")))
  ))


server.R

library(shiny)
library(miniUI)
library(ggplot2)
library(dplyr)
library(MASS)
library(randomForest)

data <- Boston
data
dt1 <- data[ ,-4]
dt1
spl <- sample(nrow(dt1),nrow(dt1)*0.7)
train <- dt1[spl, ]
test <- dt1[-spl, ]

model <- randomForest(medv~., data = train)

pmod <- plot(model)
pmod+theme_linedraw()
pmod

pm <- summary(model)
pm

pv <- varImpPlot(model)
pv

var_importance <- data_frame(variable = setdiff(colnames(train), "medv"),
                             importance = as.vector(importance(model)))
var_importance <- arrange(var_importance, desc(importance))
#var_importance
var_importance$variable <- factor(var_importance$variable, levels=var_importance$variable)
pg <- ggplot(data = var_importance, aes(x = variable, y = importance))+
  geom_bar(stat = "identity")+ggtitle("Varible Importance")+theme_linedraw()
pg

server <- function(input, output, session) {
   
  output$data <- renderDataTable({
    data
  })
     output$model <- renderPlot({
    plot(model)
  })
    output$var_importance<- renderPrint({
    var_importance
  })
   output$pg <- renderPlot({
    pg
  })
    observeEvent(input$done, {
    stopApp(TRUE)
  })
}

Selanjutnya tinggal di upload di server shiny, file dibuat untuk versi gadget.

Referensi:
Kursus R programming


Senin, 26 Agustus 2019

R programming dalam dunia kedokteran

R programming mempermudah dunia kedokteran




Dari yang paling sederhana seperti perhitungan BMI(Body Mass Index) sampai tindakan medis yang menggunakan lengan robot. Semua itu berangkat dari analisa dataset yang hanya terdiri dari beberapa variable sampai tidak terbatas jumlahnya. 
Contoh script BMI dengan R programming:

Kamis, 16 Mei 2019

Model H2O untuk analisa fraud

Melanjutkan postingan sebelumnya, di sini akan digunakan model H2O.

Apa yang membuat H2O lebih cepat?
H2O memiliki fitur yang bersih dan jelas untuk langsung menghubungkan tool baik R atau Python, dengan CPU yang ada di mesin anda. Dengan cara ini kita dapat menyalurkan lebih banyak memori, memproses dengan tool yang ada di R atau Python untuk membuat perhitungan lebih cepat.  Package H2O memungkinkan perhitungan berlangsung pada kapasitas CPU 100% . Di samping itu H2O juga dapat dihubungkan dengan cluster di platform cloud untuk melakukan perhitungan. H2O dapat mengkompresi data yang besar, juga melakukan proses secara paralel.
Fraud illustration


Split data
Data displit menjadi 3 bagian, 2 bagian train data dan 1 bagian test data.

splits <- h2o.splitFrame(creditcard_hf,
                         ratios = c(0.4, 0.4),
                         seed = 42)
train_unsupervised  <- splits[[1]]
train_supervised  <- splits[[2]]
test <- splits[[3]]
response <- "Class"
features <- setdiff(colnames(train_unsupervised), response)

Autoencoder
Pertama, menggunakan deep leatning autoencouder pada train_unsupervised  kita cukup mengatur autoencoder = TRUE.
Di sini, dipakai teknik "bottleneck", di mana lapisan tersembunyi di tengah sangat kecil. Ini berarti bahwa model harus dikurangi  dimensinay(dalam hal ini, hingga 2 node / dimensi).
Model autoencoder kemudian akan mempelajari pola input data terlepas dari label kelas yang diberikan. Akan dilihat transaksi credit card  mana yang serupa dan transaksi mana yang outlier atau anomali.

model_nn <- h2o.deeplearning(x = features,
                             training_frame = train_unsupervised,
                             model_id = "model_nn",
                             autoencoder = TRUE,
                             reproducible = TRUE, 
                             #slow - turn off for real problems
                             ignore_const_cols = FALSE,
                             seed = 42,
                             hidden = c(10, 2, 10),
                             epochs = 100,
                             activation = "Tanh")

Simpan model
h2o.saveModel(model_nn, path="model_nn", force = TRUE)
model_nn <- h2o.loadModel("model_nn")
model_nn
## Model Details:
## H2OAutoEncoderModel: deeplearning
## Model ID:  model_nn
## Status of Neuron Layers: auto-encoder, gaussian distribution, Quadratic loss, 776 weights/biases, 16.0 KB, 2,622,851 training samples, mini-batch size 1
##   layer units  type dropout       l1       l2 mean_rate rate_rms momentum
## 1     1    34 Input  0.00 %                                             
## 2     2    10  Tanh  0.00 % 0.000000 0.000000  0.709865 0.320108 0.000000
## 3     3     2  Tanh  0.00 % 0.000000 0.000000  0.048458 0.109033 0.000000
## 4     4    10  Tanh  0.00 % 0.000000 0.000000  0.164717 0.192053 0.000000
## 5     5    34  Tanh         0.000000 0.000000  0.369681 0.425672 0.000000
##   mean_weight weight_rms mean_bias bias_rms
## 1                                         
## 2   -0.039307   0.691302  0.008052 0.965178
## 3   -0.097383   0.314106  0.226376 0.067917
## 4    0.227664   1.089589  0.112032 0.672444
## 5    0.011072   0.605586  0.091124 0.722602
##
## H2OAutoEncoderMetrics: deeplearning
## ** Reported on training data. **
##
## Training Set Metrics:
## MSE: (Extract with `h2o.mse`) 0.001472071
## RMSE: (Extract with `h2o.rmse`) 0.03836757
#Convert to autoencoded representation

test_autoenc <- h2o.predict(model_nn, test)

Reduce hidden layers dimension
Karena saya telah menggunakan model bottleneck dengan dua node di lapisan tersembunyi di tengah, kita dapat menggunakan pengurangan dimensi ini untuk menjelajahi ruang fitur kami (mirip dengan apa yang bisa kami lakukan dengan analisis komponen utama). Kami dapat mengekstrak fitur tersembunyi ini dengan fungsi h2o.deepfeatures () dan memplotnya untuk menunjukkan representasi data input yang berkurang.


Selasa, 14 Mei 2019

Berapa persenkah creditcard yang kena fraud?


Apa yang dimaksud fraud  : Fraud is the crime of getting money by deceiving people.
Menyambung postingan  terdahulu, bahwa aplikasi Benford hanya cocok untuk uji data yang sifatnya time serries, bagaimana jika data yang akan kita analisa terdiri dari banyak variable prediktor dan data target yang tidak balance.

Fraud data preparation
Kita akan ambil bahan dari dataset  creditcard yang ada di Kaggle, terdiri 284315  observasi  dan dicurigai ada 17% nya  creditcard tsb kena fraud. Yang jadi masalah kita harus menentukan dari 17 % tersebut, berapa persenkah data yang benar-benar fraud atau hanya yang kelihatannya fraud saja.
Dimensi dataset
Dimensi dataset creditcard terdiri dari 284315 baris predictor,  dan  variable kolom 31, terdiri dari :
Variable Time dalah waktu dalam detik antara trasaksi pertama dan lainnya.
Variable  V1 - V28, yang merupakan hasil dari transformasi PCA original data(rahasia).
Variable  Amount adalah jumlah uang yang ditransfer.
Class berisi 1=fraud dan 0=bukan fraud

library(tidyverse)

# download from https://www.kaggle.com/dalpozz/creditcardfraud<- creditcard.csv="" div="" read.csv="">

table(creditcard$Class)
#          0      1
#284315    492
#492/284315=17%

creditcard %>%
  ggplot(aes(x = Class)) +
    geom_bar(color = "grey", fill = "lightgrey") +
    theme_bw()



Sabtu, 20 April 2019

Cara deteksi fraud data pemilu

Fraud dan cara deteksinya.
Andai saja th 1977  ketua LPES berani mengumumkan hasil quick count yang dilakukannya, mungkin rejim ORBA akan berakhir lebih cepat, karena hasil quick count waktu itu memang berbeda jauh dengan hasil perhitungan PPI(KPUnya waktu itu), mungkin juga tidak akan terjadi kerusuhan 1998. Tapi sejarah memang sudah tersurat dan tinggal kita ambil hikmahnya.
https://nwcua.org/category/compliance/fraud-alert/

Menyambung postingan sebelumnya, akan dibahas tentang fraud data, tidak ada salahnya kita tengok beberapa tokoh dibalik lahirnya Benford Law, Frank Benford seorang insinyur di General Electric yang membuat formula untuk mencari fraud yang kemudian dikenal dengan Benford Law, sebenarnya landasan teorinya sudah ditemukan sejak lama oleh ilmuwan Amerika Simon Newcomb pada tahun 1880-an.
Teori.
Filosofi teorinya sederhana, bahwa  angka yang mengandung digit 1 selalu lebih besar probabiltas munculnya dibandingkan yang lain, contoh ambil  urutan angka 1-50, probabilitas munculnya angka, 1,10,11,12,13,14,15,16,17,18,19,21,31,41, ada 14 angka, sementara angka yang mengadung digit 2 adalah 2,20,21,22,23,24,25,26,27,28,29,32,42, ada 13 angka, dan 3, 30,31,32,33,34,35,36,37,38,39,43 ada 12 angka, demikian seterusnya. Cerita singkatnya setelah Frank Benford bereksperiment selama 50 th dengan berbagai kasus menemukan formula yang disebut Benford Law :

Kamis, 18 April 2019

Mungkinkah ada fraud di pemilu kita?


Indonesia sudah melakukan pemilu 11 kali, th 2004 mulai dilakukan pemilu terbuka, saat itu pemenangnya adalah SBY menang pada putaran kedua. Setelah quick count dirilis dan memenangkannya, rakyat mulai percaya quick count setelah hasilnya tidak beda jauh dengan hasil perhitungan KPU.
Ini aseli jariku
Sebenarnya Indonesia sudah mulai melakukan quick count sejak th 1977, LPES secara diam diam melakukan quick count tentang pemilu saat itu dan hasilnya  mencengankan karena berbeda dengan hasil yang dirilis PPI(Panitia Pemilih Indonesia) atau KPUnya saat itu. Tapi Rustam Efendi ketuaLPES saat itu tidak berani mengumumkannya di era ORBA.
Selanjutnya th 2004, saat Pilpres dimulai dengan pemilihan langsung oleh rakyat, quick count mulai akrab dan selalu dinanti keahdirannya. Pilpers 2004 yang dimenangkan SBY juga tidak lepas diketahui dengan cepat lewat quick count. Rakyat mulai percaya setelah hasil quick count tidak beda jauh dengan perhitungan KPU.
Sejak saat itu quick count selalu dinantikan kehadirannya saat pencoblosan selesai, karena memang hasil quick count tidak pernah meleset.
Nah yang mungkin membuat kita terheran heran, kenapa kok kubu No 2 bisa mengasilkan quick count yang hasilnya berkebalikan dengan quick count yang dilakukan lembaga survay yang sudah diakui KPU.

Kamis, 11 April 2019

Test kredibilitas client anda

Bagaimana caranya mengetahui sikap seseorang? mudah kalo kita sering bergaul dengannya, apalagi kalo teman kita cuma sedikit, gimana kalo lebih dari 100, 1000, atau bahkan lebih dari jutaan! apalagi sampai milyaran.


Kasus seperti ini mulanya yang mengilhami manusia untuk selalu mencari cara yang mudah, cepat, murah dan tepat. Dengan menggunakan machine learning terselesaikan masalahnya.

Kami coba membuat aplikasi untuk menguji kredibilitas client, data sintetis diambil dari sini, aplikasi ditulis dengan bahasa R dan disimpan dalam server shiny. Sebagian scriptnya ada di sini:

Rabu, 06 Maret 2019

Model Agnostic Explainers untuk Prediksi Individual

Breakdown - Model Agnostic Explainers untuk Prediksi Individual

Paket breakDown adalah alat model agnostik untuk dekomposisi prediksi dari black box.
Tabel Break Down menunjukkan kontribusi setiap variabel terhadap prediksi akhir. Break Down Plot menyajikan grafis yang simple.
Paket ini cocok untuk biner classification dengan model regresi.


Selasa, 05 Maret 2019

Hemat 4 juta dollar dengan Logistic Regression

Memilih model yang tepat untuk analisa bisnis.

Melanjutkan pembicaraan Exploratory Data Analysis di posting sebelumnya, di sini akan dibahas 2 model regresi, yaitu Logistic Regression dan Random Forest Regression. 2 Model ini banyak dipakai dalam bisnis ecommerce, juga bisnis sejenis lainnya, dimana banyak variable yang saling terkait, sehingga sulit bagi manajemen traditional untuk sekedar menebak variable mana yang paling berpengaruh terhadap kelangsungan bisnisnya.
Map of USA
USA Map

Karena orientasi bisnis adalah profit atas ROI(Rate of Investmen), maka perlu dicari model yang tepat, agar manajemen tidak meraba raba bahkan menebak variable mana yang paling berpengaruh, karena hal tersebut akan beresiko tinggi dan mengeluarkan banyak biaya jika salah dalam mengeksekusi kebijakan.
Di akhir artikel saya akan menyajikan skenario bisnis hipotetis di mana dengan menggunakan model yang tepat  dapat memproyeksikan penghematan tahunan sebesar $4juta dalam biaya retensi pelanggan. Penghematan biaya ini dicapai dengan mengoptimalkan ambang model Logistic Regression. Di sini dibuat beberapa asumsi dasar tentang akuisisi pelanggan dan biaya retensi pelanggan, untuk model perusahaan telekomunikasi.


#---Model prediction
Akan diuji terlebih dahulu antara Model Logistic Regression dan Model Random Forest
dengan test validasi dan Kfold validation untuk menghindari over fitting, berikut ulasannya dalam script R:

Minggu, 03 Maret 2019

Kapan pelanggan anda berhenti?

Sebuah analisa data untuk melihat perilaku pelanggan sebuah perusahaan Telekomunikasi, Sample data telecomunikasi diambil dari IMB Watson Analytic Website.

Layanan berbasis langganan biasanya mendapatkan profit dengan tiga cara berikut:
  1. Mencari pelanggan baru
  2. Menaikkan transaksi pelanggan
  3. Mempertahankan pelanggan existing.
Dalam analisa ini saya akan fokus pada retensi pelanggan, melakukan  eksplorasi data, dengan mengawali cleaning  data.
Beberapa pertanyaan yang berfokus pada segmen pelanggan untuk membantu memandu analisis, seperti siapa saja mudah berhenti berlangganan?, kenapa berhenti? bagaimana caranya agar mereka tidak berhenti? Terus promosi apa yang wajib dilakukan? Setelah pertanyaan ini terjawab, selanjutnya akan dibahas model prediktif churn pelanggan, dengan menggunakan berbagai model machine learning.

Kamis, 28 Februari 2019

Solusi murah untuk HRD


Solusi murah untuk HRD
Bukan perkara mudah bagi manajemen untuk menentukan seorang  pegawai, diberikan bonus, dipromosikan naik jabatan atau bahkan harus diberhentikan!. Bagi perusahaan yang pegawainya bisa dihitung dengan jari tentu mudah, tapi bagaimana jika pegawainya sudah ratusan atau bahkan ribuan. Tentu memerlukan bantuan programmer untuk membuat sistimya, masalahnya tidak semua programmer mampu membaca pattern dari lembaran dataset sebuah peristiwa.
HR globe describe the HR is the main variable in management
HR globe

Di sinilah peran seorang data scientist diperlukan untuk mendampingi CEO/stake holder untuk memberi masukan berdasarkan analisa yang dibuatnya, agar tidak salah dalam mengambil keputusan dalam manajemen. Tapi mudahkah mencari data scientist? Tentu tidak mudah, andai adapun mungkin besar salarynya.
Sekarang kita tinjau saja studi kasus HRD dengan mengambil data dari DALEX dan menulis scriptnya dalam bahasa R. Selanjutnya untuk memudahkan melihat hasilnya akan digunakan Shiny application yang di deploy di server shiny.io, tampilan awal untuk data mungkin agak lambat, karena penulis memakai vasilitas server nya free, tapi jika kita sabar dan  sedikit  mau menunggu, hasilnya tidak mengecewakan.


Selasa, 26 Februari 2019

Prediksi Individual Variable terhadap Target

Prediksi Individual Variable terhadap Target.

Melanjutkan posting terdahulu, akan ditambahkan prediksi klasifikasi pilihan mahasiswa
ketika masuk universitas, variablenya terdiri dari:

Tb1
lihat Tb1
Table cara mahasiswa masuk universitas:
1 . sesuai pilihan pertama dan cocok.
2.sesuai pilihan pertama dan tidak cocok.
3.bukan pilihan pertama tapi cocok.
4.bukan pilihan pertama  dan tidak cocok.

Senin, 25 Februari 2019

Faktor apa saja yang mempengaruhi nilai IPK seseorang?


Faktor apa saja yang mempengaruhi nilai IPK seseorang?Tentu pertanyaan itu tidak mudah dijawab, karena banyak factor yang mempengaruhi. Di sini akan dianalisa variable apa saja yang mempengaruhinya, dan prediksi apa saja yang akan didapatkan.
Data awal diambil dari data mahasiswa  data terdiri dari 129 observasi dan 66 variabel, akan dibatasi untuk  variable (MBTI, INTROVERT.I, SENSING.S, THINKING.T, JUDGING.J, E.EKSTROVERT, N.INTUITION, F.FEELING, dan IPK .

Model yang akan dicoba adalah model random forest(rf), model gradient boosting(gbm) dan model neural network(nn),  selanjutnya akan dipilih mana yang paling baik untuk prediksinya.
File excel

Berikut script R dan penjelasannya:

Minggu, 24 Februari 2019

Sepeda Motor Honda terjual 134 juta lebih sampai th 2024

Prediksi penjualan sepeda motor .
Mampukah prasarana yang dibangun pemerintah bisa menekan laju pertambahan sepeda motor di jalan? Pertanyaan yang sulit dijawab. Pemerintah  pasti punya perhitungan  dan rancangan yang diyakininya akan mengurangi laju pertambahan kendaraan bermotor. Benarkah itu?

Gb 1

Di sini akan dibahas laju pertambahan kendaraan bermotor menggunakan data penjualan sepeda motor  Honda dari th 2005-2016, akan dicoba memprediksi penjualan sepeda motor Honda 7 th ke depan. Kira kira berapa jumalahnya pada th tsb.
Dari hasil prediksi nanti kita bisa membandingkan antara laju pertambahan jalan dan laju pertambahan speda motor. Proses menggunakan http://www.rstudio.comR programming,visualisasi dengan Shiny Aplikasi. Berikut script R nya:

Jumat, 22 Februari 2019

Pilih kopi Starbuck apa enaknya?


Pilih kopi Starbuck apa enaknya?
Untuk menjawab pertanyaan di atas, akan kami coba menganalisa data hasil scrapping dari laman twitter Starbuck Indonesia  @SbuxIndonesia(23 Feb 2019, jam 10 wib). Hasil analisa akan dibagi menjadi: 1. Klasifikasi emosi, 2. Klasifikasi polaritas, 3. Analisa Corpus.
Tentunya analisa ini masih terbatas pada quota free yang diberikan oleh twitter, tapi sudah bisa memberi gambaran singkat tentang persepsi  umumnya masyarakat Indonesia terhadap Starbuck, untuk  mencapai hasil yang maximal tinggal mengajukan quota yang diinginkat ke twitter.
Berikut saya berikan script R nya:

Tb1

Tb2

Rabu, 20 Februari 2019

Tokopedia vs Bukalapak



Tokopedia vs Bukalapak
Dunia start up  saat ini lagi booming  di Indonesia, ada beberapa start up dari Indonesia yang berhasil menyandang  gelar “Unicorn”, contohnya Tokopedia, Bukalapak, Traveloka, Gojek dsb. Tentu bukan perkara mudah sebuah start up bisa menyandang gelar “Unicorn”, sedikit kisah tentang Bukalapak, yang pernah hampir bangkrut, bangkrut berarti valuasi start up tsb nyaris nol rupiah(Rp 0.00,-), tapi Achmad Zaky sang foundernya berhasil menyelamatkan dari tragedy kebangkrutan, tentu tidak mudah melakukannya.
Ilustrasi Bukalapak tsb, hanyalah salah satu kasus saja, tentu start up lain juga punya perjuangan dan keunikan tersendiri untuk survive.
Di sini kita hanya akan membahas perbandingan Tokopedia dan Bukalapak, terhadap cuitan twitter, apakah disukai atau tidak, orang sono bilang “like” or “hate”. Kira kira mana yang lebih banyak disukai.
Gb1
Gb2


Dengan menggunakan R programming, data cuitan twiter  @tokopedia dan @bukalapak, tgl 21 Februari 2019, jam 9.30. Berikut saya tuliskan script R nya:

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 




Kapan Puncak Covid19 di Indonesia ?

Prediksi Covid19, kapan mencapai puncaknya? Selamat Idhul Fitri from Home, menjawab pertanyaan kapan covid19 mencapai puncaknya? ...