:::: MENU ::::

Posts Categorized / machine learning

  • Dec 20 / 2017
  • Comments Off on [Belajar Machine Learning 2] Loading dan Eksplorasi Data dengan Pandas dan Scikit-Learn
Artificial Intelligece, Big Data, Implementation, machine learning, Uncategorized

[Belajar Machine Learning 2] Loading dan Eksplorasi Data dengan Pandas dan Scikit-Learn

Cara paling cepat untuk menguasai sebuah tool atau platform adalah dengan membuat sebuah end-to-end project yang mencakup langkah-langkah utama dalam implementasi machine learning. Langkah tersebut antara lain adalah : loading data, summary data, evaluasi algoritma dan membuat beberapa prediksi.

Membuat end-to-end project berarti membiasakan diri dengan proses machine learning, dan kasus yang telah dikerjakan dapat menjadi semacam template yang bisa digunakan untuk mengolah berbagai dataset lainnya.

Untuk memulainya tidak perlu menggunakan dataset atau kasus yang terlalu rumit. Anda bisa memilih data yang tersedia di dalam library scikit-learn. Daftar lengkap datasetnya dapat dilihat di sini.

Dalam artikel ini akan digunakan dataset iris sebagai contoh kasusnya.

Dataset iris ini sangat sesuai untuk latihan karena :

  • Ukurannya tidak terlalu besar, yaitu 4 atribut dan 150 row, sehingga tidak akan membebani memori
  • Atributnya sederhana. Seluruh atribut numerik dalam unit dan skala yang sama, sehingga tidak memerlukan transformasi khusus

Meskipun teknik dan prosedur dalam penerapan machine learning sangat bervariasi, namun secara garis besar sebuah project machine learning memiliki tahapan sebagai berikut:

  • Definisi masalah
  • Menyiapkan data
  • Memilih/mengevaluasi algoritma
  • Melakukan tuning untuk memperbaiki hasil
  • enyajikan hasil

Salah satu hal yang paling penting dalam langkah-langkah awal project adalah memahami data. Dalam artikel ini akan disajikan mengenai loading dan beberapa fungsi eksplorasi data untuk melihat bagaimana dataset yang akan kita proses nantinya.

1. Cek Instalasi

Jalankan perintah-perintah berikut untuk mengecek versi package yang terinstall.
Versi yang package yang akan gunakan mestinya lebih baru atau setidaknya sama dengan yang terdapat pada output di bawah ini. Jika versi package anda sedikit tertinggal, mestinya tidak masalah, karena biasanya API-nya tidak terlalu banyak berubah. Anda masih dapat menjalankan code yang ada dalam latihan di bawah ini. Tapi jika ingin memperbaharui package yang ada, langkah update package dapat dilihat di posting sebelumnya.

Belajar_ML_2

Output yang didapatkan kurang lebih sbb (versi bisa berbeda):

Belajar_ML_2

Berikutnya adalah loading package yang akan digunakan. Lakukan import untuk mengecek apakah instalasi sudah ok. Jika terdapat error, stop dan resolve. Package di bawah ini perlu untuk menjalankan latihan dalam artikel ini.

Petunjuk setting environment bisa dilihat di posting sebelumnya. Jika terdapat pesan error yang spesifik, anda bisa mencari cara resolve-nya di forum-forum seperti Stack Exchange (http://stackoverflow.com/questions/tagged/python).

Belajar_ML_2

2. Loading Data

Jika langkah di atas berjalan dengan baik, load dataset iris dari package sklearn dengan menjalankan fungsi berikut:

Belajar_ML_2

Tips : Untuk mengetahui jenis sebuah object atau fungsi dalam python, kita bisa mengetikkan nama object atau fungsi yang ingin kita ketahui, diikuti tanda tanya, seperti pada contoh berikut :

Belajar_ML_2

Outputnya adalah informasi dari object tersebut, seperti berikut:

Belajar_ML_2

Untuk mengetahui apa saja yang terdapat di dalam dataset iris, tampilkan seluruh keys dalam dataset tersebut dengan perintah berikut ini:

Belajar_ML_2

Outputnya berupa daftar dari keys atau kata kunci yang terdapat dalam dictionary:

Belajar_ML_2

Dari outputnya kita dapat mengetahui bahwa dalam dataset iris terdapat key berikut : data, target, target_name, DESCR dan feature_names. Kita dapat mengakses dan menampilkan value-nya dengan key tersebut. Misalnya untuk menampilkan deskripsi dataset, lakukan sbb:

Belajar_ML_2

Output:

Belajar_ML_2

Seperti tampak pada deskripsi di atas, dataset iris memiliki 4 atribut numerik : sepal length, sepal width, petal length, dan petal width.

Terdapat 3 jenis spesies (class), yaitu

  • Iris-Setosa
  • Iris-Versicolour
  • Iris-Virginica

Terdapat 150 entry (150 rows data), yang terbagi rata ke dalam 3 kelas tersebut.

Atribut disimpan di elemen “data”, dan kelas/species di elemen “target”. Keduanya bertipe numerik.

Kita lihat bentuk datanya, dengan ‘mengintip’ beberapa baris data dan target, dengan command berikut:

Belajar_ML_2

Dari output di bawah terlihat bahwa format data adalah numerik, dan nilai target menunjukkan indeks dari array target_names.

Belajar_ML_2

3. Convert dataset ke dalam Pandas DataFrame

Untuk memudahkan pemrosesan dan eksplorasi data, kita akan mengubah dataset tersebut ke dalam format pandas DataFrame.

Pandas adalah package yang dibangun di atas library numPy. Pandas menyediakan data struktur yang efisien dan fleksibel, yang dirancang untuk melakukan analisis data dalam Python.
Keterangan lebih lanjut mengenai pandas dan berbagai object di dalamnya dapat dilihat di sini (https://pandas.pydata.org/pandas-docs/stable/)

Berikut ini command untuk mengubah dataset iris menjadi Pandas Dataframe:

Belajar_ML_2

4. Eksplorasi Dataset

Beberapa hal yang akan kita lakukan adalah :

  • Melihat dimensi dataset
  • Contoh datanya
  • Ringkasan statistik semua atribut
  • Mengelompokkan data berdasar variabel target

Yang pertama kita lihat dimensi datanya (jumlah row dan kolom) dengan menggunakan atribut shape

Belajar_ML_2

Output:
Belajar_ML_2

Selanjutnya kita ‘intip’ contoh data dengan menggunakan fungsi head. Dari sini terlihat dataset kita memiliki 4 atribut numerik dan 1 atribut string.

Belajar_ML_2

Output:

Belajar_ML_2

Statistical Summary

Selanjutnya kita lihat summary setiap atribut dengan fungsi describe. Fungsi ini menampilkan summary statistik untuk atribut numerik dari dataset kita, termasuk di dalamnya count, mean, nilai minimum dan maksimum, serta nilai2 persentilnya.

Belajar_ML_2

Dari summary tersebut terlihat bahwa seluruh nilai numerik memiliki skala yang sama (yaitu dalam cm), dan memiliki range yang serupa juga, yaitu antara 0 sampai 8 cm.

Belajar_ML_2

Distribusi Data

Bagaimana dengan distribusi datanya? Untuk melihat distribusi data, kita kelompokkan datanya berdasarkan kelas sbb:

Belajar_ML_2

Output:

Belajar_ML_2

Terlihat bahwa data terbagi menjadi 3 kelas dengan jumlah yang sama, yaitu masing-masing 50 row.

Visualisasi Data

Kita juga dapat melihat ‘bentuk’ data dengan lebih jelas dengan cara memvisualisasikannya. Yang pertama kita bisa melihat distribusi masing-masing atribut dengan menampilkannya dalam bentuk boxplot.

Belajar_ML_2

Belajar_ML_2

Kita juga bisa melihat sebaran datanya dengan bentuk histogram.

Belajar_ML_2

Belajar_ML_2

Dari histogram di atas tampak bahwa setidaknya ada 2 variabel yang kemungkinan memiliki sebaran normal. Asumsi ini dapat kita jadikan pertimbangan ketika memilih algoritma nantinya.

Interaksi Antar Variabel

Selanjutnya kita lihat interaksi antara variabel dengan menampilkan scatterplot. Hal ini bermanfaat untuk melihat adanya hubungan antara variabel-variabel input. Indikasi adanya korelasi antar variabel adalah dari pola scatterplot yang membentuk garis diagonal.

Belajar_ML_2

Belajar_ML_2

Setelah kita mendapat gambaran mengenai dataset yang akan kita proses, kita siap melakukan testing dan tuning algoritma.

Versi Jupyter notebook dari latihan ini dapat di unduh di :
https://github.com/urfie/belajar-python/blob/master/Belajar%20Machine%20Learning%20-%20Load%20and%20Explore%20Dataset.ipynb

Sumber : https://machinelearningmastery.com/machine-learning-in-python-step-by-step/

Contributor :


M. Urfah
Penyuka kopi dan pasta (bukan copy paste) yang sangat hobi makan nasi goreng.
Telah berkecimpung di bidang data processing dan data warehousing selama 12 tahun.
Salah satu obsesi yang belum terpenuhi saat ini adalah menjadi kontributor aktif di forum idBigdata.
  • Nov 21 / 2017
  • Comments Off on [Belajar Machine Learning 1] – Mempersiapkan Environment Python dengan Anaconda untuk Machine Learning
Artificial Intelligece, Big Data, machine learning, Uncategorized

[Belajar Machine Learning 1] – Mempersiapkan Environment Python dengan Anaconda untuk Machine Learning

Dalam beberapa seri artikel ke depan akan disajikan panduan praktis untuk memulai machine learning (dan deep learning) menggunakan Python.

Banyak di antara kita yang ingin belajar namun bingung dari mana harus memulainya. Mempelajari Machine learning, seperti dibahas pada artikel sebelumnya, paling cepat dilakukan dengan cara mengerjakan sebuah project. Rangkaian artikel ini akan memberikan beberapa arahan atau ide untuk anda.

Mengapa menggunakan python? Saat ini Python termasuk bahasa pemrograman yang paling banyak digunakan dalam data science dan machine learning.

Pada seri pertama ini akan dibahas mengenai bagaimana mempersiapkan environment Python untuk membuat program machine learning, dengan menggunakan Anaconda. Langkahnya adalah sbb:

  1. Download Anaconda
  2. Install Anaconda
  3. Start dan Update Anaconda
  4. Menggunakan dan me-manage conda environment untuk versi python yang berbeda-beda

  1. Download Anaconda
  2. Bagian ini mengenai bagaimana mendownload package Anaconda Python untuk platform anda.

    • Kunjungi download page Anaconda
    • Pilih installer yang sesuai dengan platform anda (Windows, OSX, atau Linux)
    • Pilih Python 3.x (dalam hal ini 3.6), proses download installer akan langsung berjalan
      Catatan : Saat ini terdapat dua major version Python yang masih bayak digunakan, yaitu 2.x dan 3.x, namun mengingat trend dewasa ini lebih mayoritas implementasi dan pengembangan dilakukan dengan dan untuk python 3.x, dan support untuk versi 2.x sudah akan berakhir pada 2020, maka disarankan menggunakan versi ini. Python 2.x hanya digunakan untuk kebutuhan khusus yang tidak/belum disupport python 3.x.
    • Untuk windows 64 bit, installer python 3.6 berukuran kurang lebih 515 MB dengan nama file Anaconda3-5.0.1-Windows-x86_64.exe

  3. Install Anaconda
  4. Untuk menginstall Anaconda, double-click file installer yang sudah diunduh pada langkah 1 di atas. Sebelumnya, pastikan anda memiliki priviledge yang cukup untuk menginstall software baru di sistem anda.

    Setelah doubleclick, akan muncul aplikasi installer, ikuti langkah-langkah yang muncul. Waktu instalasi biasanya di bawah 10 menit dan memerlukan disk space antara 1 atau 2 GB.

    gambar_01

    Anaconda Navigator dan environment grafis Anaconda akan sangat berguna nanti, namun untuk saat ini kita akan memulai dengan environment command line Anaconda yang disebut conda.

    gambar_02
    Anaconda Navigator

    Conda cukup cepat dan simple, serta menampilkan hampir semua eror message, sehingga akan lebih mudah untuk mengetahui apakah environment yang anda install sudah dapat bekerja dengan baik dan benar.

    1. Cek instalasi dan versi python
    2. Untuk mengecek apakah conda terinstall dengan baik, lakukan langkah ini:

      • Buka terminal (command line window)
      • Cek instalasi dengan mengetikkan : conda -V
      • Cek versi Python dengan : python -V

      Outputnya kurang lebih sebagaimana berikut:

      gambar_03

      Untuk memastikan environment conda sudah up-to-date, lakukan update dengan cara:

      conda update conda

      conda update anaconda

    3. Cek environment SciPy
    4. Langkah berikutnya adalah memeriksa versi library-library yang umumnya digunakan untuk pemrograman machine learning, yaitu: scipy, numpy, matplotlib, pandas, statsmodels, dan scikit-learn.

      Untuk melakukannya, masuk ke python prompt, dan jalankan perintah-perintah berikut ini:

      # scipy
      import scipy
      print(‘scipy: %s’ % scipy.__version__)
      # numpy
      import numpy
      print(‘numpy: %s’ % numpy.__version__)
      # matplotlib
      import matplotlib
      print(‘matplotlib: %s’ % matplotlib.__version__)
      # pandas
      import pandas
      print(‘pandas: %s’ % pandas.__version__)
      # statsmodels
      import statsmodels
      print(‘statsmodels: %s’ % statsmodels.__version__)
      # scikit-learn
      import sklearn
      print(‘sklearn: %s’ % sklearn.__version__)

      Outputnya kurang lebih sbb (di bawah ini adalah versi yang terakhir pada saat artikel ini dibuat) :

      gambar_04

      Untuk memutakhirkan versi library yang digunakan, bisa dilakukan secara individual dari command prompt, misalnya untuk scikit-learn, lakukan:

      conda update scikit-learn

      Sekarang anda sudah siap untuk mulai membuat project machine learning dalam Python.

  5. Menggunakan Environment Anaconda

  6. Dalam Anaconda, anda dapat menggunakan beberapa versi python dan library pendukung yang berbeda-beda dalam Anaconda. Caranya adalah dengan menggunakan conda environment.

    Untuk melihat environment yang ada, gunakan:

    conda env list

    Untuk membuat environment baru, misalnya dengan nama myenv, lakukan langkah berikut:

    conda create –name myenv

    Anda bisa membuat environment dengan memilih versi python yang diperlukan, misalnya python 2.7 untuk environment dengan nama myenv27, dengan cara

    conda create -n myenv27 python=2.7

Versi lengkapnya dapat dilihat di anaconda user guide bagian Managing Environment.

Sumber :
https://machinelearningmastery.com/setup-python-environment-machine-learning-deep-learning-anaconda/

Contributor :


M. Urfah
Penyuka kopi dan pasta (bukan copy paste) yang sangat hobi makan nasi goreng.
Telah berkecimpung di bidang data processing dan data warehousing selama 12 tahun.
Salah satu obsesi yang belum terpenuhi saat ini adalah menjadi kontributor aktif di forum idBigdata.
  • Oct 06 / 2017
  • Comments Off on 8 Tips Praktis Mempelajari dan Mendalami Machine Learning
Artificial Intelligece, Big Data, Implementation, machine learning

8 Tips Praktis Mempelajari dan Mendalami Machine Learning

8_tips_praktis_mempelajari_machine_learning

AI, khususnya Machine learning adalah salah satu bidang yang paling ‘sexy’ akhir-akhir ini. Raksasa teknologi seperti Google dan Baidu menginvestasikan antara 20 sampai 30 milyar US$ untuk riset, deployment dan akuisisi di bidang AI pada tahun 2016. Dan di tahun mendatang masih akan semakin banyak bidang yang memanfaatkan AI, dan semakin luas pula kesempatan kerja di bidang ini.

Saat ini sebenarnya adalah waktu yang sangat tepat untuk terjun ke dunia machine learning, karena seiring dengan pesatnya perkembangan bidang ini, banyak sekali tools dan platform yang sifatnya open-source yang dapat digunakan oleh siapapun. Di samping itu banyak pula informasi yang berupa tutorial, kuliah online, maupun berbagai tips yang bisa diakses secara gratis di internet.

Namun berlimpahnya sumber ilmu maupun alat kadang justru membuat kita merasa kewalahan dan bahkan bingung, dari mana harus memulai.

Jadi bagaimana cara memulai belajar machine learning?

Berikut ini beberapa tips yang diberikan oleh Ben Hamner, CTO dan Co-Founder Kaggle.

  1. Pilih permasalahan yang diminati
    Cara yang cepat untuk menguasai sebuah teknik, tools ataupun bahasa pemrograman adalah dengan menggunakannya untuk memecahkan permasalahan. Pilih problem yang menarik dan familiar, agar membuat kita lebih fokus dan termotivasi untuk menyelesaikannya.Mengerjakan suatu permasalahan secara langsung juga membuat kita lebih mudah memahami dan menyelami machine learning dibandingkan jika kita hanya membacanya secara pasif.
  2. Buat solusi singkat dan cepat, tidak perlu sempurna
    Solusi yang dibuat di sini tidak perlu sempurna, karena tujuan langkah ini adalah untuk menghasilkan proses dasar dan end-to-end secara cepat, mulai dari membaca dan mengunggah data, kemudian memprosesnya menjadi format yang sesuai untuk machine learning, menentukan model dan melakukan training, serta menguji model dan mengevaluasi kinerjanya.Intinya adalah memberikan pengalaman hands-on sehingga kita mendapat gambaran dasar tentang proses implementasi machine learning.
  3. Kembangkan dan perbaiki solusi tersebut
    Setelah mendapatkan gambaran dasar, mulailah menggali kreatifitas.Perbaiki tiap komponen dari solusi awal, dan lihat pengaruh dari tiap perubahan terhadap solusi yang dihasilkan, untuk menentukan bagian mana yang akan kita utamakan.
    Sering kali kita bisa mendapatkan hasil yang lebih baik dengan memperbaiki preprocessing dan data cleansing, dibandingkan dengan memperbaiki model machine learningnya sendiri.
  4. Tulis dan share solusi yang sudah dibuat
    Feedback adalah sebuah hal yang penting dalam proses belajar, dan cara terbaik untuk mendapatkan masukan adalah dengan menuliskan dan men-share-nya. Menuliskan proses dan solusi yang dibuat berarti mendalami kembali dengan perspektif lain, dan membuat kita lebih memahaminya. Dengan membagikan tulisan, kita memberi kesempatan bagi orang lain untuk memahami apa yang sudah kita kerjakan dan memberi feedback yang berguna bagi proses belajar kita.Keuntungan lain dengan rajin menulis adalah kita membangun portfolio machine learning dan menunjukkan keahlian kita, yang dapat sangat bermanfaat bagi karir di masa datang.
  5. Ulangi langkah 1-4 untuk problem yang lain
    Ulangi proses di atas dengan permasalahan dari bidang dan jenis data yang lain. Jika sebelumnya menggunakan data tabular, cobalah mengerjakan problem dengan teks yang tidak terstruktur, dan problem lain dengan image. Apakah permasalahan yang dikerjakan sebelumnya memang dirancang untuk machine learning? Cobalah mengerjakan problem dari permasalahan bisnis atau riset yang umum.Kesulitan mencari sumber data? Banyak data set yang open di internet. Salah satunya adalah Kaggle Dataset. Untuk problem yang telah terdefinisi dengan baik, bisa ditemukan di Kaggle Competition. Atau 33 sumber data yang disebutkan dalam artikel ini.
  6. Mengikuti komunitas/forum atau kompetisi secara serius
    Untuk lebih menggali pengalaman dan pengetahuan, carilah komunitas atau forum, atau ikuti kompetisi seperti Kaggle competition. Dalam kompetisi yang dibuat Kaggle, kita juga dapat membentuk team dengan orang lain. Dalam forum dan komunitas kita bisa melihat bagaimana orang menyelesaikan permasalahan dengan cara yang berbeda-beda, dan mendapatkan masukan untuk pekerjaan kita sendiri.
  7. Terapkan machine learning dalam pekerjaan
    Menerapkan machine learning dalam pekerjaan membuat kita lebih fokus dan all-out dalam menekuninya, dan membantu kita untuk lebih menguasainya.
    Tentukan role apa yang ingin diambil, dan bangunlah portfolio project yang berkaitan dengannya.
    Tidak perlu sampai mencari pekerjaan baru (ahem), namun bisa dilakukan dengan mencari project baru di posisi yang sama, mengikuti berbagai hackathon dan kegiatan-kegiatan komunitas lainnya.
  8. Mengajarkan machine learning
    Ilmu akan semakin dalam jika dibagikan, dan saat ini ada berbagai cara untuk mengajar. Pilihlah cara yang sesuai dengan karakteristik dan kemampuan kita, seperti misalnya :

    • Menulis blog dan tutorial
    • Aktif menjawab pertanyaan di forum-forum
    • Mentoring dan tutoring privat
    • Mengisi seminar, workshop atau yang sejenisnya
    • Mengajar kelas
    • Menulis buku
    • Menulis research papers
    • Dan lain sebagainya

Tentu tidak ada formula anti gagal yang bisa diterapkan kepada semua orang, karena gaya dan cara belajar masing-masing orang bisa berbeda-beda. Apa lagi tidak semua yang ingin terjun ke bidang ini punya latar belakang ilmu maupun keahlian yang sama. Yang penting adalah memulainya, karena “The journey of a thousand miles begins with one step”.

Contributor :


M. Urfah
Penyuka kopi dan pasta (bukan copy paste) yang sangat hobi makan nasi goreng.
Telah berkecimpung di bidang data processing dan data warehousing selama 12 tahun.
Salah satu obsesi yang belum terpenuhi saat ini adalah menjadi kontributor aktif di forum idBigdata.
Tertarik dengan Big Data beserta ekosistemnya? Gabung