Pandas adalah paket manipulasi data yang terkenal dan digunakan oleh banyak orang. Pandas terkenal karena intuitif dan mudah digunakan. Selain itu, Pandas mendapatkan banyak dukungan dari komunitas untuk meningkatkan paket tersebut.
Namun, hanya sedikit yang tahu bahwa Pandas juga memiliki fungsi plotting. Beberapa fungsi plotting dari Pandas sangat istimewa dan menawarkan wawasan bagi analisis data Anda. Apa saja fungsi-fungsi tersebut? Mari kita jelajahi bersama.
Sebagai contoh, kita akan menggunakan Data Titanic yang tersedia dari Kaggle.
Bootstrap Plot
Bootstrap plot adalah fungsi plotting dari Pandas untuk memperkirakan ketidakpastian statistik dengan menggunakan fungsi bootstrap (sampling data dengan penggantian). Ini adalah plot sederhana yang digunakan ketika mengukur statistik data (mean, median, midrange) dengan estimasi interval.
Mari kita coba menggunakan fungsi ini dengan sampel data.
import pandas as pd
df = pd.read_csv('train.csv')
pd.plotting.bootstrap_plot(df['Fare'], size = 150, samples = 1000)
Plot ini akan melakukan resampling data sebanyak parameter sampel dengan jumlah data pada parameter size.
Estimasi persebaran mean mendekati 30 hingga 40, dan median mendekati 12 hingga 15. Dengan plot ini, kita dapat mencoba memperkirakan statistik populasi yang sebenarnya. Hasil Anda mungkin berbeda dibandingkan dengan hasil saya karena sampling dilakukan secara acak.
Scatter Matrix Plot
Scatter Matrix Plot adalah fungsi plotting Pandas untuk membuat scatter plot dari semua data numerik yang tersedia. Mari coba fungsi ini untuk mempelajari tentang scatter matrix.
pd.plotting.scatter_matrix(df)
Seperti yang Anda lihat pada gambar di atas, fungsi scatter matrix secara otomatis mendeteksi semua kolom numerik dari data frame dan membuat scatter matrix untuk setiap kombinasi.
Fungsi ini juga membuat histogram plot untuk kolom yang sama untuk mengukur distribusi data.
Radviz Plot
Radviz plot adalah plot untuk memvisualisasikan data berdimensi N ke dalam plot 2D. Biasanya, data dengan lebih dari 3 dimensi akan sulit divisualisasikan, tetapi kita bisa melakukannya dengan Radviz Plot. Mari coba dengan contoh data.
pd.plotting.radviz(df[['SibSp', 'Parch', 'Pclass', 'Age', 'Fare','Survived']], 'Survived',
Pada fungsi di atas, kita hanya menggunakan data numerik dengan target untuk membagi data.
Hasilnya ditunjukkan pada gambar di atas. Namun, bagaimana kita bisa menginterpretasikan plot di atas? Untuk setiap variabel akan diwakili secara merata sebagai lingkaran. Setiap titik data dalam variabel akan diplot di dalam lingkaran sesuai dengan nilainya. Variabel yang sangat berkorelasi akan lebih dekat dalam lingkaran dibandingkan dengan variabel yang kurang berkorelasi.
Andrew Curves Plot
Andrew Curves plotting adalah metode untuk memvisualisasikan data multivariat untuk mengidentifikasi kluster dalam data. Ini juga bisa digunakan untuk mengidentifikasi apakah ada pemisahan dalam data. Mari kita coba dengan contoh data.
Andrew Curves bekerja dengan baik ketika data dinormalisasi dalam rentang 0 hingga 1, jadi kita akan memproses data sebelum menerapkan fungsi ini.
from sklearn.preprocessing import MinMaxScaler
df = df.drop(['PassengerId', 'Name', 'Sex', 'Ticket', 'Cabin', 'Embarked'], axis =1)
scaler = MinMaxScaler()
df_scaled = scaler.fit_transform(df.drop('Survived', axis =1))
df_scaled = pd.DataFrame(df_scaled, columns = df.drop('Survived', axis =1).columns)
df_scaled['Survived'] = df['Survived']
pd.plotting.andrews_curves(df_scaled, 'Survived', color =['blue', 'red'])
Pada gambar di atas, kita bisa melihat kluster yang berpotensi berbeda untuk kelas Survived.
Lag Plot
Lag plot adalah plot data time-series spesifik untuk memeriksa apakah data time-series berkorelasi dengan dirinya sendiri dan acak. Lag plot bekerja dengan memplot data time dengan lag mereka.
Misalnya, data T1 dengan lag 1 akan menjadi T1 yang diplot terhadap data T1+1 (atau T2). Mari coba fungsi ini untuk memahami lebih baik.
Kita akan membuat sampel data time-series untuk contoh ini.
np.random.seed(34)
x = np.cumsum(np.random.normal(loc=1, scale=5, size=100))
s = pd.Series(x)
s.plot()
Kita bisa melihat data time-series kita menunjukkan pola yang meningkat. Mari kita lihat seperti apa hasilnya ketika kita menggunakan lag plot.
pd.plotting.lag_plot(s, lag=1)
Kita bisa melihat data menunjukkan pola linear ketika kita menggunakan lag plot dengan lag 1. Ini berarti ada autokorelasi dengan perbedaan 1 hari dalam data. Mari kita lihat datanya apakah ada korelasi ketika kita menggunakan basis bulanan.
pd.plotting.lag_plot(s, lag=30)
Datanya sekarang menjadi sedikit lebih acak meskipun masih ada pola linearitas.
Kesimpulan
Pandas adalah paket manipulasi data yang juga menyediakan berbagai fungsi plotting unik. Dalam artikel ini, kita telah membahas 5 fungsi plotting Pandas yang berbeda:
Bootstrap Plot
Scatter Matrix Plot
Radviz Plot
Andrew Curves Plot
Lag Plot
Comments