Python untuk Data Science dan Machine Learning
Python
Beberapa fitur python yang digunakan antara lain:
Selain itu terdapat beberapa libraries pendukung antara lain:
- numpy: untuk manipulasi array.
- pandas: untuk manipulasi tables. semacam padanan dari spreadsheet.
- matplotlib: untuk visualisasi data.
- seaborn: untuk visualisasi data.
- plotly dan cufflinks: untuk visualisasi data interaktif.
- scikit-learn: untuk machine learning.
Numpy
Beberapa fungsi yang disediakan numpy antara lain:
np.array()
: untuk membuat array.np.arange()
: untuk membuat array dengan range tertentu.np.linspace()
: untuk membuat array dengan range tertentu dengan jumlah elemen yang ditentukan.np.zeros()
: untuk membuat array dengan elemen 0.np.ones()
: untuk membuat array dengan elemen 1.np.eye()
: untuk membuat array dengan elemen 1 di diagonal dan 0 di luar diagonal.np.random.rand()
: untuk membuat array dengan elemen random.np.random.randn()
: untuk membuat array dengan elemen random dengan distribusi normal.np.reshape()
: untuk mengubah bentuk/dimensi array.[:,:]
: untuk mengakses seluruh elemen array.[a:b]
: untuk mengakses elemen array dari indeks a sampai b eksklusif.[:b]
: untuk mengakses elemen array dari indeks 0 sampai b eksklusif.[a:]
: untuk mengakses elemen array dari indeks a sampai indeks terakhir.np.max()
: untuk melihat nilai maksimum dari array.np.min()
: untuk melihat nilai minimum dari array.np.argmax()
: untuk melihat indeks dari nilai maksimum dari array.
Pandas
Pandas adalah library yang running di atas numpy. Pandas menyediakan struktur data yang mirip dengan spreadsheet. Pandas menyediakan dua struktur data utama, yaitu:
- Series: struktur data yang mirip dengan array 1 dimensi.
- DataFrame: struktur data yang mirip dengan array 2 dimensi.
Beberapa fungsi yang disediakan pandas antara lain:
pd.read_csv()
: untuk membaca file csv.[DataFrame].head()
: untuk melihat 5 baris pertama dari DataFrame.[DataFrame].tail()
: untuk melihat 5 baris terakhir dari DataFrame.[DataFrame].info()
: untuk melihat informasi dari DataFrame.[DataFrame].value_counts()
: untuk melihat jumlah dari setiap nilai dari kolom tertentu.[DataFrame].mean()
: untuk melihat rata-rata dari setiap kolom.[DataFrame].min()
: untuk melihat nilai minimum dari setiap kolom.[DataFrame].max()
: untuk melihat nilai maksimum dari setiap kolom.[DataFrame].sum()
: untuk melihat jumlah dari setiap kolom.[DataFrame].groupby()
: untuk mengelompokkan data berdasarkan kolom tertentu.[BooleanExpression]
: untuk melakukan filter data.[(bool1) & (bool2)]
: untuk melakukan filter data dengan kondisi AND.[(bool1) | (bool2)]
: untuk melakukan filter data dengan kondisi OR.
Pandas juga memungkinkan untuk melakukan query, seperti query pada database. contoh:
# query table salaries, cari data dengan BasePay > 100000 dan Year = 2013
salaries[(salaries['BasePay'] > 100000) & (salaries['Year'] == 2013)]
Matplotlib
Matlabplotlib adalah library untuk visualisasi data yang terinspirasi dari Matlab. Beberapa fungsi yang disediakan matplotlib antara lain:
plt.plot()
: untuk membuat plot.plt.show()
: untuk menampilkan plot.plt.figure()
: untuk membuat figure.plt.subplot()
: untuk membuat subplot.plt.title()
: untuk menambahkan judul pada plot.plt.xlabel()
: untuk menambahkan label sumbu x pada plot.plt.ylabel()
: untuk menambahkan label sumbu y pada plot.plt.legend()
: untuk menambahkan legend pada plot.ax.plot()
: untuk membuat plot pada axis.ax.set_title()
: untuk menambahkan judul pada plot pada axis.ax.set_xlabel()
: untuk menambahkan label sumbu x pada plot pada axis.ax.set_ylabel()
: untuk menambahkan label sumbu y pada plot pada axis.ax.set_xlim()
: untuk menambahkan batas sumbu x pada plot pada axis.ax.set_ylim()
: untuk menambahkan batas sumbu y pada plot pada axis.
matplotlib bisa langsung diakses lewat pandas. contoh:
# membuat plot dari kolom TotalPay
salaries['TotalPay'].plot()
Seaborn
Seaborn dibuat di atas matplotlib. Seaborn menyediakan beberapa chart/diagram yang siap digunakan. antara lain:
- Distribution Plot: untuk melihat distribusi data.
- Categoical Plot: untuk melihat distribusi data berdasarkan kategori.
- Matrix Plot: untuk melihat hubungan antar kolom.
- Grid Plot: untuk melihat hubungan antar kolom dengan kategori.
- Regression Plot: untuk melihat hubungan antar kolom dengan garis regresi.
seaborn bisa digunakan untuk mengubah style dari matplotlib. contoh:
# mengubah style matplotlib menjadi darkgrid
sns.set_style('darkgrid')
maka semua plot yang dibuat akan menggunakan style darkgrid.
Plotly and Cufflinks
Plotly dan Cufflinks adalah library untuk visualisasi data yang interaktif. Plotly dan Cufflinks bisa digunakan untuk membuat plot yang bisa di zoom, di scroll, dan bisa di save ke dalam file html. Plotly juga bisa digunakan melalui pandas. contoh:
# membuat plot dari kolom TotalPay
salaries['TotalPay'].iplot()
Cukup dengan mengubah dari plot()
menjadi iplot()
, maka plot yang dibuat akan interaktif.
Scikit-Learn
Scikit-Learn adalah library untuk machine learning. Scikit-Learn menyediakan beberapa algoritma machine learning, antara lain:
- Linear Regression
- Logistic Regression
- K-Nearest Neighbors
- K-Means
- Decision Trees
- Random Forest
- Support Vector Machines
- Natural Language Processing
Contoh penggunaan
-
Prediksi menggunakan Multinomial Naive Bayes
# import library from sklearn.naive_bayes import MultinomialNB from sklearn.metrics import classification_report, confusion_matrix # tentukan X dan y X = df['text'] y = df['label'] # split data X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3) # inisialisasi model model = MultinomialNB() # training model model.fit(X_train, y_train) # prediksi y_pred = model.predict(X_test) # evaluasi model print(classification_report(y_test, y_pred)) print(confusion_matrix(y_test, y_pred))
Ringkasan
Keterkaitan antara python dan library-library tersebut bisa dilihat pada gambar berikut: