# data[].attributes.body
Nama : Nancy Vanessa

NPM : 2231021

Role : Data Collector

# data[].attributes.headline
Contoh Proyek Dengan Penggunaan Scikit-learn - Nancy Vanessa (2231021)

# data[].attributes.subject
Contoh Proyek Dengan Penggunaan Scikit-learn - Nancy Vanessa (2231021)

# data[].attributes.body
Wine Quality Prediction

Contoh pembelajaran singkat sederhana ini bertujuan untuk menentukan preferensi rasa wine manusia berdasarkan tes analitik yang mudah diakses pada tahap sertifikasi. Kita dapat menggunakan nilai estimasi untuk mengembangkan varietas wine baru, membuat pedoman harga, atau membantu sistem penasihat membuat keputusan. Untuk proyek prediksi kualitas wine ini, akan digunakan kumpulan data sampel wine yang tersedia di repositori pembelajaran mesin UCI. Terapkan regresi logistik dan pohon keputusan untuk membuat prediksi dan menganalisis prediksi menggunakan laporan klasifikasi dan matriks kebingungan. Selain itu, gunakan GridSearchCV untuk menyetel hiperparameter dari kedua algoritme. Gunakan pengklasifikasi vektor pendukung untuk mengklasifikasikan data sebelum memilih model terbaik yang akan digunakan untuk prediksi akhir berdasarkan skor.

Discussion : Selain wine quality prediction, beberapa proyek yang populer adalah

1. Digit Recognition dengan menggunakan CNN di Python

2. Heart Disease Prediction

3. House Price Prediction

4. Stock Price Prediction

# data[].attributes.body
Nama : Ficky Antonio

NPM : 2231139

Role : UI/UX Desain

# data[].attributes.body
Nama : Erwin

NPM : 2231061

Role : Backend

# data[].attributes.body
Nama: Monica Sonia

NPM : 2231154

Role : Backend

# data[].attributes.body
Nama : Kevin Lius

NPM : 2231020

Role : Data Scientist

# data[].attributes.headline
Gambaran Umum Scikit-learn - Monica Sonia (2231154)

# data[].attributes.subject
Gambaran Umum Scikit-learn - Monica Sonia (2231154)

# data[].attributes.body
Scikit-learn adalah alat untuk machine learning yang sangat berguna bagi pengembang dan peneliti. Ini memungkinkan kamu untuk membuat model yang bisa "belajar" dari data. Berikut ini penjelasan yang lebih sederhana tentang fitur utamanya:

1. Klasifikasi (Classification)

Ini adalah cara untuk mengategorikan data. Misalnya, jika kamu punya gambar kucing dan anjing, kamu bisa menggunakan klasifikasi untuk melatih komputer agar bisa mengenali gambar mana yang kucing dan mana yang anjing. Contoh algoritma:

K-Nearest Neighbors (KNN): Melihat data terdekat untuk memprediksi kategorinya.

Decision Trees: Membuat keputusan berdasarkan serangkaian pertanyaan "ya" atau "tidak".

2. Regresi (Regression)

Regresi digunakan untuk memprediksi angka. Misalnya, kamu bisa memprediksi harga rumah berdasarkan ukuran, lokasi, dan fitur lainnya. Algoritma regresi seperti:

Linear Regression: Model sederhana yang memprediksi hasil sebagai garis lurus.

Ridge Regression: Mirip dengan Linear Regression, tetapi lebih baik dalam mencegah overfitting (terlalu banyak mengikuti data pelatihan).

3. Klastering (Clustering)

Ini digunakan untuk mengelompokkan data tanpa label. Misalnya, jika kamu punya sekumpulan data pelanggan, klastering bisa membantu kamu menemukan kelompok pelanggan dengan kebiasaan serupa.

K-Means: Membagi data menjadi beberapa kelompok berdasarkan jarak terdekat.

DBSCAN: Mengelompokkan data yang padat dan membiarkan data yang jarang tetap di luar kelompok.

