Daftar Isi:
Video: What REALLY is Data Science? Told by a Data Scientist 2024
Sebagian besar ilmuwan data harus bekerja dengan data grafik di beberapa titik. Python memberi Anda fungsionalitas itu. Bayangkan titik data yang terhubung ke titik data lainnya, seperti bagaimana satu halaman web terhubung ke halaman web lain melalui hyperlink. Masing-masing titik data ini adalah simpul . Simpul terhubung satu sama lain menggunakan links .
Tidak setiap node terhubung ke setiap node lain, jadi koneksi node menjadi penting. Dengan menganalisis simpul dan kaitannya, Anda dapat melakukan berbagai macam tugas menarik dalam ilmu data, seperti menentukan cara terbaik untuk berangkat kerja ke rumah Anda menggunakan jalan-jalan dan jalan raya.
Memahami matriks adjacency
An adjacency matrix mewakili hubungan antara simpul grafik. Bila ada hubungan antara satu simpul dan node lainnya, matriks tersebut mengindikasikannya sebagai nilai yang lebih besar dari 0. Representasi yang tepat dari koneksi dalam matriks bergantung pada apakah grafik diarahkan (dari mana arah hubungan itu penting) atau tidak diarahkan.
Masalah dengan banyak contoh online adalah bahwa penulis membuat mereka tetap sederhana untuk tujuan penjelasan. Namun, grafik dunia nyata seringkali sangat besar dan menantang analisis mudah hanya melalui visualisasi. Pikirkan saja jumlah simpul yang bahkan ada kota kecil saat mempertimbangkan persimpangan jalan. Banyak grafik lain yang jauh lebih besar, dan hanya melihat mereka tidak akan pernah mengungkapkan pola yang menarik. Ilmu data menyebut masalah ini dalam menyajikan grafik kompleks menggunakan matriks kedekatan dengan rambut .
Salah satu kunci untuk menganalisis matriks kedekatan adalah dengan mengurutkannya dengan cara tertentu. Misalnya, Anda mungkin memilih untuk menyortir data sesuai dengan properti selain koneksi sebenarnya. Grafik koneksi jalan mungkin termasuk tanggal jalan terakhir diaspal dengan data, sehingga memungkinkan Anda untuk mencari pola yang mengarahkan seseorang berdasarkan jalan-jalan yang dalam perbaikan terbaik. Singkatnya, membuat data grafik berguna menjadi masalah memanipulasi organisasi data tersebut dengan cara yang spesifik.
Menggunakan dasar-dasar NetworkX
Bekerja dengan grafik bisa menjadi sulit jika Anda harus menulis semua kode dari awal. Untungnya, paket NetworkX untuk Python memudahkan untuk membuat, memanipulasi, dan mempelajari struktur, dinamika, dan fungsi jaringan kompleks (atau grafik). Anda bisa menggunakan paket itu untuk bekerja dengan digraf dan multigraf juga.
Penekanan utama NetworkX adalah menghindari keseluruhan masalah hairballs.Penggunaan panggilan sederhana menyembunyikan sebagian besar kompleksitas kerja dengan grafik dan matriks kedekatan dari pandangan. Contoh berikut menunjukkan bagaimana membuat matriks kedekatan dasar dari salah satu grafik yang disediakan oleh Jaringan:
import networkx sebagai nx G = nx. cycle_graph (10) A = nx. adjacency_matrix (G) print (A. todense ())
Contohnya dimulai dengan mengimpor paket yang dibutuhkan. Ini kemudian membuat grafik menggunakan template cycle_graph (). Grafik berisi sepuluh node. Memanggil adjacency_matrix () membuat matriks kedekatan dari grafik. Langkah terakhir adalah mencetak output sebagai matriks, seperti yang ditunjukkan di sini:
[[0 1 0 0 0 0 0 0 0 1] [1 0 1 0 0 0 0 0 0 0] [0 1 0 1 0 0 0 0 0 0 0] [0 0 1 0 1 0 0 0 0 0] [0 0 0 1 0 1 0 0 0 0] [0 0 0 0 1 0 1 0 0 0] [0 0 0 0 0 1 0 1 0 0] [0 0 0 0 0 0 1 0 1 0] [0 0 0 0 0 0 0 1 0 1] [1 0 0 0 0 0 0 0 1 0]]
Anda tidak perlu Buat grafik Anda sendiri dari awal untuk tujuan pengujian. Situs NetworkX mendokumentasikan sejumlah jenis grafik standar yang dapat Anda gunakan, yang kesemuanya tersedia di dalam IPython.
Menarik untuk melihat bagaimana grafik terlihat setelah Anda membuatnya. Kode berikut menampilkan grafik untuk Anda.
Memetakan grafik asli.impor matplotlib pyplot sebagai plt nx. draw_networkx (G) plt. show ()
Plot menunjukkan bahwa Anda dapat menambahkan tepi antara node 1 dan 5. Berikut kode yang diperlukan untuk melakukan tugas ini dengan menggunakan fungsi add_edge ().
Merencanakan penambahan grafik.G. add_edge (1, 5) nx. draw_networkx (G) plt. tunjukkan ()