0% menganggap dokumen ini bermanfaat (0 suara)
29 tayangan

Data Preprocessing

Analitika Data I membahas proses preprocessing data yang meliputi pembersihan data, integrasi data dan transformasi data, serta reduksi data untuk meningkatkan kualitas data sebelum dilakukan analisis lebih lanjut."

Diunggah oleh

anastasiaveren105
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
29 tayangan

Data Preprocessing

Analitika Data I membahas proses preprocessing data yang meliputi pembersihan data, integrasi data dan transformasi data, serta reduksi data untuk meningkatkan kualitas data sebelum dilakukan analisis lebih lanjut."

Diunggah oleh

anastasiaveren105
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 62

Analitika Data I

Semester Ganjil 2022/2023

Data
Preprocessing
Oleh:
Syaiful Anam, S.Si, MT, Ph.D
Lab. Komputer dan Sains Data

Program Studi Sarjana Ilmu Aktuaria


Jurusan Matematika
Universitas Brawijaya Copy Right @Syaiful Anam Matematika UB
Data Preprocessing

Pembersihan Data

Integrasi Data dan


Transformasi Data

Reduksi Data

Copy Right @Syaiful Anam Matematika UB


Mengapa Data dilakukan Pre Processing?
Data di dunia nyata kotor

Occupation=“”
incomplete

noisy Salary=“-10”

Age=“42”
Tidak konsisten Birthday=“03/07/1997”

Peringkat "1,2,3",
sekarang peringkat "A, B,
C”
Copy Right @Syaiful Anam Matematika UB
Contoh data yang tidak lengkap

Client Nama Alamat TglLahir Majalah Umur


Number yang dibeli

22003 Dwi Jl Pasuruan No.1 15/04/86 Car 20


22003 Dwi Jl. Pasuruan No.1 15/04/86 20
22004 Sidiq Jl. Lumajang No.2 15/05/86 Music 20
22003 Dwi Jl. Pasuruan No.1 15/04/86 House 20

Copy Right @Syaiful Anam Matematika UB


Contoh

Client Nama Alamat TglLahir Majalah Umur


Number yang
dibeli
22003 Dwi Jl Pasuruan No.1 15/04/86 Car 20
22003 Dwi Jl. Pasuruan No.1 15/04/86 Music 40
22004 Sidiq Jl. Lumajang No.2 15/05/86 Music 20
22003 Dwi Jl. Pasuruan No.1 15/04/86 House 20

Copy Right @Syaiful Anam Matematika UB


Contoh

Client Nama Alamat TglLahir Majalah yang Umur


Number dibeli
22003 Dwi Jl Pasuruan No.5 15/04/86 Car 20
22003 Dwi Jl. Malang No.1 15/04/86 Music 20
22019 Dewi Jl. Pasuruan No.1 15/05/86 Music 20
22019 Dewi Jl. Pasuruan No.1 15/04/86 House 20

Copy Right @Syaiful Anam Matematika UB


Contoh

Client Nama Alamat TglLahir Majalah Umur


Number yang dibeli
22003 Dwi Jl Pasuruan No.1 15/04/86 Car 20
22003 Dwi Jl. Pasuruan No.1 15/04/86 Music -20
22004 Sidiq Jl. Lumajang No.2 15/05/86 Music 20
22003 Dwi Jl. Pasuruan No.1 15/04/86 House 20

Copy Right @Syaiful Anam Matematika UB


Read CSV File
# impor dataset
dataset = pd.read_csv(
'contoh_dataset.csv',
delimiter=';',
header='infer',
index_col=False
)

Copy Right @Syaiful Anam Matematika UB


Ada beberapa parameter metode
read_csv():
• Nama file (dalam hal ini contoh_dataset.csv),
• delimiter : meskipun format file adalah csv (comma
separated values), delimiter data belum tentu karakter
koma (dalam hal ini ;),
• header : indeks baris yang digunakan sebagai nama kolom,
dalam hal ini ditentukan secara otomatis oleh library
('infer'),
• index_col : kolom yang digunakan sebagai label baris dan
indexing. Tidak diperlukan untuk kasus ini (False).

Copy Right @Syaiful Anam Matematika UB


Contoh
• Menampilkan data kosong di Python

Copy Right @Syaiful Anam Matematika UB


