![]() |
| Partisi data Training, Validasi, dan Test (sumber gambar: disini) |
Merujuk pada StackOverflow:
![]() |
| Partisi data Training, Validasi, dan Test (sumber gambar: disini) |
![]() |
| gEdit spell check |
![]() |
| Jadwal shuttle selama winter 2019/2020 |
![]() |
| Rute dari Himeji ke Okayama via Banshu-Ako. Harusnya perjalanan bisa lebih singkat jika berhendi di Aioi, kemudian oper kereta tujuan Okayama. |
Values are unstated ideas that people see as worthwhile.Dari definisi diatas, maka prinsip-prinsip berpikir kritis adalah sebagai berikut:
They provide standards of conduct by which we measure the quality of human behavior.
![]() |
| First walking course path |
![]() |
| Fig 1. My fingers on MBP 2012 keyboard |
Karena tidak cocok dengan kepala kantor cabang di Surabaya, Pak Budi dipindahkan ke kantor cabang di Bandung.Kalimat pertama merupakan premis; alasan, yang dianggap benar. Kalimat kedua adalah simpulan yang menjadi benar karena premisnya benar. Premis adalah dasar dari argumen, dan cakupannya harus bisa mampu menjangkau apa yang disimpulkan.
(i) Semua anjing adalah karnivora. (ii) Beberapa anjing adalah karnivora.Karena pernyataan universal (i) adalah benar, maka pernyataan partikular (ii) juga benar. Logika dari prinsip ini cukup sederhana, jika semua anggota dari satu kelas adalah benar, maka sebagiannya juga benar.
(i) Beberapa wanita adalah ibu. (ii) Semua wanita adalah ibu.Pernyataan partikular (i) tentu saja benar, namun tidak dengan pernyataan universal (ii). Untuk berpindah dari pernyataan partikular ke universal dibutuhkan premis yang kuat dan runtut. Perhatikan contoh berikut.
Setiap orang China yang saya temui di sana bermata sipit. Penduduk Lanzhou 99% bermata sipit berdasarkan data sensus tahun 2010. Di beberapa propinsi lain, persentase penduduk bermata sipit juga mendekati 100%. Bisa disimpulkan, sebelum terjadinya perkawinan antar ras, semua penduduk China bermata sipit.
http://davidsearson.com/2015/11/14/why-knowing-everything-is-a-bad-idea/
Bukan karena kebanyakan informasi, tapi karena kegagalan filter.
24000
a_without_nan = np.nan(a_with_nan, nan=0) # change NaN to 0
Lebih lengkapnya:
https://bagustris.blogspot.com/2020/06/menghapus-dan-mengganti-data-nan-pada.html
In [1]: a = np.random.randint(0,10, size=(4, 3)) In [2]: a.shape Out[2]: (4, 3) In [3]: a.size Out[3]: 12 In [4]: b = np.zeros(shape=(3, 2)) In [5]: b.shape Out[5]: (3, 2) In [6]: b.size Out[6]: 6Jadi sebagai attribut kelas, shape dan size berbeda, sedangkan sebagai argumen keduanya sampai saat ini masih disamakan. Mungkin karena pengaruh bahasa C seperti yang didiskusikan pada forum ini.
df.dropna()
df.dropna(axis=1)
df.dropna(axis=0, how='all') # untuk menghapus baris jika semua adalah nan df.dropna(axis=1, how='all') # untuk menghapus kolom jika semua isinya adalah nan
Jadi by default, perintah df.dropna() sama dengan df.dropna(axis=0, how='any').
Silakan lihat screencast di bawah ini untuk prakteknya.
By default juga, hasil penghapusan data NaN tidak disimpan (tidak embedded), jadi perlu disimpan dalam variabel baru, misal b = df.dropna(). Jika ingin langsung, gunakan argumen `inplace=True`. Perhatikan screencast di bawah ini untuk lebih jelasnya.
![]() |
| Daleman laptop saya, MBP 2012, yang tersiram air, masih ada sisa-sisa tetesan air di dalamnya. |
![]() |
| Posisi laptop ketika diangin-anginkan, tambahkan kipas angin di bawah laptop tsb (sumber gambar: Wikihow, CC) |
![]() |
| Daleman MBP setelah saya lepas motherboard, HDD, CD drive, dll. Tampak: keyboard. |
![]() |
| Gedit dengan embedded terminal, textidote siap mengeksekusi (check grammar dan spell check) file latex di atasnya. |
x = np.random.random(size=(32, 10, 16)
model0 = Sequential() model0.add(Dense(8, input_shape=(10, 16))) model0.summary()Hasilnya adalah sebagai berikut,
Model: "sequential_6" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= time_distributed_1 (TimeDist (None, 10, 8) 136 ================================================================= Total params: 136 Trainable params: 136 Non-trainable params: 0Bedakan dengan ini,
model1 = Sequential() model1.add(Dense(8, input_shape=(10, 16))) model1.summary()Hasilnya,
Model: "sequential_5" _________________________________________________________________ Layer (type) Shape Param # ================================================================= dense_3 (Dense) (None, 10, 8) 136 ================================================================= Total params: 136 Trainable params: 136Apa perbedaannya? Tidak ada. Saya juga bingung. Mari kita cari contoh lain, dari machinelearningmastery.
![]() |
| Pengenalan emosi penelepon secara otomatis oleh Artificial Intelligence (AI) Sumber:https://medium.com/@alitech_2017/voice-based-emotion-recognition-framework-for-films-and-tv-programs-2a6abbb77242 |
![]() |
| Diagram blok pengenalan emosi dari sinyal wicara |
import numpy as np x_train = np.arange(0, 10.01, 0.01) y_train = 2*x_train + 3 #**2 + 3
$ # install geos $ sudo apt install libgeos++-dev $ # install proj $ sudo apt install libproj-dev
$ # clone github repo $ git clone https://github.com/SciTools/cartopy.git $ # cd ke repo $ cd cartopy $ # install from source $ python3.6 setup.py install --user
import librosa
x, fs = librosa.load('Ses01F_impro01_F000.wav') # ganti dengan nama file wav kamu
xt, ind = librosa.effects.trim(x, top_db=30)
In [12]: len(x) Out[12]: 42900 In [15]: len(xt) Out[15]: 24576
figure() subplot(211); plot(x) subplot(212); plot(xt)
pip3 install --user librosa
![]() |
| Windowing: window length, hop size, and its overlap. |
import os
import librosa
lenmin = 100
mfcc =[]
for i in os.listdir('.'):
x_i, sr = librosa.load(i, sr=None)
mfcc_i = librosa.feature.mfcc(x_i, sr)
if mfcc_i.shape[1] < lenmin:
mfcc_i = np.hstack((mfcc_i, np.zeros((mfcc_i.shape[0], lenmin-mfcc_i.shape[1]))))
mfcc_i = mfcc_i[:,:lenmin]
mfcc.append(mfcc_i.T)
mfcc = np.array(mfcc)
Cek ukuran variable mfcc dengan: In [1]: np_mfcc.shape Out[1]: (30, 100, 20)
delta = librosa.feature.delta(mfcc)
deltad = librosa.feature.delta(MFCC, order=2)
Ada cara yang lebih singkat untuk zero padding, yakni dengan tensorflow. Dengan tensorflow, kita hanya butuh satu perintah (dan satu baris jika memungkinkan). Contoh jika kita mempunyai list MFCC dengan ukuran seperti [(100, 20), (28, 20), (53,20), ...]. Semua MFCC tersebut kita rubah menjadi ukuran (100, 200) dengan cara berikut.
import tensorflow as tf mfcc_padded = tf.keras.preprocessing.sequence.pad_sequence(mfcc, maxlen=100, dtype=float)Dimana mfcc_list merupakan list MFCC yang berbeda-beda ukuran dan hasilnya, mfcc_padded, merupakan list MFCC yang kesemuanya berukuran (100, 20) melalui teknik zero padding.
In [4]: x = np.arange(9.).reshape(3, 3)
In [5]: x
Out[5]: array([[0., 1., 2.],
[3., 4., 5.],
[6., 7., 8.]])
Apabila kita cari tahu panjang dan bentuk vektor xIn [6]: x.shape Out[6]: (3, 3) In [179]: len(x) Out[179]: 3 In [180]: x.size Out[180]: 9
x.flatten()
len(x.flatten())
model = Sequential() model.add(Dense(XX, input_dim=Y) model.add(Dense(Z)) model.compile(loss='nama_loss_function', optimizer='nama_optimizer', metrics=['nama_metrik']) model.fit(training_input, training_ouput, epochs=AA)
model = Sequential()
Dense: Menambahkan unit atau node beserta argumennya, dari satu layer ke layer selanjutnya. Dengan kata lain, "fully-connected layer", atau "feed forward network", atau "multi-layer perceptron".
Contoh:
model.add(Dense(32, input_dim=2)Kode di atas membuat layer dengan jumlah 32 unit dan 16 unit input. Jumlah learnable parameternya adalah 16*32+32 = 544. Check dengan
model.summary(). Jika kita tambahkan lagi,model.add(32)Maka sekarang kita mempunyai dua layer yang masing-masing berisi 32 unit. Total learnabale parameternya adalah 544+ (32*32+32) = 1600. Check dengan kode yang telah diberikan di atas.
model.compile(loss='binary_crossentropy',
optimizer='adam',
metrics=['accuracy'])
Fit: Mencari hubungan input dan output data, dengan kata lain: membangun/melatih model.model.fit(train_input, train_output, batch_size=16, epochs=500)
kata = ["Bagus!", "Ampuh!", "cantik!", "Mantap!", "Cakep!",
"Jelek", "Rusak", "Nol", "Omong kosong", "Busuk", "Tidak"]
label = [1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0]
array([['Bagus!', '1'],
['Ampuh!', '1'],
['cantik!', '1'],
['Mantap!', '1'],
['Cakep!', '1'],
['Jelek', '0'],
['Rusak', '0'],
['Nol', '0'],
['Omong kosong', '0'],
['Busuk', '0'],
['Tidak', '0']])
kata_label = hstack([np.array(kata, ndmin=2).T, np.array(label, ndmin=2).T])
import numpy as np
kata = ["Bagus!", "Ampuh!", "cantik!", "Mantap!", "Cakep!",
"Jelek", "Rusak", "Nol", "Omong kosong", "Busuk", "Tidak"]
label = np.array ([1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0])
# merubah kata menjadi integer from keras.preprocessing.text import one_hot vocab_size = 50 encoded_docs = [one_hot(d, vocab_size) for d in kata] print(encoded_docs)
Jadi, 5000 data yang terlabeli dengan benar merupakan data minimal dari sisi best practice. Tenju saja, semakin besar semakin baik.As of 2016, a rough rule of thumb is that a supervised deep learning algorithm will generally achieve acceptable performance with around 5,000 labeled examples per category, and will match or exceed human performance when trained with a dataset containing at least 10 million labeled examples. Working successfully with datasets smaller than this is an important research area, focusing in particular on how we can take advantage of large quantities of unlabeled examples, with unsupervised or semi-supervised learning.
![]() |
| Vektor kata: Raja, ratu, pria, wantia |
![]() |
| Gambar 1. Model atensi Broadbent dan Treisman |
![]() |
| Plot fase (atas) dengan unwrapping fase (bawah) |
>>> x = np.array([1, 2, 3, 4, 5])
>>> xpad = np.pad(x, (0, 5), 'constant') # menambahkan lima nol di belakang vektor a
>>> x
[1, 2, 3, 4 , 5, 0, 0, 0, 0, 0]