I’m so Lucky so Do you !

November 24, 2017 Leave a comment

I’m so lucky i can meet these great people as my mentor. Everyone of them shape my thinking and make me who i am today.

image

One of them teach me how to write clean code, with test driven development, good object oriented programming, messaging and distributed system.

One of them teach me how to write high performance code for realtime system.

One of them also teach me how to lead software development, how to learn something completely.

Also algorithm and runtime details, everything that make you great software engineer.

Machine learning and Big Data, it’s not just a buzzword anymore.

They made me who i am today. You can be like me too. You are the special one too. All you need is a good mentor. To teach you have to how fish. Learn the basic

To make you the special one too.

Great Software Engineer.

Great Data Engineer.

Great Data Scientist.

That’s what makes Indonesia different. That’s what makes our Startup and our Enterprise become alive again.

Join us !

It doesnt matter wheter you are children, kids, boys, girls, startup, enterprise, software engineer and technology enthusiast. You can be a makers !

Cheers

Categories: Makers Tags: , , , ,

Rekursif–Stage 1

July 22, 2017 Leave a comment

image

Tutorial ini diperuntukkan untuk para pemula yang sudah mengetahui konsep dasar pemrograman seperti percabangan, perulangan dan fungsi. Kita akan memperkaya pengetahuan kita mengenai fungsi rekursif. Dimana fungsi ini sangat berguna sekali untuk paradigma pemrograman brute force, backtracking dan juga dynamic programming.

Oleh karena itu kita akan mulai dengan sangat berlahan

Tutorial pertama yang sangat cocok digunakan oleh pemula adalah TOKI learning. Anda dapat download dan mempelajari slide tersebut dari website berikut ini.

image

Dari sini anda dapat mendowload secara langsung tanpa perlu memiliki account di toki learning. Saya sangat menyarankan anda membuat account di website tersebut karena website tersebut sangat baik digunakan untuk kompetitif programming.

Setelah anda menguasai dasar-dasar rekursif seperti factorial dan eksekusi dari program rekursif tersebut anda dapat melanjutkan nya dengan berlatih di website codingbat berikut.

http://codingbat.com/java/Recursion-1

image

Buatlah account pada website tersebut untuk dapat menyimpan progress anda pada pelajaran rekursif.

Pada website tersebut anda akan dilatih berpikir secara rekursif dari dasar sekali.

Apakah anda sudah dapat mengerjakan semua latihan pada website tersebut ?

Selamat jika sudah. Sekarang kita akan melanjutkan perjalanan kita ke pelatihan rekursif yang lain. Kita kembali ke website tokilearning yang ada di

https://training.ia-toki.org/

Selesaikanlah semua task yang ada di halaman berikut. Pastikan anda telah register terlebih dahulu untuk website tersebut.

https://training.ia-toki.org/training/curriculums/1/courses/1/chapters/17/problems 

image

Oke sekarang setelah kita menyelesaikan task2 tingkat nasional mari kita menuju ke tingkat dunia. Smile

Ada satu lagi materi rekursif yang cocok untuk pemula dari topcoder. Silahkan baca artikel berikut ini.

https://www.topcoder.com/community/data-science/data-science-tutorials/an-introduction-to-recursion-part-1/ 

Silahkan melakukan register ke website topcoder http://www.topcoder.com.

image

Ada dua latihan yang bagus yang dapat dikerjakan di website ini mengenai rekursif tingkat dasar.

DerivativeSequence dan Truckloads. Anda bisa saja menyelesaikan task tersebut secara iteratif atau tanpa rekursif. Tetapi saya sangat menyarankan selesaikanlah dengan rekursif untuk melatih pola pikir anda.

Saya akan melanjutkan perjalanan rekursif kita di blog post berikutnya.

Cheers

Categories: Uncategorized

Protected: The night of Bipolar with Lizzy

July 8, 2017 Enter your password to view comments.

This content is password protected. To view it please enter your password below:

Categories: Algorithm, Life, Lizzy Tags: , , , , , ,

Perkenalan Machine Learning Algorithm – Part 1

April 27, 2017 Leave a comment

Pada tutorial sebelumnya saya hanya mengajarkan bagaimana alur data science dan machine learning proses. Saya hanya mengajarkan pemakaian tools machine learning dengan menggunakan scikit-learn. Hal ini saya tujukan untuk memberikan pemahaman mengenai end to end skeleton yang dapat anda gunakan pada setiap project machine learning anda. Setelah anda mengetahui apa-apa saja langkah-langkah yang ada maka anda dapat dengan mudah memperdalam masing-masing machine learning algorithm nya.

Pada kesempatan tutorial selanjutnya dalam blog ini kita akan mempelajari mengenai masing-masing algoritma machine learning. Kita akan belajar istilah-istilah yang lazim digunakan dalam dunia machine learning.

Programmer dapat belajar dengan cepat jika diberikan contoh dan deskripsi yang jelas mengenai sesuatu hal. Hal ini juga berlaku terhadap algoritma machine learning. Tutorial akan terdri dari deskripsi algoritma machine learning dan juga bagaimana cara mengimplementasikannya dengan bahasa pemrograman python.