4. Pengurangan Dimensi (Dimensionality Reduction)

Kadang, data punya terlalu banyak fitur (seperti 100 kolom dalam tabel), yang membuat analisis jadi rumit. Pengurangan dimensi membantu menyederhanakan data tanpa kehilangan informasi penting. Contoh teknik:

PCA (Principal Component Analysis): Mengubah data besar menjadi lebih kecil tapi tetap bermakna.

5. Preprocessing Data

Sebelum data bisa dipakai, biasanya perlu dibersihkan atau diubah. Scikit-learn punya alat-alat untuk itu:

Normalisasi: Mengubah data menjadi skala yang sama (misalnya, dari 0 hingga 1).

Mengisi Data yang Hilang: Misalnya, jika ada data kosong, scikit-learn bisa mengisinya secara otomatis.

Discussion:

Scikit-learn

menyediakan banyak pilihan algoritma, mulai dari klasifikasi, regresi, klastering, hingga pengurangan dimensi. Hal ini memudahkan pengguna memilih metode yang tepat untuk problem yang dihadapi.

# data[].attributes.headline
contoh model pembelajaran menggunakan scikit-learn - Kevin Lius (2231020)

# data[].attributes.subject
contoh model pembelajaran menggunakan scikit-learn - Kevin Lius (2231020)

# data[].attributes.body
Model pembelajaran menggunakan scikit-learn kali ini untuk memprediksi quantitiy pembelian yang akan dibeli untuk kedepannya.

numpy: Untuk perhitungan numerik

pandas: Untuk manipulasi data.

render_template: Fungsi untuk merender halaman HTML.

pickle: Pustaka untuk menyimpan dan memuat objek Python (misalnya model) dari file

# data[].attributes.headline
Hasil dari contoh model pembelajaran menggunakan scikit-learn - Kevin Lius (2231020)

# data[].attributes.subject
Hasil dari contoh model pembelajaran menggunakan scikit-learn - Kevin Lius (2231020)

# data[].attributes.body
setelah memasukan data pada kolom

customer_id

item_category

previous_quantity

discount

maka akan dimunculkan hasil prediksi menggunakan model skicit-learn

# data[].attributes.headline
Kelebihan & Kekurangan Scikit-Learn - Erwin (2231061) 

# data[].attributes.subject
Kelebihan & Kekurangan Scikit-Learn - Erwin (2231061) 

# data[].attributes.body
Kelebihan Scikit-learn:

1. Mudah Digunakan dan Dipelajari: API Scikit-learn mudah dipahami, menjadikannya alat yang ramah bagi pemula maupun profesional. Dokumentasinya juga lengkap dan jelas.

2. Komprehensif: Scikit-learn menyediakan berbagai algoritma machine learning populer seperti klasifikasi, regresi, klastering, dan reduksi dimensi.

3. Integrasi yang Baik dengan Ekosistem Python: Scikit-learn bekerja sangat baik dengan library lain seperti NumPy, Pandas, dan Matplotlib, sehingga mempermudah integrasi dalam pipeline machine learning.

4. Skalabilitas: Meskipun fokusnya pada data dalam skala kecil hingga menengah, Scikit-learn tetap memiliki skalabilitas yang cukup baik untuk menangani dataset yang lebih besar dengan teknik optimalisasi.

5. Stabil dan Didukung Komunitas: Scikit-learn didukung oleh komunitas yang besar dan aktif, yang terus berkontribusi untuk pembaruan serta perbaikan bug.

6. Cross-validation dan Hyperparameter Tuning: Scikit-learn memiliki tools bawaan untuk cross-validation dan hyperparameter tuning (seperti GridSearchCV), yang memudahkan optimisasi model.

7. Dukungan Model yang Konsisten: Model di Scikit-learn memiliki antarmuka konsisten, sehingga mudah untuk mengganti atau mencoba algoritma berbeda tanpa mengubah banyak kode.

