Data Science in Youtube

Got time to kill? Press PLAY and become SMARTER! ▶️ Here are some of my favorite #DataScience and #MachineLearning resources on Youtube:

— ⚠️ NOTE: These videos are fun bite-sized content packed with information!

📍3Blue1Brown Essence of Linear Algebra https://lnkd.in/gPZ–wZ

📍StatQuest (Joshua Starmer) Statistics Made EASY https://lnkd.in/gMHzDcv

📍Siraj Raval Fun Machine Learning & AI https://lnkd.in/gDC6gz4

📍Analytics University Anything Analytics & Machine Learning https://lnkd.in/gWHiaRf

📍AlphaOpt Optimization & Gradient Descent (Short and easy explanation) https://lnkd.in/g_e9sJu

📍3Blue1Brown Simple Visual Explaination on Neural Networks https://lnkd.in/gXcGwM6

📍Two Minute Papers Awesome AI Research For Everyone https://lnkd.in/gzvaVWh

 

Source:Linkedin

Advertisements

CSS-Nearby search

/* Always set the map height explicitly to define the size of the div
* element that contains the map. */
#map {
height: 100%;
}
/* Optional: Makes the sample page fill the window. */
html, body {
height: 100%;
margin: 0;
padding: 0;
}
#right-panel {
font-family: ‘Roboto’,’sans-serif’;
line-height: 30px;
padding-left: 10px;
}

#right-panel select, #right-panel input {
font-size: 15px;
}

#right-panel select {
width: 100%;
}

