e. Analisis data: setiap data akan diolah dan dianalisis agar pelaku bisnis atau pemangku
kepentingan bisa mendapat informasi yang diinginkan.
f. Visualisasi data: Informasi yang diperoleh akan ditafsirkan ke dalam format yang lebih
mudah dipahami. Contohnya seperti grafik laporan.
Selection adalah proses memilih data dari big data menggunakan query basis data dan menjadi
target data. Preprocessing adalah proses yang mengkonversi data mentah menjadi format yang
dapat dipahami. Data pada dunia nyata sering tidak memadai, tidak konsisten, tidak teratur, kurang
mengikuti pola/tren tertentu. Hal ini mengakibatkan kualitas pengumpulan dan model data yang
dihasilkan rendah. Preprocessing data dapat dilakukan melalui beberapa proses antara lain adalah:
a. Data Cleaning. Proses ini adalah suatu proses untuk mengatasi missing value, penanganan
noisy data, identifikasi atau menghapus outlier, penanganan data yang inkonsisten
b. Data Integration. Proses ini akan mengintegrasi beberapa sumber data dan format data.
c. Data Transformation. Proses normalisasi data, diskritisasi, penyeragaman nilai data,
agregasi atau bahkan split atribut
d. Data Reduction. Proses ini adalah proses yang akan mereduksi dimensi atau menyeleksi
atribut
Data hasil preprocessing akan diolah, dianalisis dan disajikan menjadi suatu informasi yang mudah
difahami (visualisasi). Data tersebut sebagai masukan proses pembuatan model data menggunakan
algoritma mesin learning. Dari Pola atau trend model data tersebut dapat dilakukan prediksi
terhadap data baru berdasarkan model data yang telah dibuat.
Data mining merupakan bagian dari Data Science, yaitu proses pengumpulan informasi untuk
melihat pola dari kumpulan data yang sangat besar dan data discovery. Data mining mengekstrak
pola dari data dengan menggunakan metode statistika agar dapat dianalisa. Hasil dari analisa ini
akan digunakan untuk mencari prediksi yang tepat agar dapat digunakan untuk mengambil
keputusan.
Gambar Tahapan masukan, pemodelan data dengan algoritma mesin learning dan evaluasi model
Abdul Munif@2022 P a g e 2 | 28
Universal IoT berbasis Data Science
c. Class/label/target
Class/label adalah atribut yang akan dijadikan target. label adalah variabel yang dipelajari oleh
pembelajaran mesin untuk diprediksi yang terdiri: - label kategoris: mis, kategori artikel berita
adalah label kategoris dan, - label numerik: misalnya, harga adalah label numerik
Abdul Munif@2022 P a g e 3 | 28
Universal IoT berbasis Data Science
d. Model
Model adalah konstruksi matematis untuk menangkap pola dalam kumpulan data,
memperkirakan, merupakan hubungan antara variabel terikat dan variabel bebas. Model
memiliki kemampuan prediktif, dapat menghitung atau memprediksi nilai variabel dependen
ketika mendapatkan nilai variabel independen. Melatih model adalah tugas komputasi
intensif, sementara menggunakannya bukan tugas komputasi. Sebuah model umumnya
disimpan di disk, sehingga dapat digunakan tanpa melatih mesin lagi. Data Pelatihan (80% dari
data) adalah data yang digunakan oleh algoritme pembelajaran mesin untuk melatih model.
Data Uji (20% dari data) adalah data yang digunakan untuk mengevaluasi kinerja prediktif
suatu mode.
Abdul Munif@2022 P a g e 4 | 28
Universal IoT berbasis Data Science
a. Surpervised
Supervised Learning merupakan sebuah pemodelan dimana algoritmanya dapat
membangkitkan suatu fungsi yang memetakan input ke output yang diinginkan. Pada
Supervised Learning pengguna mengolah data yang memiliki label. Tujuan pengolahan
adalah mengelompokkan data ke data yang sudah ada. Model ini memerlukan data training.
Data training digunakan dalam memprediksi maupun mengklasifikasi data. Model ini dapat
ditemukan pada kasus prediksi harga saham, klasifikasi pelanggan, klasifikasi gambar. Ciri ciri
mesin learning – Supervised: - Pembelajaran terbimbing, - Data memiliki
output/label/target class, - Memiliki fase training untuk mempelajari pemetaan antara input
dan output (membentuk model), - Kategori pekerjaan meliputi: klasifikasi, regresi, deteksi
anomali.
b. Unsupervised
Unsupervised Learning merupakan sebuah pemodelan dimana algoritmanya memodelkan
sekumpulan input secara otomatis tanpa adanya panduan output yang diinginkan. Model ini
mengolah data yang tidak memiliki label, tujuannya adalah mengelompokkan suatu data yang
hampir sama dengan data tertentu. Model ini tidak membutuhkan data training dalam
melakukan prediksi maupun klasifikasi. Ciri-ciri mesin learning – Unupervised: - Pembelajaran
tidak terbimbing, - Data tidak memiliki output/label/target class, - Tidak memiliki fase training,
algoritma bekerja untuk menemukan pola/hubungan pada data input, Kategori pekerjaan
meliputi: klusterisasi, asosiasi, demensionality reduction
Abdul Munif@2022 P a g e 5 | 28
Universal IoT berbasis Data Science
b. Unsupervised
• Clustering: - K-means Clustering,- K-modes (Categorical variables), - DBScan (predict the
number of clusters automatically),- OPTICS (predict the number of clusters automatically)
• Association: -Apriori
• Dimension Reduction: - PCA, - Singular value decomposition,
• Recommendation: - Matchbox Recommender
• Computer Vision: - OpenCV Library
Abdul Munif@2022 P a g e 6 | 28
Universal IoT berbasis Data Science
Gambar EDA, trend harga dan penjualan apokat di Amerika Serikat tahun 2015 – 2018
EDA merupakan kegiatan sangat penting untuk seorang analis dan ilmuwan data. EDA menggunakan
beberapa teknik manipulasi data dan alat statistik untuk menggambarkan, memahami hubungan
antar variabel dan bagaimana hal tersebut dapat berdampak pada bisnis. Proses EDA menggunakan
Abdul Munif@2022 P a g e 7 | 28
Universal IoT berbasis Data Science
tools bahasa python terdiri dari beberapa langkah: 1) Mengimpor library yang dibutuhkan, 2)
membangkitkan atau membaca dataset, 3) Memahami gambaran umum dataset yang digunakan, 4)
Persiapan pemrosesan data awal, 5) memahami variabel yang digunakan, 6) Studi hubungan antar
variabel 7) visualisasi data, 8) Brainstorming dan kesimpulan
Gambar EDA, visualisasi dan peta persebaran data kasus terorisme global di berbagai negara
Abdul Munif@2022 P a g e 8 | 28
Universal IoT berbasis Data Science
3.7.2. Set
Set adalah salah satu tipe data di Python yang tidak berurut (unordered), memiliki anggota yang unik
(tidak ada duplikasi) dan bersifat mutable. Jika meletakkan dua anggota yang sama di dalam set,
maka otomatis set akan menghilangkan yang salah satunya. Set bisa digunakan untuk melakukan
operasi himpunan matematika seperti gabungan, irisan, selisih, dan lain – lain. Sama seperti set di
matematika, set dalam python merupakan sebuah himpunan dengan tanpa ada index. Struktur data
ini dapat dioperasikan menggunakan fungsi irisan dan gabungan sebagaimana variabel string.
my_set = {1,2,3} # set integer
my_set1 = set([1,2,3]) #menggunakan fungsi set()
my_set2 = {1, 2.0, "Python", (3,4,5)} #set data campuran
my_set3 = {1,2,2,3,3,3}# yang duplikai akan dicetak satu kali
print(my_set, my_set1, my_set2, my_set3)
Abdul Munif@2022 P a g e 9 | 28
Universal IoT berbasis Data Science
Operasi-operasi yang dapat digunakan untuk set adalah Fungsi add (): Untuk menambah satu
anggota ke dalam set. Fungsi update (): untuk menambahkan beberapa anggota sekaligus. Fungsi
discard () dan remove (): untuk menghapus anggota set. Fungsi discard () tidak akan memunculkan
error bila anggota yang ingin dihapus ternyata tidak ada di dalam set, sedangkan remove ()
sebaliknya.
3.7.3. List
List adalah kumpulan dari beberapa data yang diberi suatu nama. List merupakan tipe data Jenis
urutan (type sequence) dan bersifat mutable.
Slicing list adalah teknik untuk memotong nilai pada list. Hal ini dapat dilakukan melalui mengambil
beberapa nilai dari anggota list dengan mendefinisikan indeks kiri dan indeks kanan.
>>> number=[10,5,7,2,1] #deklarasi & inisialisasi variabel list
>>> print(number) #menampilkan variabel list
[10, 5, 7, 2, 1]
>>> print(number[1:3])#mengambil data mulai indeks ke 1 sampai 2
[5, 7]
>>> print(number[:2]) #mengambil data mulai indeks ke 0 sampai 2
[10, 5]
>>> print(number[2:]) #mengambil data mulai indeks ke 2 sampai terakhir
[7, 2, 1]
>>> print(number[1:-1]) #mengambil data mulai indeks ke 1 sampai terakhir-1
[5, 7, 2]
>>> print(number[-3:-1])
[7, 2]
>>> for i in number: #menampilkan seluruh data dengan looping berdasar valuenya
print(i)
>>> for j in range(2,4):#range(len(number))menampilkan seluruh elemen berdasar
print(number[j]) #indeksnya
Abdul Munif@2022 P a g e 10 |
28
Universal IoT berbasis Data Science
3.7.4. Dictionary
Kamus (dictionary) adalah merupakan tipe data Python yang tidak terurut (Unordered) tetapi dapat
dengan mudah disesuaikan dengan pemrosesan urutan dan dapat berubah. Dictionary memiliki
anggota yang terdiri dari pasangan kunci: nilai (key:value) sehingga tidak memiliki indeks. Kamus
Python bekerja dengan cara yang sama seperti kamus dwibahasa seperti Inggris dan Prancis: (Misal
cat(kucing-bahasa Inggris) diterjemahkan menjadi chat (kucing- bahasa Prancis)
Abdul Munif@2022 P a g e 11 |
28
Universal IoT berbasis Data Science
Abdul Munif@2022 P a g e 12 |
28
Universal IoT berbasis Data Science
data. Modul array bawaan (tersedia sejak Python 3.3) dapat digunakan untuk membuat array
padat dari tipe yang seragam
Fixed Type Array Array Numpy from python lIst
#Numpy meng-upcast data int ke float Mengatur data array numpy dengan keyword dtype
Tidak seperti List Python, array NumPy dapat secara eksplisit multidimensi;
Abdul Munif@2022 P a g e 13 |
28
Universal IoT berbasis Data Science
Referensi Sub materi tentang manipulasi data array menggunakan teknik slicing, reshaping, joining,
Numpy concatenation dan splitting dapat dilihat pada ”python data science handbook” halaman 47 – 50.
Kunjungi tautan dan temukan dokumentasi library numpy di: https://numpy.org/doc/stable/
Referensi Untuk memperdalam materi pemanfaatan library Matplotlib dengan fitur-fitur, canggihnya seperti:
Matplotlib “Visualizing Errors, Density and Contour Plots, Customizing plot legend and Colorbars, multi subplot,
Histograms, Binnings, and Density, Configurations and Stylesheets, Three-Dimensional Plotting,
Abdul Munif@2022 P a g e 14 |
28
Universal IoT berbasis Data Science
Geographic Data with Basemap “ dapat dilihat pada ”python data science handbook”-chapter 4
Visualization with Matplotlib halaman: hal 220 – 310. Kunjungi dan temukan dokumentasi library
matplotlib di: https://matplotlib.org/stable/users/index.html
Abdul Munif@2022 P a g e 15 |
28
Universal IoT berbasis Data Science
Abdul Munif@2022 P a g e 16 |
28
Universal IoT berbasis Data Science
Tabel data awal dengan hasil data collection dan beberapa missing value attribute
Abdul Munif@2022 P a g e 17 |
28
Universal IoT berbasis Data Science
Tabel data hasil preprocessing data (data clearning) mengatasi missing value
Refferensi Untuk memperdalam materi pemanfaatan library seabon dengan fitur-fitur, canggihnya seperti:
“Visualizing distributions of data, Plotting with categorical data, Visualizing regression models, Building
structured multi-plot grids, Controlling figure aesthetic, Choosing color palettes, Example gallery,
Example gallery, API, dan lain-lainnya “. Kunjungi dan temukan dokumentasi library seabon di:
https://seaborn.pydata.org/examples/index.html dan https://seaborn.pydata.org/tutorial.html .
Kunjungi Juga dokumentasi library pandas di https://pandas.pydata.org/docs/
Abdul Munif@2022 P a g e 18 |
28
Universal IoT berbasis Data Science
4 #hujan-di-kabupaten-majalengka-dengan-menggunakan-algoritma-regres
5 #refferensi: https://www.megabagus.id/simple-linear-regression/
6 #1.Import library yang dibutuhkan
7 import numpy as np
8 import matplotlib.pyplot as plt
9 import pandas as pd
10
11 #2.Impor dataset
12 dataset = pd.read_csv('dataCuaca.csv')
13 print(dataset)
14 #3.Memecah data kedalam variabel X(idependent) dan Variabel y (dependent)
15 X = dataset.iloc[:,1:5].values
16 y = dataset.iloc[:, -1].values
17
18 #4.Menampilkan data variabel X
19 print(X)
20 #Menampilkan bentuk ukuran data X
21 print(X.shape) #array 31x4 31 baris 4 kolom
22
23 #5.Menampilkan data variabel y
24 print(y)
25 #menampilkan Bentuk/Ukuran dataset y
26 print(y.shape) #array 1 dimensi 31 elemen
27
28 # 6 Membagi data menjadi data Training Set dan data Test Set
29 from sklearn.model_selection import train_test_split
30 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 1/3
31 , random_state = 0)
32
33 #7. Fitting Simple Linear Regression terhadap Training set
34 from sklearn.linear_model import LinearRegression
35 regressor = LinearRegression()
36 regressor.fit(X_train, y_train)
37
38 #8.Memprediksi hasil Test Set
39 y_pred = regressor.predict(X_test)
40 y_pred
41
42 #9.Membandingkan data y aktual dan data y_prediksi
43 dict_y_actual={'y-aktual':y_test} #membuat data dictionary dari y_test
44 #membuat data frame dari data dictionary y_test
45 dfy=pd.DataFrame(dict_y_actual)
46 dfy['y-Prediction']=y_pred #menambahkan kolom y-prediction ke data frame
47 print(dfy)
48
49 #10.Memprediksi Data test baru
50 #data suhu, kelembaban, lama penyinaran dan kecepatan angin
51 Datatestbaru=[28.2,80,3.5,1]
52 #memprediksi curah hujan dengan data test baru
53 y_pred1=regressor.predict([Datatestbaru])
54 print("data test Baru: ",Datatestbaru)
55 print('Prediksi curah hujan: ',y_pred1)
56
57 #11.Visualisasi data
58 import seaborn as sns #import library seabons
59 sns.pairplot(dataset) #ploting pairplot untuk seluruh atribut
60
61 #12.Visualisasi hubungan atribute suhu dan curah hujan
62 #(scatter plot) dan persamaan regresi
63 suhu=dataset['Suhu'] #mengambil data suhu
64 curHujan=dataset['CurahHujan'] #mengambil data curah hujan
65 X1=np.array(suhu).reshape(-1,1) #konversi atribue X(suhu) ke array nampy
66 y1=np.array(curHujan) #konversi atribue y(curah hujan) ke array nampy
67 regressor1 = LinearRegression() #membuat objek linier regresi
68 regressor1.fit(X1, y1) #mentrainning data dengan linier regresi
Abdul Munif@2022 P a g e 19 |
28
Universal IoT berbasis Data Science
Abdul Munif@2022 P a g e 20 |
28
Universal IoT berbasis Data Science
Abdul Munif@2022 P a g e 21 |
28
Universal IoT berbasis Data Science
64 plt.figure(dpi=120)
65 sns.pairplot(data=machines['machine1'])
66 plt.show()
67 #12.Menghitung nilai korelasi untuk untuk setiap mesin yang diuji
68 corr_score = {'machine'+str(i):[] for i in range(1,11)}
67 for machine in machines:
68 score = round(machine_golden.corrwith(machines[machine],axis=1).sum()
69 ,2)
70 corr_score[machine] = score
71 print(corr_score)
72 #13.mendefinisikan fungsi yg memberi label warna nilai korelasi
73 def color_vals(x):
74 if x > 100:
75 return '#42a1f5'
76 else:
77 return 'red'
78 #14.Ploting diagram batang status mesin(merah dibawah ambang batas)
79 plt.figure(figsize=(5,4),dpi=120)
80 plt.barh(y=list(corr_score.keys()),width = corr_score.values(),
81 color=list(map(color_vals,list(corr_score.values()))), edgecolor
82 ='k',height=0.7)
83 plt.vlines(x=100,ymin='machine1',ymax='machine10',
84 linewidth=3,color='k',linestyle='--')
85 plt.xlabel("Correlation score with golden machine (sum)",fontsize=14)
86 plt.show()
12 print(X)
13 print(y)
14 #3.Generate data set (virtual regression use-case)
15 # Memberikan nama kolom untuk industrial parameters yang berpengaruh
16 col_names = ["Temperature","Viscosity","Pressure", "pH","Inlet_flow", "Ro
17 tating_Speed","Particles_size","Color_density"]
18 df = pd.DataFrame(X, columns=col_names)
19 print(df)
20 #4.mengatur nama atribute kolom sebagai 8 parameter industri manufaktur
21 #merubah nilai feature untuk memberikan gambaran parameter sebenarnya
22 df["pH"]=6.5+df["pH"]/4
23 df["Pressure"]=10+df["Pressure"]
24 df["Temperature"]=20+df["Temperature"]
25 df["Y"] = 90+y/20
26 print(df)
27 #5.memisahkan variabel X dan y dari dataset
28 X1=df1[['Temperature','Pressure','pH']] #memilih atribut X
29 Print(X1)
30 y1=df1['Y'] #Memilih Atribut Y
31 print(y1)
32 #6.Fitting RandomForestRegression: n_estimators(jum. pohon dihutan)=10
33 # import the regressor
34 from sklearn.ensemble import RandomForestRegressor
35 #membuat obyek regressor
36 regressor = RandomForestRegressor(n_estimators = 10, random_state = 0)
37 # Menerapkan (fit) regressor dengan data X and y
38 regressor.fit(X1,y1)
39 #7.memilih data test dari dataset dengan index 0
40 dataTest0=X1.iloc[0,:]
41 dataTarget0=y1[0]
42 print(dataTest0)
43 print('Y target: ',dataTarget0)
44 #8.#memprediksi nilai Y dari datatest yang telah dipilih
45 y_pred=regressor.predict([dataTest0])
46 #9. #Membandingkan Nilai Y hasil prediksi dan Y target
47 print('Nilai Y Target: ',y1[0])
48 print('Nilai Y hasil Prediksi: ',y_pred)
49 Kesalahan=((y_pred - y1[0])/y1[0])*100
50 print('Kesalahan= ', Kesalahan,'%')
51
52 #10a.Mengevaluasi random forest ensemble untuk regression dengan MAE
53 from numpy import mean
54 from numpy import std
55 from sklearn.model_selection import cross_val_score
56 from sklearn.model_selection import RepeatedKFold
57 cv = RepeatedKFold(n_splits=10, n_repeats=3, random_state=1)
58 n_scores = cross_val_score(regressor, X, y, scoring='neg_mean_absolute_er
59 ror', cv=cv, n_jobs=-1, error_score='raise')
60 # report performance
62 print('MAE: %.3f standar deviasi: (%.3f)' % (mean(n_scores), std(n_scores
)))
63
#11.Visualisasi data- Ploting histogram data set
64
import seaborn as sns
65
sns.histplot(df1)
66
Abdul Munif@2022 P a g e 23 |
28
Universal IoT berbasis Data Science
Abdul Munif@2022 P a g e 24 |
28
Universal IoT berbasis Data Science
118 y3=df.Y
119 slope3, intercept3, r3, p3, std_err3 = stats.linregress(x3, y3)
120
121 #15.Menampilkan koef.relasi r,p,slope,std_error,intercept dari Pressure
122 x4=df.Pressure
123 y4=df.Y
124 slope4, intercept4, r4, p4, std_err4 = stats.linregress(x4, y4)
125 #15.Menampilkan seluruh nilai untuk ketiga parameter
126 print('{:11}{:11}{:11}{:11}{:11}
127 {:11}'.format('parameter','slope','intercept','r','p','std_err'))
128 print('{:9s}{:^11.4f}{:^11.4f}{:^11.4f}{:^11.4f}
129 {:^11.4f}'.format('Suhu',slope2,intercept3,r2,p2,std_err2))
130 print('{:9s}{:^11.4f}{:^11.4f}{:^11.4f}{:^11.4f}
{:^11.4f}'.format('pH',slope3,intercept3,r3,p3,std_err3))
131
print('{:9s}{:^11.4f}{:^11.4f}{:^11.4f}{:^11.4f}
132
{:^11.4f}'.format('Tekanan',slope4,intercept4,r4,p4,std_err4))
133
Abdul Munif@2022 P a g e 26 |
28
Universal IoT berbasis Data Science
134 df["Viscosity"].mean(),
135 df["Particles_size"].mean(),
136 X2,
137 df["Inlet_flow"].mean(),
138 df["Rotating_Speed"].mean(),
139 X3,
140 df["Color_density"].mean()]).reshape(1,-1)
141
142 # Prediksi dihitung berdasarkan array input_X
143 prediction = model.predict(input_X)[0]
144 # mengembalikan nilai ke Output dari panggilan fungsi
145 return "Prediction: {}".format(round(prediction,1))
146
147 #15.Menjalankan server
148 if __name__ == "__main__":
149 app.run_server()
150
Abdul Munif@2022 P a g e 28 |
28