SKLearn 14 | Support Vector Machine Classification | SVM | Belajar Machine Learning Dasar

แชร์
ฝัง
  • เผยแพร่เมื่อ 10 ก.ค. 2024
  • Salam Indonesia Belajar!!!
    Classification dengan Support Vector Machine atau biasa disingkat sebagai SVM.
    Video ini adalah video keempatbelas, dari video berseri atau playlist bertema Belajar Machine Learning dengan Python.
    Dalam sesi belajar kali ini kita akan mempelajari:
    00:00 - Intro
    02:12 - Pengenalan Decision Boundary & Hyperplane
    06:44 - Pengenalan Support Vector & Maximum Margin
    09:04 - Pengenalan kondisi Linearly Inseparable dan Kernel Tricks
    12:19 - Pengenalan MNIST Handwritten Digits Dataset
    19:13 - Klasifikasi dengan Support Vector Classifier | SVC
    21:36 - Hyperparameter Tuning dengan Grid Search
    29:36 - Evaluasi Model
    Apa itu Machine Learning? Apa itu Scikit-Learn?
    Scikit-Learn merupakan module dalam pemrograman Python yang memfasilitasi kita untuk mengerjakan berbagai machine learning project. Awalnya Scikit-Learn ini digarap sebagai bagian dari Google Summer of Code projec pada tahun 2007. Istilah Scikit sendiri merupakan kependekan dari SciPy Toolkits; karena memang project ini diperuntukkan sebagai extension untuk SciPy yang merupakan Scientific module dalam pemrograman python. Code base dari project ini lalu ditulis ulang dan mulai dibentuk tim khusus untuk mengembangkan project ini dengan lebih serius. Di awal tahun 2010, project Scikit-Learn ini dirilis ke publik dan berhasil menarik banyak contributor yang akhirnya menjadikan project ini terus berkembang sampai saat ini. Bahkan di tahun 2012, Scikit-Learn dikenal sebagai machine learning library yang paling populer dan well maintained.
    Materi dalam seri pembelajaran ini kami susun sedemikian rupa agar mudah diikuti, dan selalu kami awali dengan materi2 yang sifatnya mendasar terlebih dahulu. Kami berharap materi pembelajaran Machine Learning Dasar ini dapat bermanfaat dan membantu proses belajar kalian.
    Bilamana ada pertanyaan ataupun masukan terkait materi yang kami sampaikan, kalian dapat mengajukan pertanyaan dan masukan kalian, melalui kolom komentar video. Kami akan selalu berusaha untuk merespon setiap pertanyaan dan masukan yang kalian ajukan.
    Bagi teman-teman yang ingin mentraktir kami, silakan untuk memanfaatkan link Saweria berikut ini: saweria.co/belajaridn
    Bagi teman-teman yang tertarik, silakan untuk bergabung juga dengan Discord server Indonesia Belajar: / discord
    Dataset MNIST Hand Written: yann.lecun.com/exdb/mnist/
    Alternatif link menuju dataset yang sama: github.com/petar/GoMNIST/tree...
    Links terkait:
    - Scikit-Learn: scikit-learn.org/stable/index...
    - SciPy: www.scipy.org/
    - Matplotlib: matplotlib.org/
    - Pandas: pandas.pydata.org/
    - Anaconda: www.anaconda.com/
    - Referensi Support Vector Machine: www.svm-tutorial.com/
    - Referensi Kernel Tricks: www.quora.com/What-is-the-ker...
    - Referensi Hyperparameter Tuning: en.wikipedia.org/wiki/Hyperpa...
    Keywords:
    - Belajar Machine Learning Dasar
    - Belajar Machine Learning Pemula
    - Tutorial Machine Learning Dasar
    - Belajar Machine Learning dengan Python
    - Tutorial Machine Learning dengan Python
    - Belajar Scikit-Learn
    - Belajar Data Science
    - Belajar Support Vector Machine
    - Belajar SVM
    - Belajar Classification Task
    #SupportVectorMachine #SVM #Classification

