
Penulis: Ilmu Data bertemu dengan Keamanan Cyber
Awalnya diterbitkan di Towards AI the World’s Leading AI and Technology News and Media Company. Jika Anda membuat produk atau layanan terkait AI, kami mengundang Anda untuk mempertimbangkan menjadi sponsor AI. Di Towards AI, kami membantu menskalakan AI dan startup teknologi. Biarkan kami membantu Anda melepaskan teknologi Anda kepada massa.
SUPPORT VECTOR MACHINE: MEMPREDIKSI MASA DEPAN – STUDI KASUS
LANJUTKAN METODE PEMBELAJARAN DIAWASI: BAGIAN-3
Seperti yang dijanjikan sebelumnya dalam SUPPORT VECTOR MACHINE — BAGIAN KE-3 DARI METODE PEMBELAJARAN YANG DIAWASI, mari kita bicara tentang studi kasus yang luar biasa untuk menganalisis dan memahami penerapan vektor dukungan ke dalam masalah bisnis nyata dan bersiap untuk hasil dan prediksi yang luar biasa yang tidak pernah dilihat oleh siapa pun. .
SUMBER GAMBAR: https://giphy.com/
PERNYATAAN MASALAH :
Dalam pernyataan masalah ini, kami akan mempelajari kasus di mana kami akan mencoba memprediksi apakah orang tersebut akan bertahan hidup berdasarkan faktor diagnostik yang mempengaruhi Hepatitis.
Pertama mari kita bicara tentang dataset yang akan kita gunakan. Dataset berisi kejadian hepatitis pada manusia.
BAGAIMANA DENGAN SUMBER DATASET INI?
SUMBER GAMBAR: https://tenor.com/ + PHOTOSHOPPED
Repositori pembelajaran mesin UCI digunakan untuk mendapatkan kumpulan data ini. Ini memiliki 155 rekaman dalam dua jenis terpisah, 32 di antaranya adalah catatan kematian dan 123 di antaranya adalah rekaman langsung. Ada 20 karakteristik dalam dataset (14 atribut biner dan 6 numerik)
Kami akan menggunakan sejumlah metode dalam studi kasus ini untuk berhasil memprediksi apakah orang tersebut akan bertahan atau tidak berdasarkan faktor diagnostik yang mempengaruhi Hepatitis pada metrik kesalahan yang tepat. Salah satu metode ini adalah CONFUSION MATRIX.
Jika Anda tidak jelas tentang pitch ini, silakan lihat posting blog kami sebelumnya tentang metrik kebingungan. (Datang di bawah blog DUNIA KLASIFIKASI)
SUMBER GAMBAR: https://lwmachinelearning.wordpress.com/portfolio/unbalanced-data-credit-card-fraud-detection/
MARI MULAI DENGAN BAGIAN PRAKTIS:
SUMBER GAMBAR: https://giphy.com/
LANGKAH 1: MEMUAT PERPUSTAKAAN YANG DIPERLUKAN DAN WAJIB:
#INI AKAN MEMBANTU KAMI MENGABAIKAN PERINGATAN SAAT MENJALANKAN KODE KAMI
peringatan impor
peringatan.filterwarnings(“abaikan”)
impor kami
impor numpy sebagai np
impor panda sebagai pd
dari sklearn.model_selection impor train_test_split
dari sklearn.preprocessing impor StandardScaler, OneHotEncoder
dari sklearn.impute mengimpor SimpleImputer
dari sklearn.svm mengimpor SVC
dari sklearn.metrics mengimpor kekeliruan_matrix, skor_akurasi, skor_penarikan, skor_presisi, skor_f1
dari sklearn.model_selection impor GridSearchCV
LANGKAH 2: MEMBACA DATASET HEPATITIS:
data = pd.read_csv(“/isi/hepatitis.csv”)
ANALISIS DATA PENJELAJAHAN:
PENTING: EDA adalah analisis terperinci yang dirancang untuk mengungkap struktur dasar kumpulan data. Ini penting untuk masalah bisnis karena mengungkapkan tren, pola, dan keterkaitan yang tidak segera terlihat.
#Memeriksa dimensi (baris dan kolom)
data.shape
#Memeriksa tipe data dari setiap variabel
data.dtypes
#Memeriksa kepala data (yaitu 5 baris teratas)
data.head()
#Memeriksa statistik ringkasan dasar
data.jelaskan()
#Memeriksa jumlah level unik di setiap atribut
data.nunique()
Distribusi atribut #Target
data.target.nilai_jumlah()
data.target.nilai_jumlah(normalkan=True)*100
LANGKAH3: PRA-PROSES DATA:
MENGAPA KITA HARUS PRA-PROSES DATA PERSIS?
SUMBER GAMBAR: https://giphy.com/
Setiap kali kami memutuskan untuk bekerja dengan data, langkah pertama adalah mengumpulkan data, yang biasanya dalam bentuk tidak terklasifikasi dan tidak bersih. Begitu kami mulai bekerja dengan data ini, menjadi sangat menantang bagi ilmuwan data untuk menemukan pola dan hasil yang jelas melalui jenis data tersebut, yang dapat mengakibatkan banyak positif dan negatif palsu serta kebingungan.
Jadi, untuk mencegah kekacauan seperti ini, kami membersihkan dan memproses data mentah terlebih dahulu untuk meningkatkan akurasi dan keandalan. Kami juga menghilangkan nilai data yang hilang (yaitu, spasi kosong di dalam data) atau tidak konsisten agar algoritme atau model dapat berjalan lancar tanpa mengalami nilai kesalahan yang signifikan.
Untuk membuat data mentah lebih mudah dipahami, praktis, dan efektif, pra-pemrosesan data juga dianggap sebagai metode penting yang digunakan dalam penambangan data. Seluruh prosedur pra-pemrosesan data ini membantu meningkatkan hasil kami.
#Let’s drop kolom yang tidak begitu signifikan dan digunakan
data.drop([“ID”]axis = 1, inplace=True) #Menyimpan nilai kategori dan numerik:
angka_kolom = [“age”, “bili”, “alk”, “sgot”, “albu”, “protime”]
cat_cols = [‘gender’, ‘steroid’, ‘antivirals’, ‘fatigue’, ‘malaise’, ‘anorexia’, ‘liverBig’,
‘liverFirm’, ‘spleen’, ‘spiders’, ‘ascites’, ‘varices’, ‘histology’]
#Memeriksa kepala kumpulan data sekali lagi untuk melihat tampilan kerangka data
data.head()
#Mengubah atribut menjadi tipe yang sesuai untuk menghindari kesalahan di masa mendatang
data[cat_cols] = data[cat_cols].astype(‘category’) #Setelah mengonversi tipe atribut, periksa tipe data untuk memastikan sekali lagi
data.dtypes
LANGKAH 4: MEMISAH DATA MENJADI ‘X’ DAN ‘Y’:
#Saatnya membagi data menjadi X dan Y
X = data.drop([“target”]sumbu = 1)
y = tanggal[“target”]
#Mendapatkan bentuk data
print(X.shape, y.shape) #Melatih data
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state = 123, stratify=y) #Mendapatkan bentuk data yang dilatih untuk menemukan perbedaan antara data yang tidak terlatih dan yang terlatih.
cetak(X_train.shape)
cetak(X_test.shape)
cetak(y_train.shape)
print(y_test.shape) #Periksa variabel target distribusi
y_train.value_counts()
y_train.value_counts(normalkan=True)*100
LANGKAH5: PRA-PROSES DATA SETELAH MEMISAH DATA MENJADI ‘X’ DAN ‘Y’:
#Memeriksa nilai nol
X_train.isna().sum()
X_test.isna().sum()
IMPUTASI HILANG KOLOM KATEGORI DENGAN MODE:
df_cat_train = X_train[cat_cols]
df_cat_test = X_test[cat_cols]
cat_imputer = SimpleImputer(strategi=’paling_sering’)
cat_imputer.fit(df_cat_train)
df_cat_train = pd.DataFrame(cat_imputer.transform(df_cat_train), kolom=cat_cols)
df_cat_test = pd.DataFrame(cat_imputer.transform(df_cat_test), kolom=cat_cols)
df_num_train = X_train[num_cols]
df_num_test = X_test[num_cols]
IMPUTASI KOLOM ANGKA YANG HILANG DENGAN MEDIAN:
num_imputer = SimpleImputer(strategi=’median’)
num_imputer.fit(df_num_train[num_cols])
df_num_train = pd.DataFrame(num_imputer.transform(df_num_train), kolom=num_cols)
df_num_test = pd.DataFrame(num_imputer.transform(df_num_test), kolom=num_cols)
SEKARANG, MENGGABUNGKAN KOLOM KATEGORI DAN NUMERIK TERHITUNG:
# Gabungkan numerik dan kategorikal dalam kereta
X_train = pd.concat([df_num_train, df_cat_train]sumbu = 1)
# Gabungkan numerik dan kategorikal dalam ujian
X_test = pd.concat([df_num_test, df_cat_test]sumbu = 1)
STANDARDISASI ATRIBUT NUMERIK:
SUMBER GAMBAR: https://giphy.com/
Karena metode yang kami gunakan membuat asumsi tentang berbagai bentuk distribusi, seperti regresi linier dan logistik, standardisasi adalah strategi yang sangat membantu yang membantu kami saat data kami memiliki skala yang beragam.
Ketika model regresi menggunakan variabel yang dinyatakan sebagai polinomial atau interaksi, para ilmuwan data sering membakukan data untuk model tersebut. Karena pentingnya istilah dan kemampuan untuk mengungkapkan hubungan antara respons dan faktor prediktor, mereka juga dapat menghasilkan tingkat multikolinearitas yang sangat tinggi.
scaler = StandardScaler()
scaler.fit(X_train[num_cols]) X_train_std = scaler.transform(X_train[num_cols])
X_test_std = scaler.transform(X_test[num_cols]) cetak(X_train_std.shape)
cetak(X_test_std.shape)
ONEHOTENCODER: MENGKONVERSI ATRIBUT KATEGORIK KE ATRIBUT NUMERIK:
MENGAPA?
Semua variabel input dan output untuk model pembelajaran mesin harus numerik. Ini berarti bahwa untuk menyesuaikan dan menilai model, data kategorikal harus dikodekan terlebih dahulu ke angka dalam data Anda.
SUMBER GAMBAR: https://giphy.com/
enc = OneHotEncoder(jatuhkan = ‘pertama’)
enc.fit(X_train[cat_cols]) X_train_ohe=enc.transform(X_train[cat_cols]).toarray()
X_test_ohe=enc.transform(X_test[cat_cols]).toarray()
ATRIBUT RANGKAIAN:
Atribut numerik standar dan atribut kategorikal dengan enkode one-hot.
X_train_con = np.concatenate([X_train_std, X_train_ohe]sumbu=1)
X_test_con = np.concatenate([X_test_std, X_test_ohe]sumbu=1) cetak(X_train_con.shape)
cetak(X_test_con.shape)
LANGKAH 6: AKHIRNYA MEMBANGUN MODEL MENGGUNAKAN LINEAR SVM:
MEMBUAT SVC CLASSIFIER MENGGUNAKAN LINEAR KERNEL:
linear_svm = SVC(kernel=’linear’, C=1) #Melatih pengklasifikasi
linear_svm.fit(X=X_train, y= y_train) #Memprediksi hasil
train_predictions = linear_svm.predict(X_train)
test_predictions = linear_svm.predict(X_test)
MATRIKS KESALAHAN:
Prosedur evaluasi yang membantu dalam menentukan dan meramalkan kelayakan model klasifikasi dikenal sebagai matriks kebingungan, juga dikenal sebagai matriks kesalahan. Anda dapat mengamati banyak kesalahan prediksi yang dapat Anda buat dengan menggunakan matriks kebingungan.
SUMBER GAMBAR: https://giphy.com/ #Mendefinisikan matriks kesalahan
def evaluasi_model(act, pred):
print (“Matriks Kebingungan n”, kebingungan_matrix (act, pred))
print(“Akurasi : “, akurasi_score(act, pred))
print(“Ingat : “, recall_score(act, pred))
print(“Presisi: “, precision_score(act, pred))
print(“F1_score : “, f1_score(act, pred)) ### Melatih akurasi data
evaluasi_model(y_train, train_predictions)
### Uji keakuratan data
evaluasi_model(y_test, test_predictions)
Seperti halnya saya suka menulis untuk kalian, saya harap Anda juga menikmati implementasi dan belajar dari studi kasus ini. Jika Anda memiliki pertanyaan atau memerlukan bantuan dengan sumber kumpulan data atau intisari GitHub (jika Anda mengalami masalah dengan bagian kode), silakan hubungi kami; kami akan dengan senang hati membantu.😁❤️
SUMBER GAMBAR: https://giphy.com/
LANJUTKAN UNTUK MERAMALKAN, PELAJARI, DAN JELAJAHI! ❤️
IKUTI KAMI UNTUK KESENANGAN YANG SAMA UNTUK BELAJAR BLOG DAN ARTIKEL ILMU DATA:💙
TERKAIT: https://www.linkedin.com/company/dsmcs/
INSTAGRAM: https://www.instagram.com/datasciencemeetscybersecurity/?hl=id
GITHUB: https://github.com/Vidhi1290
TWITTER: https://twitter.com/VidhiWaghela
SEDANG: https://medium.com/@datasciencemeetscybersecurity-
SITUS WEB: https://www.datasciencemeetscybersecurity.com/
– TIM DATA SCIENCE MEMENUHI KEAMANAN CYBER ❤️💙
SUPPORT VECTOR MACHINE : MEMPREDIKSI MASA DEPAN – STUDI KASUS awalnya diterbitkan di Menuju AI di Medium, di mana orang melanjutkan percakapan dengan menyoroti dan menanggapi cerita ini.
Diterbitkan melalui Menuju AI