Kekurangan Scikit-learn:

1. Tidak Mendukung Deep Learning: Scikit-learn tidak mendukung framework deep learning seperti TensorFlow atau PyTorch. Ini berarti pengguna yang ingin membangun model neural network harus menggunakan library lain.

2. Tidak Cocok untuk Big Data: Scikit-learn lebih ideal untuk dataset kecil hingga menengah. Untuk data yang sangat besar, mungkin perlu menggunakan solusi lain seperti Apache Spark (MLlib) atau Dask.

3. Terbatas dalam Parallel Processing: Walaupun beberapa algoritma mendukung parallel processing, implementasinya masih terbatas jika dibandingkan dengan framework seperti TensorFlow atau PyTorch yang lebih memanfaatkan GPU.

4. Kurang Optimal untuk Data Tidak Terstruktur: Scikit-learn dirancang untuk bekerja dengan data terstruktur. Jika bekerja dengan teks atau gambar dalam skala besar, library lain seperti TensorFlow atau PyTorch lebih cocok.

5. Tidak Ada Implementasi Online Learning: Untuk model yang perlu di-update secara real-time seiring dengan penambahan data (online learning), Scikit-learn tidak memiliki dukungan bawaan yang luas.

Discussion :

Scikit-learn adalah library yang sangat berguna dan ramah pengguna untuk implementasi berbagai algoritma machine learning pada data skala kecil hingga menengah. Kelebihannya terletak pada kemudahan penggunaan, dokumentasi yang jelas, integrasi yang baik dengan ekosistem Python, serta dukungan untuk proses optimisasi model seperti cross-validation dan hyperparameter tuning. Namun, Scikit-learn memiliki keterbatasan dalam hal pemrosesan data besar, tidak mendukung deep learning, dan kurang optimal untuk data tidak terstruktur. Oleh karena itu, Scikit-learn sangat cocok untuk pemula dan untuk proyek machine learning yang tidak membutuhkan skala besar atau arsitektur yang kompleks

# data[].attributes.headline
Algoritma Yang Didukung Scikit-learn - Ficky Antonio (2231139)

# data[].attributes.subject
Algoritma Yang Didukung Scikit-learn - Ficky Antonio (2231139)

# data[].attributes.body
Scikit-learn mendukung berbagai algoritma pembelajaran mesin yang dikelompokkan berdasarkan tugas utamanya seperti klasifikasi, regresi, clustering, dan pengurangan dimensi. Berikut adalah daftar lengkap algoritma yang didukung:

1. Klasifikasi (Classification)

Digunakan untuk memprediksi nilai kategori (label diskrit).

Logistic Regression: Untuk klasifikasi biner atau multikelas.

K-Nearest Neighbors (KNN): Algoritma berbasis jarak.

Support Vector Machines (SVM): Menggunakan hyperplane untuk memisahkan kelas.

Decision Trees: Pohon keputusan untuk klasifikasi berbasis fitur.

Random Forests: Ensembel dari banyak pohon keputusan.

Gradient Boosting: Model ensembel yang meningkatkan performa pohon keputusan secara berurutan.

AdaBoost: Ensembel boosting yang meningkatkan model dasar.

Naive Bayes: Klasifikasi probabilistik berbasis Teorema Bayes.

GaussianNB (untuk data kontinu).

MultinomialNB (untuk data diskrit).

BernoulliNB (untuk data biner).

Perceptron: Model linear untuk klasifikasi biner.

Quadratic Discriminant Analysis (QDA): Model diskriminatif untuk klasifikasi.

Linear Discriminant Analysis (LDA): Model diskriminatif untuk mengurangi dimensi dan klasifikasi.

2. Regresi (Regression)

Digunakan untuk memprediksi nilai kontinu.

Linear Regression: Regresi linier sederhana.

Ridge Regression: Regresi linier dengan regularisasi L2.

Lasso Regression: Regresi linier dengan regularisasi L1.

