Sunday 28 October 2018

Perintah kernel SVM menggunakan phyton

ini rangkuman yang saya buat karena sedang penasaran dengan SVM dalam perumusan konsepnya di phyton.
JADI di bawah ini saya mencoba menggunakan kernel linear untuk klasifikasi,
setiap "#ln[x]" saya running untuk melihat hasilnya dan apakah error atau tidak
# coding: utf-8

# In[3]:


#PRELIMINARIES(PERSIAPAN)
#import package to visualize the classifer
from matplotlib.colors import ListedColormap
import matplotlib.pyplot as plt
import warnings


# In[2]:


#import package to do the classifying
import numpy as np
from sklearn.svm import SVC


# In[4]:


#CREATE FUNCTION TO VISUALIZE CLASSIFICATION REGIONS
def versiontuple(v):
    return tuple(map(int, (v.split("."))))


# In[6]:


def plot_decision_regions(X, y, classifier, test_idx=None, resolution=0.02):
 
    #setup marker generator and color map
    markers = ('s', 'x', 'o', '^')
    colors = ('red', 'blue', 'lightgreen', 'gray', 'cyan')
    cmap = ListedColormap(colors[:len(np.unique(y))])
 
    #plot the decision surface
    x1_min, x1_max = X[:, 0].min() - 1, X[:, 0].max() +1
    x2_min, x2_max = X[:, 1].min() - 1, X[:, 1].max() +1
    xx1, xx2 = np.meshgrid(np.arange(x1_min, x1_max, resolution),
                          np.arrange(x2_min, x2_max, resolution))
    Z = classifier.predict(np.array([xx1.ravel(), xx2.ravel()]).T)
    Z = Z.reshape(xx1.shape)
    plt.contourf(xxx1, xx2, Z, alpha=0.4, cmap=cmap)
    plt.xlim(xx1.min(), xx1.max())
    plt.ylim(xx2.min(), xx2.max())
 
    for idx, cl in enumerate(np.unique(y)):
        plt.scatter(x=X[y == c1, 0], y=X[y == c1, 1],
                   alpha=0.8, c=cmap(idx),
                   marker=markers[idx], label=c1)
     
    #highlight test samples
    if test_idx:
        #plot all samples
        if not versiontuple(np.__version__) >= versiontuple('1.9.0'):
            X_test, y_test = X[list(test_idx), :], y[list(test_idx)]
            warnings.warn('Please update to Numpy 1.9.0 or newer')
        else:
            X_test, y_test = X[test_idx, :], y[test_idx]
         
        plt.scatter(X_test[:, 0],
                    X_test[:, 1],
                    c='',
                   alpha=1.0,
                   linewidths=1,
                   marker='o',
                   s=55, label='test set')


# In[9]:


#GENERATE DATA
np.random.seed(0)
X_xor = np.random.randn(200, 2)
y_xor = np.logical_xor(X_xor[:, 0] > 0,
                       X_xor[:, 1] > 0)
y_xor = np.where(y_xor, 1, -1)

plt.scatter(X_xor[y_xor == 1, 0],
            X_xor[y_xor == 1, 0],
            c='b', marker='x',
           label='1')
plt.scatter(X_xor[y_xor == -1, 0],
           X_xor[y_xor == -1, 1],
           c='r',
           marker='s',
           label='-1')

plt.xlim([-3, 3])
plt.ylim([-3, 3])
plt.legend(loc='best')
plt.tight_layout()
 
#indentation error = itu artinya minta di tab atau kalimat tersebut harus agak menjorok dari atasnya
#Kalau unvalid syntaxm bisa jadi kamu salah ketik atau ada perintah yang belum ditulis. plt.show()


# In[27]:



#CLASSIFY USING A LINEAR KERNEL
#Create a SVC classifier using a linear kernel
#kata "rbf" di bawah ini bisa diganti dengan macam-macam kernel SVM
svm = SVC(kernel='linear', C=1, random_state=0)
#Train the classifier
svm.fit(X_xor, y_xor)

#Visualize the decision boundaries
plot_decision_regions(X_xor, y_xor, classifier=svm)
plt.legend(loc='upper left')
plt.tight_layout()
plt.show()


ref: Chrisalbon.com


Continue reading Perintah kernel SVM menggunakan phyton

Friday 26 October 2018

LANGKAH METODE SMOTE

1. Mengumpulkan sample minority
2. Mencari mminimal 2 tetangga (k-2)
3. Memasukkan ke rumus euclidiance (mencari jarak tetangga)
4. Membuat data synthetic: mengalikan data array (A11 X A12 (data atasnya dan data bawahnya atau data atasnya dengan data kedua di bawahnya))
5. Menggabungkan dengan data sythetic tersebut dengan data minority asli.
6. Menyeimbangkan dengan data mayority
Jika data minority 5 maka data mayority 15 maka, untuk menyeimbangkan data syntetic harus 15 juga, jadi 2X lipat data minority, sehingga presentase data synthetic (SMOTE) adalah 200%.
Continue reading LANGKAH METODE SMOTE

Tuesday 23 October 2018

Error saat import tabel excel ke Mysql

Cara eksekusi file Excel yang malah jadi satu kolom di fieldnya Mysql, itu:
Apakah kamu udah cek separate nya data tersebut belum? kalau tanda pemisah datanya menggunaan (,) bisa jadi tanda koma itu yang mengganggu.
karena di kasus saya yang ini sudah bolak - balik di import malah jadi satu kolom dan kolom yang lain berisi "0", :(,
lalu untuk mengakalinya saya copy data Excel tersebut ke word, kemudian setelah tampil data nya yang berbentuk tabel di word,
kemudian saya covert, dengan cara: blok dulu tabel yang ingin di convert, kemudian di menu layout (excel 2010) akan muncul menu "convert to text" di sebelah atas kanan. ganti pilihan other di kolomnya dengan tanda titik koma (;)
kemudian saya save as menjadi data Plain text (*.txt).
kemudian yang terakhir saya membuka folder tempat penyimpanannya *txt tadi dan merubah extension menjadi csv atau save as *.csv.


Continue reading Error saat import tabel excel ke Mysql

Wednesday 17 October 2018

Link Download Arduino Langsung di Web Arduino Versi terbaru

Download IDE Arduino Untuk Membuat IOT

Klik Tulisan "JUST DOWNLOAD" pada halaman web tersebut


Buka folder dimana downloadan kamu.
Lalu klik Install , Klik Next -- next -- sampai muncul tampilan seperti dibawah ini, 
Kemudian tunggu Proses Instalasi sambil minum kopi sampai selesai
Jika nanti ada keluar peringatan untuk install com , maka klik OK



Continue reading Link Download Arduino Langsung di Web Arduino Versi terbaru