Dapatkah analitik membantu dunia pendidikan?

Dilihat dari sudut pandang bisnis, dunia pendidikan bisa disebut salah satu sektor industri dimana terdapat input dan output yg selalu diukur apakah output yg dihasilkan sudah sesuai dengan kriteria passing grade. Analogi siswa sebagai produk dr sebuah pabrik yg dinamakan sekolah masih relevan walaupun tidak bisa dan tidak seharusnya disamakan for the sake of argument mari kita terima saja dulu.

Dalam proses memproduksi produk pabrik memperhatikan hal2 yg akan menaikkan kualitas dan juga yg menurunkan kualitas. Penyempurnaan proses ini lah yg membuat semakin lama produk yg dihasilkan semakin baik. Hal2 yg diukur ini dinamakan metrik atau measurment. Dengan menggunakan indikator dr metrik2 ini maka kita akan mempunyai visibility terhadap keadaan yg terjadi di pabrik.

Ok, lets back to school. Dunia pendidikan dimana sekolah menjadi ujung tombak dunia pendidikan selama ini mengumpulkan metrik2 seperti absensi, keaktifan, nilai ulangan, nilai tugas kelompok, tugas individu dan metrik2 lainnya. Sekolah dapat (harus) memanfaatkan data2 ini untuk menggerakkan kualitas lulusan dengan menerapkan langkah2 strategis lalu kemudian mengukur dan mengevaluasi metrik2 ini sampai tujuamnya tercapai.

Analitik selama berpuluh tahun telah membantu dunia manufaktur untuk meningkatkan kualitasnya.. saatnya dunia pendidikan mengadopsi analitik yg tidak hanya sekedar deskriptif namun juga predictive dan prescriptive. Untuk ini sepertinya saya perlu bekerja sama untuk membuat semacam quick win. Mampukah? Bisakah?

Advertisements

Cara Benar Membuka File CSV

Walaupun ini hal yang sangat dasar namun ternyata masih lumayan banyak orang yang menemui kesulitan dan mengalami kesusahan dalam membuka data yang ada dalam file csv. Baiklah mari simak penjelasan berikut.

Salah satu tipe file yang paling sering di temui dalam dunia analisa data adalah CSV atau (Comma Separated Value). Dengan ukuran file yang relatif kecil, terus fleksibilitas untuk dapat dibuka di hampir semua software baik dari yang simple seperti excel maupun software2 lain seperti hadoop environment (spark, impala dll) membuat banyak orang membagi file nya dalam format csv. Oh iya, satu lagi keunggulan csv file yakni format data yang tersimpan sesuai dengan format aslinya sehingga kita gak khawatir format file tiba-tiba berubah.

Dari yang saya amati, banyak orang yang biasa menggunakan excel langsung double klik di file csv nya… hasilnyaa… BERANTAKAN.

csv folder

Saat langsung double klik.. hasilnya begini nih… malahan ada yg langsung di alokasikan ke kolom.. masih untung formatnya lasngung bener.. tapi dari pengalaman saya lebih banyak gak benernya..

csv berantakan

Klo udah seperti ini saya sarankan tutup aja file nya dan JANGAN di SAVE. Bisa saja kita menggunakan Text To Column namun untuk kali ini kita buka dengan cara paling aman yg saya ketahui. Kalau ada cara lain yg belum disebutkan.. monggo di tambahkan di komentar :).

Ok Langkah pertama buka file excel kosong. Lalu klik menu DATA dan pilih From Text/CSV.buka menu data csv

Pilih file yang ada di folder masing-masing.

import CSV

Kalau pakai excel terbaru kayak saya, akan muncul seperti dibawah ini. Excel akan menganalisa struktur data dari 200 row teratas ( bisa di ubah jumlah row nya) lalu akan menentukan format data per masing-masing kolom.

import csv baru

Setelah klik LOAD hasilnya akan seperti berikut.

final import csv

Naah.. coba anda perhatikan format datanya sudah jauh lebih rapii.. text di format karakter.. angka di format number. Silahkan anda cek data anda lagi sebelum di olah lebih lanjut. Jika sudah rapih dan benar, data siap untuk diproses lebih lanjut. Semoga berguna 🙂

 

 

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

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