Contoh Menampilkan data di
Python
# impor library
import numpy as np
import pandas as pd
data = {
'Province': ['Banten', 'DKI Jakarta','Jawa Barat','Banten','Jawa Barat','DKI
Jakarta','Banten','Banten','Jawa Barat','DKI Jakarta','Banten','Banten','Jawa
Barat','DKI Jakarta','DKI Jakarta'],
'Age': [24,np.nan,60,34,58,np.nan,21,44,40,51,32,30,30,19,25],
'Wage':
[5000000,3400000,7350000,3500000,np.nan,8000000,5500000,10000000,9
000000,10500000,np.nan,6400000,np.nan,2200000,4500000],
'Life insured':
['Yes','No','No','No','Yes','No','No','Yes','Yes','Yes','No','No','No','Yes','Yes'],
}

dataset = pd.DataFrame(data)
dataset.head(10)

Copy Right @Syaiful Anam Matematika UB


Contoh Menampilkan data di
Python
• dataset=pd.read_csv('finance.csv')
• dataset.head()

Copy Right @Syaiful Anam Matematika UB


Mengapa data tidak lengkap?

◼ Data tidak lengkap berasal dari


– Tidak ada nilai data saat
dikumpulkan
– Pertimbangan yang berbeda
antara waktu ketika data
dikumpulkan dan ketika
dianalisis.
– Masalah manusia / perangkat
keras / perangkat lunak

Copy Right @Syaiful Anam Matematika UB


Mengapa data bernoise?

◼ Data bernoise berasal dari proses


– Koleksi
– Entri
– Transmisi

Copy Right @Syaiful Anam Matematika UB


Mengapa data tidak konsisten?
◼ Data tidak konsisten berasal
dari
– Perbedaan sumber data

Copy Right @Syaiful Anam Matematika UB


Tugas Utama dalam Preprocessing Data

◼ Pembersihan Data

❑ Mengisi nilai-nilai yang hilang,

❑ Melakukan smooting noisy data

❑ Mengidentifikasi atau menghapus outlier, dan

❑ Menyelesaikan inkonsistensi

Copy Right @Syaiful Anam Matematika UB


Tugas Utama dalam Preprocessing
Data

◼ Integrasi Data
◼ Mengintegrasikan multiple databases, data cubes, or
files

Copy Right @Syaiful Anam Matematika UB


Tugas Utama dalam Preprocessing
Data

◼ Transformasi Data
– Menormalisasi and aggregation

Copy Right @Syaiful Anam Matematika UB


Tugas Utama dalam Preprocessing
Data

◼ Reduksi Data
– Memperoleh pengurangan representasi volume tetapi
menghasilkan hasil analitik yang sama atau serupa

Copy Right @Syaiful Anam Matematika UB


Tugas Utama dalam Preprocessing Data

◼ Diskritisasi Data
– Bagian dari reduksi data tetapi dengan kepentingan
khusus, terutama untuk data numerik

Copy Right @Syaiful Anam Matematika UB


Data preprocessing

◼ Kebutuhan untuk pra-pemrosesan di DM

◼ Pengurangan data - terlalu banyak data

◼ Pembersihan data - noise

◼ Integrasi dan transformasi data

Copy Right @Syaiful Anam Matematika UB


Tugas dari Pembersihan Data

◼ Mengisi nilai yang hilang


◼ Identifikasi pencilan dan menghaluskan data bernoise
◼ Memperbaiki data yang tidak konsisten
◼ Mengatasi redundansi yang disebabkan oleh integrasi
data

Copy Right @Syaiful Anam Matematika UB


Data Hilang

◼ Data tidak selalu tersedia


– Contoh. Banyak instances mempunyai nilai
yang tidak tersimpan untuk beberapa atribut,
contohnya seperti customer income dalam
data penjualan

Copy Right @Syaiful Anam Matematika UB


Data hilang mungkin disebabkan
oleh
❑ Kerusakan peralatan
❑ Tdak konsisten dengan data yang direkam lainnya
dan karenanya dihapus
❑ Data tidak dimasukkan karena kesalahpahaman
❑ Data tertentu mungkin tidak dianggap penting pada
saat masuk
❑ tidak terdaftar dalam riwayat atau perubahan data

Data yang hilang mungkin


perlu diinferensi
Copy Right @Syaiful Anam Matematika UB
Bagaimana Menangani Data yang
Hilang?
• Abaikan tupel
• Metode ini tidak terlalu efektif, kecuali tupel berisi
beberapa atribut dengan nilai yang hilang.
• Ini sangat buruk ketika persentase nilai yang hilang
per atribut sangat bervariasi.

Copy Right @Syaiful Anam Matematika UB


Abaikan tupel / menghapus tupple

• dataset.dropna(inplace=True)
• dataset.head(20)

Copy Right @Syaiful Anam Matematika UB


Bagaimana Menangani Data yang
Hilang?
• Mengisi nilai yang hilang secara manual: Secara
umum, pendekatan ini memakan waktu dan
mungkin tidak layak diberikan satu set data besar
dengan banyak nilai yang hilang.

Copy Right @Syaiful Anam Matematika UB


Bagaimana Menangani Data yang
Hilang?
• Gunakan konstanta global untuk mendapatkan
nilai yang hilang.
• Ganti semua nilai atribut yang hilang dengan
konstanta yang sama, seperti label seperti \ Tidak
Dikenal ", atau 1.
• Metode ini sederhana, tetapi tidak dianjurkan.

Copy Right @Syaiful Anam Matematika UB


Bagaimana Menangani Data yang
Hilang?

• Gunakan atribut mean untuk mengisi nilai yang


hilang
• Misalnya, anggaplah pendapatan rata-rata semua
pelanggan Electronics adalah $ 28.000.
• Gunakan nilai ini untuk menggantikan nilai
pendapatan yang hilang.

Copy Right @Syaiful Anam Matematika UB


Slicing
• Data kemudian dibagi menjadi dua jenis: data
independen/prediktor (X) dan data dependen/target (y).
Pembagian data ini menggunakan pandas.
• DataFrame.iloc seperti di bawah. Karena dataset adalah
matriks M*N, kita menggunakan slicing dengan format
[baris, kolom].
• Untuk dataset contoh:

• X = dataset.iloc[:, :-1].values
• y = dataset.iloc[:, -1].values

Copy Right @Syaiful Anam Matematika UB


Menangani nilai kosong (NaN)
• Ada dua pilihan: hapus observasi itu, atau substitusi nilai
dengan mean/rata-rata kolom itu.
• # menangani nilai kosong
from sklearn.impute import SimpleImputer
# ganti NaN dengan mean kolom itu
imputer = SimpleImputer(missing_values=np.nan, strategy='mean')
imputer = imputer.fit(X[:, 2:4])
X[:, 2:4] = imputer.transform(X[:, 2:4])
print(X)

Copy Right @Syaiful Anam Matematika UB


Mengisi dengan mean
• dataset[‘Column_name’]=dataset[‘Column_name’].fillna(me
an_value).

Copy Right @Syaiful Anam Matematika UB


Bagaimana Menangani Data yang
Hilang?
• Gunakan nilai yang paling mungkin untuk nilai yang
hilang
• Ini dapat ditentukan dengan alat berbasis inferensi
menggunakan formalisme Bayesian atau induksi
pohon keputusan.
• Misalnya, menggunakan atribut pelanggan lain
dalam kumpulan data Anda, Anda dapat membuat
pohon keputusan untuk memprediksi nilai yang
hilang untuk pendapatan.

Copy Right @Syaiful Anam Matematika UB


Data Bernoise

◼ Noise: kesalahan acak atau varians dalam variabel yang


diukur

◼ Atributsalah mungkin disebabkan


– instrumen pengumpulan data yang salah
– masalah entri data
– masalah transmisi data
– keterbatasan teknologi
◼ Masalah data lainnya yang membutuhkan pembersihan
data
– rekaman rangkap
– data tidak lengkap
– data tidak konsisten
Copy Right @Syaiful Anam Matematika UB
Bagaimana Cara Menangani Data
Bernoise?
◼ Binning method:
– Pertama, mengurutkan data dan partisi menjadi bin (equi-
kedalaman)
– Langkah selanjutnya menghaluskan dengan rata-rata bin,
menghaluskan dengan median bin, atau menghaluskan
dengan batas bin, dll.
◼ Regresi
– menghaluskan dengan memasukkan data ke dalam fungsi
regresi
◼ Clustering
o Mendeteksi dan menghilangkan outlier
◼ Kombinasi Komputer dan inspeksi manusia
o Mendeteksi nilai-nilai yang mencurigakan dan memeriksa oleh
manusia (mis., berurusan dengan kemungkinan pencilan)

Copy Right @Syaiful Anam Matematika UB


Metode Binning untuk Data Smoothing

• * Data yang diurutkan untuk harga (dalam dolar): 4, 8, 9, 15, 21,


21, 24, 25, 26, 28, 29, 34
• * Partition into (equi-depth) bins:
• Bin 1: 4, 8, 9, 15
• Bin 2: 21, 21, 24, 25
• Bin 3: 26, 28, 29, 34
• * Smoothing dengan bin means:
• Bin 1: 9, 9, 9, 9
• Bin 2: 23, 23, 23, 23
• Bin 3: 29, 29, 29, 29
• * Smoothing dengan bin boundaries:
• Bin 1: 4, 4, 4, 15
• Bin 2: 21, 21, 25, 25
• Bin 3: 26, 26, 26, 34
Copy Right @Syaiful Anam Matematika UB
Metode Binning untuk Data
Smoothing
import numpy as np
import math
dataset = [4, 8, 9, 15, 21, 21, 24, 25, 26, 28, 29, 34]

b = dataset #np.zeros(len(dataset))
b=np.sort(b)#sort the array
# create bins
bin=np.zeros([3,4])
# Bin mean
for i in range(0,12,4):
k=int(i/4)
mean=(b[i] + b[i+1] + b[i+2] + b[i+3])/4
print(mean)
for j in range(4):
bin[k,j]=mean

print("Bin Mean: \n",bin)

Copy Right @Syaiful Anam Matematika UB


Metode Binning untuk Data
Smoothing
import numpy as np
import math
dataset = [4, 8, 9, 15, 21, 21, 24, 25, 26, 28, 29, 34]

b = dataset #np.zeros(len(dataset))
b=np.sort(b)#sort the array
# create bins
bin=np.zeros([3,4])
# Bin mean
for i in range(0,12,4):
k=int(i/4)
print(b[i+3])
for j in range(4):
if (b[i+j]-b[i]) < (b[i+3]-b[i+j]):
bin[k,j]=b[i]
else:
bin[k,j]=b[i+3]
print("Bin Boundary: \n",bin)
Copy Right @Syaiful Anam Matematika UB
Metode Binning untuk Data
Smoothing
import numpy as np
import math
dataset = [4, 8, 9, 15, 21, 21, 24, 25, 26, 28, 29, 34]

b = dataset #np.zeros(len(dataset))
b=np.sort(b)#sort the array
# create bins
bdata=4
bin=np.zeros([3,4])
# Bin mean
for i in range(0,12,4):
k=int(i/bdata)
for j in range(4):
if bdata%2==0:
bin[k,j]=(b[i+(bdata)//2-1]+b[i+bdata//2])/2
else:
bin[k,j]=b[i+(bdata)//2]

print("Bin Boundary: \n",bin)


Copy Right @Syaiful Anam Matematika UB
Regression

Y1

Y1’ y=x+1

X1 x

Copy Right @Syaiful Anam Matematika UB


Analisis Cluster

Copy Right @Syaiful Anam Matematika UB


Integrasi Data
◼ Integrasi Data
– menggabungkan data dari berbagai sumber ke
penyimpanan yang koheren
– Masalah identifikasi entitas: mengidentifikasi
entitas dunia nyata dari berbagai sumber data,
contoh., A.cust-id  B.cust-#
◼ Mendeteksi dan menyelesaikan konflik nilai data
– untuk entitas dunia nyata yang sama, nilai atribut
dari sumber berbeda adalah berbeda
– kemungkinan alasan: representasi berbeda, skala
berbeda.
Copy Right @Syaiful Anam Matematika UB
Menangani Redundansi dalam Integrasi
Data

◼ Data redundan sering terjadi ketika integrasi beberapa basis


data
– Atribut yang sama mungkin memiliki nama yang berbeda
di database yang berbeda
– Satu atribut dapat menjadi atribut "turunan" di tabel lain,
mis., Pendapatan tahunan

◼ Datayang redundan mungkin dapat dideteksi dengan


analisis korelasional
◼ Integrasi
data yang cermat dari berbagai sumber dapat
membantu mengurangi / menghindari redudansi dan
inkonsistensi dan meningkatkan kecepatan dan kualitas
penambangan Copy Right @Syaiful Anam Matematika UB
Transformasi Data
◼ Smoothing: menghilangkan noise dari data
◼ Aggregation: peringkasan
◼ Normalisasi: diskalakan agar jatuh dalam kisaran kecil yang ditentukan
– Normalisasi min-max
– Normalisasi z-score
– Normalisasi dengan penskalaan desimal
◼ Konstruksi fitur/ atribut
– Atribut baru dibangun dari yang diberikan

Copy Right @Syaiful Anam Matematika UB


Mengkodekan data kategori
• # kodekan data kategori
• from sklearn.preprocessing import OneHotEncoder
• from sklearn.compose import ColumnTransformer
• # kodekan nama provinsi (kolom ke-0)
• # kode hanya sebatas penanda
• encoder_X = ColumnTransformer([('province_encoder',
OneHotEncoder(), [1])], remainder='passthrough')
• X= encoder_X.fit_transform(X).astype(float)
• print(X)

Copy Right @Syaiful Anam Matematika UB


Mengkodekan data kategori
• # y adalah dependent, cukup kodekan ke angka
• from sklearn.preprocessing import LabelEncoder
• labelencoder_y = LabelEncoder()
• y = labelencoder_y.fit_transform(y)
• print(y)

Copy Right @Syaiful Anam Matematika UB


Membagi dataset ke
dalam training set dan test set
• from sklearn.model_selection import train_test_split
• X_train, X_test, y_train, y_test = train_test_split(X, y,
test_size=0.2, random_state=0)
• Untuk parameter:

• test_size : proporsi test set, dalam hal ini 0.2.


• train_size: proporsi train size. Jika tidak di set, maka akan
menyesuaikan dengan test size (dalam kasus ini 0.8).
Berlaku kebalikannya.
• random_state : konstan ini akan membuat hasil splitting
tetap sama antar runtime atau antar mesin. Nilai bebas.

Copy Right @Syaiful Anam Matematika UB


Transformasi Data: Normalisasi

◼ Normalisasi min-max
v − minA
v' = (new _ maxA − new _ minA) + new _ minA
maxA − minA
◼ Normalisasi z-score
v − meanA
v' =
stand _ devA
◼ Normalisasi dengan penskalaan desimal

v
v'= j dimana j adalah bilangan bulat integer terkecil
10 sedemikian sehingga Max(|v' |)<1

Copy Right @Syaiful Anam Matematika UB


Contoh

• Misalkan data untuk analisis termasuk usia atribut. Nilai


usia untuk tupel data adalah (dalam urutan meningkat):
• 13, 15, 16, 16, 19, 20, 20, 21, 22, 22, 25, 25, 25, 25,
30, 33, 33, 35, 35, 35, 35, 36, 40, 45, 46, 52, 70.

a)Gunakan normalisasi min-max untuk mengubah nilai 35


untuk usia ke kisaran [0; 1].
b)Gunakan normalisasi z-skor untuk mengubah nilai 35
untuk usia, di mana standar deviasi usia adalah ?.
c) Gunakan normalisasi dengan penskalaan desimal untuk
mengubah nilai 35 untuk usia.

Copy Right @Syaiful Anam Matematika UB


Gunakan normalisasi min-max untuk mengubah
nilai 35 untuk usia ke kisaran [0; 1].

• data=[13, 15, 16, 16, 19, 20, 20, 21, 22, 22, 25, 25, 25,
25, 30, 33, 33, 35,...
• 35, 35, 35, 36, 40, 45, 46, 52, 70]
• Maks=max(data);
• Mins=min(data);
• minnew=input('Minimum Baru =');
• maxnew=input('Maximum Baru =');
• databaru=(35-Mins)/(Maks-Mins)*(maxnew-
minnew)+minnew

Copy Right @Syaiful Anam Matematika UB


Gunakan normalisasi z-skor untuk mengubah nilai 35
untuk usia, di mana standar deviasi usia adalah ??.

• data=[13, 15, 16, 16, 19, 20, 20, 21, 22, 22, 25, 25, 25,
25, 30, 33, 33, 35,...
• 35, 35, 35, 36, 40, 45, 46, 52, 70]
• rata=mean(data);
• STD=std(data);
• databaru=(35-rata)/STD

Copy Right @Syaiful Anam Matematika UB


Gunakan normalisasi dengan penskalaan
desimal untuk mengubah nilai 35 untuk usia
• data=[13, 15, 16, 16, 19, 20, 20, 21, 22, 22, 25, 25, 25,
25, 30, 33, 33, 35,...
• 35, 35, 35, 36, 40, 45, 46, 52, 70]
• Max=max(data);
• j=1;
• while (abs(Max)/10^j>1)
• j=j+1;
• end;
• Databaru=35/10^j

Copy Right @Syaiful Anam Matematika UB


Normalisasi

• from sklearn.preprocessing import StandardScaler


• sc = StandardScaler()
• # variabel dummy kode provinsi juga diskalakan
• X_train = sc.fit_transform(X_train)
• X_test = sc.transform(X_test)
• print(X_test)

Copy Right @Syaiful Anam Matematika UB


Reduksi Data
◼ Agregasidata
◼ Pemilihan fitur dan pengurangan dimensi
◼ Sampling
– Sampling secara acak
◼ Instance
selection (search based)
◼ Kompresi Data
◼ PCA, Transformasi Wavelet
◼ Diskritisasi Data

Copy Right @Syaiful Anam Matematika UB


Histograms

40
◼ Teknik reduksi data yang
populer 35
◼ Membagi data menjadi
ember dan simpan rata- 30
rata (jumlah) untuk setiap
ember 25
◼ Dapat dibangun secara 20
optimal dalam satu
dimensi menggunakan 15
pemrograman dinamis
10
◼ Terkait dengan masalah
kuantisasi. 5
0
10000 30000 50000 70000 90000
Copy Right @Syaiful Anam Matematika UB
Sampling

Raw Data
Copy Right @Syaiful Anam Matematika UB
Sampling

Raw Data Cluster/Stratified Sample

Copy Right @Syaiful Anam Matematika UB


Diskritisasi
◼ Tigatipe atribut:
– Nominal - nilai dari himpunan tidak berurutan
– Ordinal - nilai dari set yang dipesan
– Continuous - bilangan real
◼ Diskritisasi:
– Membagi rentang atribut kontinu ke dalam interval
– Beberapa algoritma klasifikasi hanya menerima
atribut kategorikal.
– Mengurangi ukuran data dengan diskritisasi
– Bersiaplah untuk analisis lebih lanjut

Copy Right @Syaiful Anam Matematika UB


Beberapa teknik diskritisasi

• Metode Binning– equal-width, equal-frequency

• Metode berbasis Entropy

Copy Right @Syaiful Anam Matematika UB


Metode Binning

• Nilai Atribut (untuk satu atribut :umur):


• 0, 4, 12, 16, 16, 18, 24, 26, 28
• Equi-width binning – untuk bin width =10:
• Bin 1: 0, 4 [-,10) bin
• Bin 2: 12, 16, 16, 18 [10,20) bin
• Bin 3: 24, 26, 28 [20,+) bin
• – denote negative infinity, + positive infinity
• Equi-frequency binning – untuk bin density = 3:
• Bin 1: 0, 4, 12 [-, 14) bin
• Bin 2: 16, 16, 18 [14, 21) bin
• Bin 3: 24, 26, 28 [21,+] bin

Copy Right @Syaiful Anam Matematika UB


Data Preprocessing in Python
using Scikit Learn
• Di python, scikit-learn library memiliki fungsi bawaan di
bawah sklearn.preprocessing.
• Ada lebih banyak opsi untuk pra-pemrosesan

Copy Right @Syaiful Anam Matematika UB


Contoh Data Preprocessing
• https://towardsdatascience.com/ways-to-detect-and-
remove-the-outliers-404d16608dba
• https://www.kaggle.com/anirban7/data-preprocessing-for-
beginners
• https://www.kaggle.com/residentmario/simple-techniques-
for-missing-data-imputation

Copy Right @Syaiful Anam Matematika UB

Anda mungkin juga menyukai