Blog ini ditulis untuk programmer sehingga tidak menggangap anda memiliki pengalaman dalam statistika, probability dan juga linear algebra. Jika anda mengetahui sedikit statistika maka hal itu akan dapat membantu anda tetapi tidak menjadi penghambat anda untuk memahami tutorial tersebut.

Data memiliki bagian terbesar dalam machine learning. Sehingga kita perlu belajar terminologi yang benar ketika berbicara mengenai data. Mari kita mulai saja dengan bagaimana anda berpikir tentang data. Pikirkan saja spreadsheet atau excel file. Kita memiliki kolom, row dan cell.

 

image

Sebuah kolom memiliki data dengan tipe yang sama. Contoh kita memiliki kolom berat, tinggi atau harga. Semua data pada kolom yang sama memiliki skala dan arti yang sama dengan yang lain. Kolom ini sering disebut juga sebagai attribute atau fitur.

Row menggambarkan satu observasi atau single instance. Semakin banyak row yang kita punya semakin banyak example dari domain yang kita pelajari.

Cell merupakan single value dari satu row atau kolom.

Gampangnya kita dapat menyebut data ini sebagai tabular atau dataframe data. Bentuk data seperti ini sangat mudah digunakan dalam machine learning. Ada beberapa term yang digunakan pada perspektif yang berbeda. Ada 2 perspektif yaitu statistical dan computer science

Dari perspektif statistical learning kita melihat bahwa ada fungsi yang akan dicoba dipelajari oleh algoritma machine learning. Jika kita memberikan input value maka akan dicoba diprediksi output valuenya.

Output = f(input)

Kolom tersebut akan menjadi input yang disebut sebagai variable input. Dimana kolom yang akan kita prediksi untuk input yang akan datang disebut sebagai output variable atau response variable.

OutpuVariable = f(InputVariables)

Biasanya kita akan memiliki lebih dari satu input variable. Dalam hal ini kita akan menyebut input variable tersebut sebagai input vector.

OutputVariable = f(InputVector)

Jika anda masih ingat dengan pelajaran statistika anda yang lalu anda akan mengetahui terminologi jadul. Yaitu banyak disebut sebagai dependent dan variable independent.

DependentVariable = f(IndependentVariables)

Untuk lebih sederhananya kita menyingkatnya menjadi

Y = f( X )

Dari computer science perspektif kita sering sekali mendengar bahwa row disebut sebagai entity dan kolom disebut sebagai attribute. Atau sering disingkat menjadi

OutputAttribute = Program(InputAttributes)

Nama lain dari kolom adalah fitur.

Output = Program(InputFeatures)

Observation juga sering disebut sebagai instance. Dan Output sering disebut sebagai prediksi

Prediction = Program(Instance)

Banyak juga orang menyamakan model dan algoritma. Dan kadang digunakan saling menggantikan satu sama lain. Model adalah representasi dari apa yang telah dipelajari dari data atau hasil dari algoritma yang belajar teresbut. Algoritma adalah proses dari pembelajaran tersebut.

Model = Algorithm(Data)

Categories: Machine Learning

Berkompetisi di Kaggle – Part 3– Menambahkan Fitur

April 21, 2017 Leave a comment

Ketika kita menggunakan fungsi .describe() kita menyadari bahwa tidak semua kolom ditampilkan. Hanya kolom-kolom yang mempunyai data numerik saja. Kita tidak dapat mengirimkan data non numerik sebagai input ke algoritma machine learning.

Ada dua pilihan, yaitu mengeluarkan data non numeric pada saat training atau mencari cara untuk mengubah data tersebut ke numerik.

Untuk saat ini kita akan mengabaikan kolom/attribute Ticket, Cabin dan Nama karena kita tidak mengambil informasi yang lebih dari situ.

Mari kita convert Sex ke kolom dengan tipe numerik. Kita dapat mengubahnya dengan mengubah male menjadi 0 dan female menjadi 1.

Hal ini dapat kita lakukan dengan code berikut ini

image

image

Berikutnya kita akan mengubah kolom Embarked ke numerik. Kita juga mengisi missing value dari kolom tersebut.

image

Sekarang kita masih tetap akan menggunakan LogisticRegression dan mengevaluasi feature/attribute terbaru kita.

image

Wow dengan menambahkan beberapa attribute kita dapat mencapai akurasi 78%.

Sekarang kita akan membuat submission dengan menggunakan fitur yang baru. Terlebih dahulu kita akan menyamakan perubahan yang kita lakukan pada dataset training dengan dataset test.

image

 

Kita dapat melakukan copy paste dari code sebelum dan menambahkan fitur yang kita inginkan.

image

Sekarang kita akan submit hasil tersebut ke kaggle.

image

Selamat anda berhasil melakukan kemajuan akurasi menjadi 75%.

Kita akan tetap terus berjuang untuk mendapatkan hasil yang lebih baik pada iterasi berikutnya. Apakah itu dengan menambah fitur atau mengubah algoritma yang kita butuhkan.

Sampai jumpa pada tutorial selanjutnya.

 

Cheers

Categories: Machine Learning