#right-panel i {
font-size: 12px;
}
#right-panel {
font-family: Arial, Helvetica, sans-serif;
position: absolute;
right: 5px;
top: 60%;
margin-top: -195px;
height: 330px;
width: 200px;
padding: 5px;
z-index: 5;
border: 1px solid #999;
background: #fff;
}
h2 {
font-size: 22px;
margin: 0 0 5px 0;
}
ul {
list-style-type: none;
padding: 0;
margin: 0;
height: 271px;
width: 200px;
overflow-y: scroll;
}
li {
background-color: #f1f1f1;
padding: 10px;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
li:nth-child(odd) {
background-color: #fcfcfc;

lo {
background-color: #f1f1f1;
padding: 10px;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
lo:nth-child(odd) {
background-color: #fcfcfc;

}
#more {
width: 100%;
margin: 5px 0 0 0;
}

Java script-search nearby

// This example requires the Places library. Include the libraries=places
// parameter when you first load the API. For example:
// <script src=”https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&libraries=places”&gt;

var map;

function initMap() {
// Create the map.-6.5404435,106.7970417
var pyrmont = {lat: -6.5404435, lng: 106.7970417};
map = new google.maps.Map(document.getElementById(‘map’), {
center: pyrmont,
zoom: 17
});

// Create the places service.
var service = new google.maps.places.PlacesService(map);
var getNextPage = null;
var moreButton = document.getElementById(‘more’);
moreButton.onclick = function() {
moreButton.disabled = true;
if (getNextPage) getNextPage();
};

// Perform a nearby search.
service.nearbySearch(
{location: pyrmont, radius: 500, type: [‘store’]},
function(results, status, pagination) {
if (status !== ‘OK’) return;

createMarkers(results);
moreButton.disabled = !pagination.hasNextPage;
getNextPage = pagination.hasNextPage && function() {
pagination.nextPage();
};
});
}

function createMarkers(places) {
var bounds = new google.maps.LatLngBounds();
var placesList = document.getElementById(‘places’);

for (var i = 0, place; place = places[i]; i++) {
var image = {
url: place.icon,
size: new google.maps.Size(71, 71),
origin: new google.maps.Point(0, 0),
anchor: new google.maps.Point(17, 34),
scaledSize: new google.maps.Size(25, 25)
};

var marker = new google.maps.Marker({
map: map,
icon: image,
title: place.name,
position: place.geometry.location
});

var li = document.createElement(‘li’);
li.textContent = place.name;
placesList.appendChild(li);

var lo = document.createElement(‘lo’);
lo.textContent = place.types;
placesList.appendChild(lo);

bounds.extend(place.geometry.location);
}
map.fitBounds(bounds);
}

Must known: Decision Tree

Saya tidak bisa recall ingatan saya apakah dulu waktu kuliah pernah diajarkan mengenai decision tree atau sudah. Seharusnya sih diajarkan di mata kuliah analisis data kategorik tapi kok yang ingat malah CHAID… Ya sudahlah.

Menurut saya decision tree ini adalah analisa dengan hasil analisa yang paling mudah untuk dipahami, baik quant maupun non quant. Namany sudah menggambarkan bahwa analisa ini menggunakan konsep pokok, dahan dan ranting dari sebuah pohon.

colorful-natural-tree

Decision tree adalah analisa yang digolongkan sebagai supervised learning dimana ciri dari analisanya adalah dengan adanya target/dependent variable yang biasa di lambangkan dengan huruf Y. Decision tree dapat melakukan kalkulasi baik untuk variable kategorik/ discrete mapun numerik/ continuous. Untuk jenis data kategorik dinamakan CLASSIFICATION TREE sedangkan untuk numerik continuous dinamakan REGRESSION TREE.

Jika anda sudah terbiasa dengan regresi linear, maka anda tidak akan mengalami kesulitan memahami decision tree. Pola pengujian hipotesis pada decision tree menambahkan satu layer baru untuk melakukan pemisahan antar observasi kedalam group-group yang homogen. Disinilah perbedaan mendasar antara decision tree denga regresi linear. Regresi linear hanya berhenti sampai mendapatkan uji masing-masing variabel sedangkan decision tree menguji masing-masing variable apakah dapat memisahkan observasi lebih kecil lagi menjadi group-group yang homogen.

Sebelum melangkah lebih jauh, sebaiknya kita mengenal beberapa istilah yang digunakan dalam decision tree.

  1. Root node: pokok dari tree atau pohon yang kita miliki, seluruh observasi dan populasi ada pada root node ini.
  2. Decision node: tempat terjadinya pemisahan/ splitting dari satu node menjadi beberapa node yang lebih kecil
  3. Splitting: proses pemisahan node
  4. Terminal node: posisi terakhir yang tidak lagi memungkinkan terjadinya splitting.
  5. Pruning: Proses penghilangan terminal sub nodes dari decision node.

tree

Apa kriteria pemisahan node?

  1. Gini index: Konsep dasarnya adalah jika kita memiliki populasi yang homogen, peluang terbentuknya dua group yang homogen adalah 1. Gini index digunakan hanya untuk data kategorik (khusunya binary split), semakin tinggi gini index nya semakin homogen group yang di split–ini dia yang diharapkan. FYI saja CART menggunakan gini index untuk pemisahan binary. Formula gini index itu simple yakni p^2*(1-p)^2, artinya perkalian antara peluang sukses dan gagalnya.
  2. Information gain–entropy: Konsep dasarnya adalah semakin homogen sebuah populasi maka semakin sedikit informasi yang dibutuhkan untuk melakukan split. Artinya jika populasi homogen maka entropy nya 0, jika populasi terbagi menjadi dua persis 50:50 maka entropinya menjadi 1.
  3. Chi-square: Seperti yang kita tahu, chi square dapat digunakan untuk menguji sebaran dari dua populasi. nah konsep ini yang kemudian digunakan untuk menentukan apakah sebuah node akan di split atau tidak.
  4. Reduction variance: Untuk tiga metode diatas ketiganya digunakan untuk variabel kategorik, nah untuk variable continuous, kita menggunakan variance reduction untuk splitting. Jika anda masih ingat konsep variance, maka anda pasti paham populasi yang seragam memiliki variance yang lebih kecil. nah, oleh karena itu variable yang memiliki variance paling kecil ini lah yang ditempatkan sebagai split pertama.

catatan ini adalah catatan pribadi saya, bisa jadi ada banyak kelemahan, namun untuk saya pribadi ini sudah cukup dijadikan pegangan. Jika anda merasa tulisan ini berguna, silahkan di share dan di jangan lupa komentar.

 

 

Overfitting: To good to be true alias model jago kandang

Model dalam statistika digunakan untuk memprediksi suatu nilai dengan memasukkan nilai-nilai lain kedalam sebuah formula dengan harapan nilai yang dihasilkan dari model tersebut dekat dengan nilai aktualnya. Sebagaimana kita ketahui bahwa dalam membuat sebuah model, kita membagi data menjadi dua bagian yakni data training dan data testing. Biasanya saya membaginya 70% training dan 30% testing.

fittings

Setelah kita mendapatkan model dengan mempertimbangkan kelayakan model/ goodness of fit maka kita melakukan testing dengan data testing kita. Tapi masalahnya adalah bagaimana jika hasil goodness of fit, let’s say R square nya 99.9999999%? Anda merasa puas? Jawaban saya it’s too good to be true! Pengalaman saya, jika sebuah model memiliki R-square yang terlalu mendekati 100% maka sebaiknya kita menaruh curiga apakah  model kita overfitting? Apa lagi ini overfitting??

Anda tentu sudah familiar dengan error bukan? Jika model anda menghasilkan error untuk data yang training sangaaat kecil, maka artinya model tersebut bagus…. tapii… pada saat model anda digunakan untuk data lain diluar dari data yang anda gunakan maka kemungkinannya adalah error yang dihasilkan akan sangat tinggi. Dengan kata lain model anda jago kandang. hehe.

Kesimpulannya, jika anda menemukan sebuah model memiliki hasil goodness of fit sempurna… hal ini tanda awal yang baik bahwa yang anda lakukan sudah cukup baik. Namun demikian anda perlu memperhatikan bahwa model ini akan digunakan untuk data lain diluar dari data yang anda latih. Untungnya anda bisa membuat model anda lebih masuk akal dengan jurus yang bernama “regularization”. Stay tune in the datatalker!

Binomial Distribution (Bahasa:Sebaran Binomial)

Distribution atau sebaran adalah salah satu konsep yang penting atau bisa dibilang paling penting dalam statistika. Bagi mereka yang mau belajar data science/ analytics konsep  distribusi binomial ini adalah hal yang wajib dipahami. Dari namanya bi= dua  dan nomial=nom=nama,  seharusnya anda bisa menebak bahwa distribusi ini digunakan untuk dua kejadian. Salah satu contoh kejadian yang dapat dijelaskan oleh distribusi binomial adalah pelemparan koin dimana kemunculan angka dan gambar.

Jika sebuah koin simetris dilempar 10 kali maka kita akan mendapatkan n=10 dan jika yang kita amati adalah munculnya angka dengan peluang 50% (kita tandai dengan sukses) dan gambar (gagal) dengan peluang 50%. Maka kita dapat menuliskan sebaran ini dengan n=10, p=0.5 dan 1-p=0.5.

tyjr4

Grafik diatas cukup jelas menunjukkan jika kejadian diulang 40 kali dan koin yang digunakan adalah simetris p=0.5 maka dapat ditunjukkan oleh grafik berwarna biru. Kita lihat bahwa rata-rata kemunculan angka ditunjukkan oleh garis biru tertinggi yakni 20. Munculnya angka rata-rata 20 ini dapat juga kita rumuskan dengan nxp=40 x 0.5.

Dalam pekerjaan sehari-hari banyak sekali kejadian yang dapat dijelaskan dengan distribusi binomial. Di perbankan anda menemukan seorang debitur gagal bayar atau tidak, di dunia telco dan fmcg sering kali diperhatikan mengenai customer yang loyal dan tidak atau di dunia kedokteran untuk mengetahui sebuah obat dapat menyembuhkan penyakit atau tidak. Dengan banyaknya penggunaan distribusi binomial ini maka semakin kuat alasan kita untuk lebih memahami distribusi ini.

 

Reff:

https://towardsdatascience.com/statistics-review-for-data-scientists-and-management-df8f94760221

https://math.stackexchange.com/questions/2123873/is-the-maximum-of-a-probability-distribution-function-of-a-binomial-distribution

 

 

Data Type: Discrete vs Continues

Minggu lalu saya diminta oleh rekan saya untuk membantu sebuah unit baru di kantor saya. Unit ini kedepannya akan sangat intense menggunakan data sebagai bagian dari pekerjaannya. Saya diberikan sebuah set data untuk kemudian di analisa untuk membuktikan bahwa konsep-konsep statistika dapat diaplikasikan dalam pekerjaan mereka. Setelah menyiapkan beberapa halaman slide, saya pun datang dan menjelaskan bagaimana langkah-langkah yang saya lakukan sampai menghasilkan model sesuai dengan harapan mereka. Ternyata… sebagian besar dari audiens masih sangat awam dengan jargon-jargon statistika. Hal ini membuat saya kembali berpikir bahwa kembali menguatkan konsep dasar tidak akan pernah menjadi kesia-siaan. Baiklah, mari kita mulai dengan discrete dan continues.

Sederhananya variabel discrete adalah variabel yang berasal dari operasi menghitung. Jumlah gelas di dalam lemari, jumlah buah di dalam keranjang. Hitungan sederhana seperti 1,2,3 dst. Tidak ada angka desimal di dalam variabel discrete.07778a4906f57221506f44beef50cf6d

Sedangkan variabel continues adalah variabel yang memiliki selisih antara dua variabel 0 hanya jika variabel tersebut dikurangi dengan dirinya sendiri. Ciri-cirinya adalah adanya angka decimal 1.991, 1.9999992 dst. Contohnya adalah berat badan, tinggi badan, interval waktu dll.

cant-lose-weightPenentuan variabel ini sangat berpengaruh terhadap analisa data yang akan anda lakukan kedepannya. Jika anda mempunyai variable discrete akan lebih cocok jika anda menggunakan median untuk ukuran pemusatan dan untuk variabel continues akan lebih tepat jika anda menggunakan rata-rata. Jika anda masih bingung dengan ukuran pemusatan mungkin anda ingin membaca tulisan saya tentang Ukuran Penyebaran Data.

Biasanya saat anda melakukan import data kedalam software anda akan diminta untuk mendifinisikan variabel yang anda masukkan. Nah dengan mendefinisikan data anda dengan tipe data yang tepat anda tidak akan mengurangi masalah yang mungkin anda hadapi pada langkah-langkah berikutnya.

 

Ketika rata-rata tidak cukup lagi…

Siapa yang tidak kenal dengan rata-rata?? Jika anda sering kali melakukan pengolahan data, maka perhitungan rata-rata hampir bisa dipastikan akan selalu ada dalam laporan yang anda buat. Namun menyajikan rata-rata saja ternyata sangat tidaklah cukup… Percaya deh.. Gak cukup banget. Jika ada yg menyajikan data hanya dengan rata-rata saja maka hal ini akan membuat kesimpulan yang anda buat menjadi melenceng dari yang seharusnya. Kenapa??

Hal ini sangat berkaitan erat dengan variasi data yang anda miliki. Buatlah histogram sederhana untuk mengetahui apakah data anda punya data ekstrim? Data ekstrim adalah data yang saaaangat besar atau sangaaat kecil dibandingkan dengan nilai tengah nya.

Nilai rata-rata memberikan bobot yang sama untuk semua data. Sehingga nilai yang besaaar banget atau yang keciiil bgt kan membuat rata-rata bergeser ke besar atau yang kecil. Saran saya selalu bandingkan nilai rata-rata dengan nilai tenga (median). Lebih bagus lagi jika anda tambahkan kuartil atau percentilnya.