ElasticNet: Kombinasi regularisasi L1 dan L2.

Support Vector Regression (SVR): Versi regresi dari SVM.

Decision Trees Regressor: Pohon keputusan untuk regresi.

Random Forests Regressor: Ensembel pohon keputusan untuk regresi.

Gradient Boosting Regressor: Ensembel gradient boosting untuk regresi.

AdaBoost Regressor: Ensembel untuk regresi yang menggunakan boosting.

Bayesian Ridge Regression: Regresi bayesian dengan regularisasi ridge.

Polynomial Regression: Regresi linier yang ditingkatkan dengan fitur polinomial.

3. Clustering

Digunakan untuk mengelompokkan data yang tidak berlabel.

K-Means: Algoritma partisi untuk mengelompokkan data dalam k kelompok.

DBSCAN: Algoritma clustering berbasis kepadatan.

Agglomerative Clustering: Algoritma clustering hierarkis.

Mean-Shift: Algoritma clustering berbasis estimasi kepadatan kernel.

Spectral Clustering: Clustering berbasis graf.

Birch (Balanced Iterative Reducing and Clustering using Hierarchies): Algoritma clustering yang efisien untuk data besar.

4. Pengurangan Dimensi (Dimensionality Reduction)

Digunakan untuk mengurangi jumlah fitur atau dimensi dalam dataset.

Principal Component Analysis (PCA): Mengurangi dimensi dengan mempertahankan variansi maksimum.

Kernel PCA: Versi non-linear dari PCA.

Truncated SVD: Untuk pengurangan dimensi pada data yang jarang (sparse).

t-SNE (t-distributed Stochastic Neighbor Embedding): Untuk visualisasi data dalam dimensi rendah.

Factor Analysis: Teknik untuk menganalisis struktur antar variabel.

Latent Dirichlet Allocation (LDA): Digunakan dalam model topik untuk teks.

5. Ensembles

Model ensembel yang menggabungkan beberapa model untuk meningkatkan kinerja.

Random Forests: Menggunakan banyak pohon keputusan yang digabungkan dengan metode bagging.

Gradient Boosting Machines (GBM): Menggabungkan banyak model lemah dengan boosting.

AdaBoost: Model boosting yang menggabungkan prediksi dari model sederhana.

Voting Classifier: Kombinasi dari beberapa model klasifikasi.

Bagging Classifier/Regressor: Teknik bootstrap aggregating (bagging) untuk klasifikasi atau regresi.

6. Seleksi Fitur (Feature Selection)

Digunakan untuk memilih fitur yang paling relevan.

Recursive Feature Elimination (RFE): Mengeliminasi fitur secara berulang untuk menemukan subset terbaik.

SelectKBest: Memilih k fitur terbaik berdasarkan skor statistik tertentu.

L1-based feature selection: Seleksi fitur berdasarkan regularisasi L1.

7. Support Vector Machines (SVM)

SVC: Klasifikasi menggunakan Support Vector Machines.

SVR: Regresi menggunakan Support Vector Machines.

8. Neural Networks

MLPClassifier: Multi-layer Perceptron untuk klasifikasi.

MLPRegressor: Multi-layer Perceptron untuk regresi.

9. Model Seleksi dan Evaluasi

Scikit-learn mendukung berbagai teknik untuk evaluasi dan pemilihan model, termasuk:

K-fold Cross Validation: Untuk membagi data menjadi beberapa subset untuk validasi silang.

GridSearchCV: Untuk optimasi hiperparameter dengan pencarian grid.

RandomizedSearchCV: Pencarian hiperparameter dengan metode sampling acak.

Kesimpulan:

Scikit-learn mendukung banyak algoritma yang mencakup klasifikasi, regresi, clustering, dan pengurangan dimensi, serta teknik ensembel. Pustaka ini menyediakan cara yang efisien dan sederhana untuk menerapkan berbagai algoritma pembelajaran mesin untuk data skala kecil hingga menengah.