ความคิดเห็น • 88

  • @asep7149
    @asep7149 2 ปีที่แล้ว +17

    yg masih error krn AttributeError: 'str' object has no attribute 'reshape'
    ini solusinya:
    import matplotlib.pyplot as plt
    import matplotlib.cm as cm
    import numpy as np
    pos = 1
    X = np.array(X)
    for data in X[:8]:
    plt.subplot(1, 8, pos)
    plt.imshow(data.reshape((28,28)), cmap=cm.Greys_r)
    plt.axis('off')
    pos += 1
    plt.show()

    • @belajaridn
      @belajaridn  2 ปีที่แล้ว +2

      Terima kasih banyak mas untuk penjelasannya. Saya pin ya supaya teman2 yang lain bisa terbantu :)

    • @qin2577
      @qin2577 หลายเดือนก่อน

      Terimakasih

  • @glendyvalprogrammer5100
    @glendyvalprogrammer5100 10 หลายเดือนก่อน +1

    AttributeError Traceback (most recent call last)
    Cell In[2], line 7
    5 for data in X[:8]:
    6 plt.subplot(1, 8, pos)
    ----> 7 plt.imshow(data.reshape((28, 28)),
    8 cmap=cm.Greys_r)
    9 plt.axis('off')
    10 pos += 1
    AttributeError: 'str' object has no attribute 'reshape'

  • @ronirusmana3965
    @ronirusmana3965 2 ปีที่แล้ว +2

    mantap bangg maju terus kami sebagai anak sistem informasi sangat terbantuuuu

    • @belajaridn
      @belajaridn  2 ปีที่แล้ว +1

      Sama-sama, senang bisa membantu.

  • @emiemiya
    @emiemiya 2 ปีที่แล้ว +2

    Penjabarannya jelas banget, buat pemula seperti saya jadi mudah memahaminya
    Terimakasih kak, sangat bermanfaat ilmunya👍

    • @belajaridn
      @belajaridn  2 ปีที่แล้ว

      Alhamdulillah... Kami juga senang bila apa yang kami hasilkan ini bisa bermanfaat bagi banyak orang ☺️☕🙏

  • @naharirasif212
    @naharirasif212 2 ปีที่แล้ว +2

    min, bahas one class svm untuk menghilangkan outlier dong min, btw nice video min!

  • @rizalchannel4358
    @rizalchannel4358 2 ปีที่แล้ว +2

    Min boleh minta tolong untuk bahas svr, penjelasan nya keren mudah dimengerti 🙏

  • @user-ms3vd7ix1u
    @user-ms3vd7ix1u ปีที่แล้ว +1

    sangat membantu mas,,,,,,request dong bang pengklasifikasian menggunkan 2 metode yaitu SVM dan GWO mas,,,,,terimakasi mas

    • @belajaridn
      @belajaridn  ปีที่แล้ว +1

      Senang bisa membantu. Untuk saat ini, melihat kesibukan saya, rasanya belum memungkinkan untuk menggarap materi lanjutan. Mohon maaf 🙏

    • @user-ms3vd7ix1u
      @user-ms3vd7ix1u ปีที่แล้ว

      @@belajaridn semoga ada kesempatan kedepannya mas,,,,,,,selalu stay nunggu lnjtan dari video"nya mas

    • @belajaridn
      @belajaridn  ปีที่แล้ว

      Amin... 😊🙏🙏🙏

  • @kumbangparahita3108
    @kumbangparahita3108 2 ปีที่แล้ว +1

    semoga sukses terus

    • @belajaridn
      @belajaridn  2 ปีที่แล้ว

      Amin... terima kasih ya 🙏

  • @padhlimaulana4956
    @padhlimaulana4956 2 ปีที่แล้ว +2

    Pak tolong batin vidio clasifiki menggunakan linear discriminant Analysis( LDA) yang di gabung sama SVM dalam clasifikasi

  • @Annekeshavira
    @Annekeshavira 10 หลายเดือนก่อน +1

    bang bikin hybrid svm dong

  • @panjibahtera4350
    @panjibahtera4350 3 ปีที่แล้ว +2

    ka bikin grup discord or langganan gitu dong biar ada tempat diskusi,btw saya suka videonya

    • @belajaridn
      @belajaridn  3 ปีที่แล้ว

      Channel Indonesia Belajar sudah memiliki Discord server. Silakan akses url nya pada deskripsi video :)

  • @muzakkihafizh4169
    @muzakkihafizh4169 2 ปีที่แล้ว +1

    Sebelumnya terimakasih atas ilmu yang telah disampaikan di series Machine Learning ini. Izin bertanya pak apa kita bisa menggunakan k-Cross Fold Validation dan juga Hyperparameter Tuning (GridSearchCV) dalam suatu model ?

    • @ardianwebikirda6045
      @ardianwebikirda6045 9 หลายเดือนก่อน

      bisa di gridsearchCV nya didalamnya ditambah cv=Nilai_k-CV (biasanya 3 s.d 10)

  • @yunicoardianpradana7288
    @yunicoardianpradana7288 11 หลายเดือนก่อน +1

    ijin bertanya pak
    apa akibatnya jika margin terlalu melebar atau terlalu dekat ?

  • @awihamzahrambe3012
    @awihamzahrambe3012 2 ปีที่แล้ว +1

    Assalamu'alaikum kak.
    Ada tutorial svm untuk klasifikasi 3 kelas data atau 3 target?

  • @-RenaAnnisa-nj5de
    @-RenaAnnisa-nj5de 2 ปีที่แล้ว +1

    kak apakah kernel linier cocok digunakan untuk dataset diabetes?

  • @devinfcb1253
    @devinfcb1253 2 ปีที่แล้ว +2

    Mas, bagaimana cara kita mengetahui kernel yg cocok utk dataset kita?
    Atau kapan kita harus menggunakan 'linear', 'rbf', dan 'polynomial'?

    • @belajaridn
      @belajaridn  2 ปีที่แล้ว +1

      Nah ini pertanyaan yang cukup sulit untuk dijawab karena kita perlu memahami konsep matematis di balik setiap kernel tersebut serta konteks nya terhadap dataset yang kita miliki.

  • @2alfarisi
    @2alfarisi ปีที่แล้ว +1

    Bang, izin tanya, by default kernelnya itu RBF kan?

  • @yangpentinghappy9591
    @yangpentinghappy9591 ปีที่แล้ว +1

    bang jurnal untuk karnel sama konsep dasar svm adakah bang?

  • @kidi5986
    @kidi5986 3 ปีที่แล้ว +1

    mas... tolong dong buatin video cara instalasi openSUSE yg membat partisi sendiri dengan manual

    • @belajaridn
      @belajaridn  3 ปีที่แล้ว +1

      Kami akan buatkan panduan instalasi beserta ulasan openSUSE selepas versi 15.3 rilis beberapa saat l😊🙏

    • @kidi5986
      @kidi5986 3 ปีที่แล้ว +1

      @@belajaridn siip mas..👍
      tak tunggu 😉😊

    • @belajaridn
      @belajaridn  3 ปีที่แล้ว

      Siap 😊👍

  • @fandiz1261
    @fandiz1261 2 ปีที่แล้ว +2

    kak coba bahas versi SVR dong

  • @andinip9054
    @andinip9054 2 ปีที่แล้ว +1

    mau tanya, di bagian 21:07 itu di codenya ada pakai fungsi predict(). boleh tau itu cara kerjanya bagaimana? bagaimana bisa mencocokkan data berlabel itu menjadi model? bukannya kalau datanya sudah berlabel dia akan bisa langsung dikenali? jadi di bagian mana saja svm ini digunakan? maaf bila pertanyaannya sedikit kurang jelas, karna saya masih sangat pemula. terima kasih.

    • @belajaridn
      @belajaridn  2 ปีที่แล้ว

      Seri pembelajaran ini kami susun sedemikian rupa agar ramah bagi pemula. Kami sangat menyarankan untuk mengikuti materinya secara sistemaris dari sesi pertama untuk mendapatkan gambaran yang lebih baik mengenai machine learning.

    • @andinip9054
      @andinip9054 2 ปีที่แล้ว

      @@belajaridn maaf, saya memang sudah tonton dari awal hingga akhir. dan muncul pertanyaan yang saya tidak temukan jawabannya di video diatas. lebih tepatnya saat dijalankannya fungsi predict(), bagaimana kerja fungsi itu hingga suatu gambar dapat diklasifikasikan misal ke class angka "4" atau "5" dll? apa pendekatannya, misal apakah cosine similarity, euclidean distance atau lainnya? maksudnya, gambar itu diolah seperti apa? apakah dicocokkan per bit atau seperti apa? karena kan, tidak terlihat bagaimana tahap internal yang kita tau hanya panggil fungsi predict() dari library.

    • @belajaridn
      @belajaridn  2 ปีที่แล้ว

      @@andinip9054 Untuk mempelajari dan menyoroti secara lebih teknis, sebenarnya bisa membuka source code dari module terkait. Semisal, untuk kasus classification dengan SVM, kita bisa pelajari dari sini: github.com/scikit-learn/scikit-learn/blob/baf828ca1/sklearn/svm/_base.py#L761

  • @glendyvalprogrammer5100
    @glendyvalprogrammer5100 10 หลายเดือนก่อน

    saya masih error pak, mau pake versi matplotlib brp aja gk pengaruh.
    AttributeError Traceback (most recent call last)
    Cell In[2], line 7
    5 for data in X[:8]:
    6 plt.subplot(1, 8, pos)
    ----> 7 plt.imshow(data.reshape((28, 28)),
    8 cmap=cm.Greys_r)
    9 plt.axis('off')
    10 pos += 1
    AttributeError: 'str' object has no attribute 'reshape'

    • @belajaridn
      @belajaridn  10 หลายเดือนก่อน

      Kalau dilihat dari error message nya, masalah nya itu ada di data. Coba print out saja variable data nya. Tipe data dari object yang disimpan di variable data tidak memiliki method reshape. Begitulah pesan yang disampaikan dari error message tersebut.

  • @awihamzahrambe3012
    @awihamzahrambe3012 2 ปีที่แล้ว +2

    Kalau video tutorial supervised Logistic ada kak?

    • @belajaridn
      @belajaridn  2 ปีที่แล้ว

      Logistic Regression pernah kami bahas di seri belajar ini mas ☺️☕

  • @arindini6893
    @arindini6893 2 ปีที่แล้ว +1

    buat dapet parameter terbaik harus split train teset dulu ya? berarti kalau beda rasio data set, akan beda gak parameter terbaiknya?

    • @belajaridn
      @belajaridn  2 ปีที่แล้ว

      Sebenarnya untuk parameter tuning, dataset perlu dibagi menjadi 3: training dataset, validation dataset, dan testing dataset. Tetapi karena ini masih playlist Machine Learning dasar, maka kita gunakan dua dataset saja. Porsi training dataset selalu yang paling besar karena ini yang akan kita gunakan untuk melatih model.
      Perubahan pada dataset pasti berdampak pada model yang kita latih.

    • @rizkiyoga9704
      @rizkiyoga9704 2 ปีที่แล้ว +1

      @@belajaridn pak, saya mau nanya, validation set itu apakah spt k-fold cross validation kah?

    • @belajaridn
      @belajaridn  2 ปีที่แล้ว +1

      @@rizkiyoga9704 dataset dapat kita bagi dalam 3 bagian, yaitu training set, validation set, dan testing set. Training set digunakan untuk training model. Validation set digunakan untuk hyperparameter tuning. Dan testing set digunakan untuk evaluasi model.

  • @isahafidz9502
    @isahafidz9502 2 ปีที่แล้ว

    Apakah macro dan weighted avg adalah mean absolute error?

    • @belajaridn
      @belajaridn  2 ปีที่แล้ว +1

      Mean absolute error pada dasarnya merupakan kalkulasi rata2 nilai error yang kemudian dikenakan fungsi absolut, sehingga kita selalu mendapatkan nilai positif.
      Sedangkan weighted mean berarti proses kalkulasi rata2 di mana untuk setiap item nya memiliki bobot tertentu.

  • @salmanal-farizi5986
    @salmanal-farizi5986 3 ปีที่แล้ว

    Bagaimana cara kita menentukan model yang sesuai dengan dataset?

  • @ThingkiliaFinnatiaHusin
    @ThingkiliaFinnatiaHusin 2 ปีที่แล้ว

    Kak, Tolong jelaskan tentang LSSVM. Terima kasih :)

  • @faqihyugosusilo1901
    @faqihyugosusilo1901 3 ปีที่แล้ว +1

    Pak tolong bahas self organizing map (SOM)

    • @belajaridn
      @belajaridn  3 ปีที่แล้ว +1

      Untuk materi terkait neural networks akan kami bahas dalam playlist terpisah.

  • @anggalesvian4964
    @anggalesvian4964 3 ปีที่แล้ว +1

    Halo ka, mohon penjelasannya kenapa hasilnya 'str' object has no attribute 'reshape' ya?
    ---------------------------------------------------------------------------
    AttributeError Traceback (most recent call last)
    in
    5 for data in X[:8]:
    6 plt.subplot(1, 8, pos)
    ----> 7 plt.imshow(data.reshape((28,28)),
    8 cmap=cm.Greys_r)
    9 plt.axis('off')
    AttributeError: 'str' object has no attribute 'reshape'

    • @belajaridn
      @belajaridn  3 ปีที่แล้ว

      Karena tipe data string tidak memiliki method reshape mas. Dalam video pembelajaran ini, pemanggilan method reshape dilakukan pada object Numpy Array.

    • @anggalesvian4964
      @anggalesvian4964 3 ปีที่แล้ว +1

      @@belajaridn apa saya ada step yg terlewat ya? Di script video pembelajaran tdk ada step merubah ke numpy array

    • @belajaridn
      @belajaridn  3 ปีที่แล้ว

      Kemungkinan ada step yang salah mas. Coba lakukan debugging sederhana dengan menampilkan isi Variable nya saja mas. Nanti akan kelihatan data apa yang ditampung, lalu apakah memang sudah sesuai dengan apa yang diharapkan.

  • @anggiatyoga2993
    @anggiatyoga2993 2 ปีที่แล้ว

    di menit 16:30 terdapat eror
    for data in X[:8]:
    plt.subplot(1, 8, pos)
    plt.imshow(data.reshape((28, 28)),
    cmap=cm.Greys_r)
    plt.axis('off')
    pos += 1
    AttributeError: 'str' object has no attribute 'reshape'
    setelah dilihat di kolom komentar banyak yg mengalaminya.
    ternyata pada variable X masih berupa dataframe jadi harus di ubah ke numpy array dulu, karena method reshape hanya berlaku di numpy array. apakah ini benar?

  • @rinaldioktarinanda
    @rinaldioktarinanda 2 ปีที่แล้ว +1

    materinya bagus namun kurang penjelasan tentang visualisasi SVM

    • @belajaridn
      @belajaridn  2 ปีที่แล้ว +1

      Terima kasih untuk masukannya 😊🙏

    • @sukristiyanti-7552
      @sukristiyanti-7552 2 ปีที่แล้ว

      setuju, semoga segera ada penjelasan mengenai visualisasi svm

  • @iwankurniawan638
    @iwankurniawan638 2 ปีที่แล้ว +1

    AttributeError: 'str' object has no attribute 'reshape' kenapa ya

    • @belajaridn
      @belajaridn  2 ปีที่แล้ว

      Variable nya berisi data string itu mas dan bukan object yang memiliki method reshape seperti numpy array.

    • @iwankurniawan638
      @iwankurniawan638 2 ปีที่แล้ว +1

      @@belajaridn padahal udh sama percis dgn yg di tutorial

    • @belajaridn
      @belajaridn  2 ปีที่แล้ว

      Pasti ada tahapan yang keliru karena object yang kami gunakan untuk melakukan reshape adalah numpy array ☺️☕

  • @ronirusmana3965
    @ronirusmana3965 2 ปีที่แล้ว

    jadi dosen kami gak usah bikin materi lagiii siuuuuuuu

  • @user-dt5bj1uz9t
    @user-dt5bj1uz9t 9 หลายเดือนก่อน

    ebook nya ada yang tau linknya dimana?

    • @belajaridn
      @belajaridn  9 หลายเดือนก่อน

      Untuk materi bisa diakses di Github repository berikut: github.com/boedybios

  • @finaafifana4896
    @finaafifana4896 2 ปีที่แล้ว

    Pak itu kan yg classification report akurasi untuk testing klw mengetahui akurasi training gimana ya?

    • @belajaridn
      @belajaridn  2 ปีที่แล้ว

      Bisa dijelaskan apa yang dimaksud dengan akurasi training?

    • @finaafifana4896
      @finaafifana4896 2 ปีที่แล้ว

      @@belajaridn jadi saya mau menguji apakah datanya ini overfit atau tidak jd saya harus tau akurasi dr test dan train apakah balance atau malah beda jauh

    • @belajaridn
      @belajaridn  2 ปีที่แล้ว

      Untuk kasus semacam ini berarti kita bisa menggunakan training set sebagai testing set dan diukur tingkat akurasi nya.

    • @finaafifana4896
      @finaafifana4896 2 ปีที่แล้ว

      @@belajaridn berarti untuk evaluasi, x_test sama y_test diganti train semua ya pak?

    • @belajaridn
      @belajaridn  2 ปีที่แล้ว

      Betul, karena yang mau dirimu ukur adalah tingkat akurasi training set terhadap training set.

  • @awihamzahrambe3012
    @awihamzahrambe3012 2 ปีที่แล้ว +1

    Kak. Kok di saya tidak bisa ya install sklearn nya...

    • @belajaridn
      @belajaridn  2 ปีที่แล้ว

      Scikit Learn mestinya sudah disertakan oleh Anaconda.

    • @awihamzahrambe3012
      @awihamzahrambe3012 2 ปีที่แล้ว +1

      @@belajaridn berarti untuk install scikit learn dari python 3.10 tdk bisa ya kak?

    • @belajaridn
      @belajaridn  2 ปีที่แล้ว

      Bisa, gunakan pip install.

    • @awihamzahrambe3012
      @awihamzahrambe3012 2 ปีที่แล้ว +1

      @@belajaridn gak bisa kak error

    • @belajaridn
      @belajaridn  2 ปีที่แล้ว

      Pesan error nya apa ya?

  • @ace1thekingoffgame606
    @ace1thekingoffgame606 7 หลายเดือนก่อน

    X train itu apa dan y train itu apa

    • @belajaridn
      @belajaridn  7 หลายเดือนก่อน

      Ada baiknya mengikuti video pembelajaran ini secara terurut untuk mendapat pemahaman yang lebih baik.