
Hai, habrozhiteli! Di perut jejaring sosial populer - Twitter, Facebook, LinkedIn, dan Instagram - setoran informasi terkaya disembunyikan. Dari buku ini, peneliti, analis, dan pengembang akan belajar cara mengekstrak data unik ini menggunakan kode Python, Notebook Jupyter, atau wadah Docker. Pertama, Anda akan berkenalan dengan fungsionalitas jejaring sosial paling populer (Twitter, Facebook, LinkedIn, Instagram), halaman web, blog dan feed, email, dan GitHub. Kemudian mulailah analisis data menggunakan contoh Twitter. Baca buku ini untuk:
- Pelajari tentang lanskap modern jejaring sosial;
- Belajar menggunakan Docker agar mudah dioperasikan dengan kode yang disediakan dalam buku;
- Pelajari cara mengadaptasi dan mengirimkan kode ke repositori terbuka GitHub;
- Pelajari cara menganalisis data yang dikumpulkan menggunakan kemampuan Python 3;
- Menguasai teknik analisis lanjutan seperti TFIDF, kesamaan kosinus, analisis kolokasi, deteksi klik, dan pengenalan pola;
- Pelajari cara membuat visualisasi data yang indah menggunakan Python dan JavaScript.
Kutipan. 4.3. Pengantar singkat tentang teknik pengelompokan data
Sekarang kami memiliki gagasan tentang cara mengakses API LinkedIn, kami akan pergi ke analisis spesifik dan membahas
pengelompokan secara terperinci [Jenis analisis ini juga sering disebut
perkiraan kebetulan ,
pencocokan fuzzy , dan / atau metode
deduplikasi -
ed .] - metode pembelajaran mesin tanpa guru, dianggap penting dalam setiap set alat analisis data. Algoritma pengelompokan mengambil koleksi elemen dan membaginya menjadi koleksi yang lebih kecil (cluster) sesuai dengan beberapa kriteria yang dirancang untuk membandingkan elemen-elemen dalam koleksi.
Clustering adalah metode analisis data yang mendasar, sehingga Anda bisa mendapatkan gambaran yang lebih lengkap, bab ini mencakup catatan kaki dan catatan yang menggambarkan perangkat matematika yang mendasarinya. Baik jika Anda mencoba memahami detail ini, tetapi untuk berhasil menggunakan metode pengelompokan, Anda tidak perlu memahami semua seluk-beluk, dan, tentu saja, Anda tidak diharuskan untuk memahaminya pertama kali. Anda mungkin perlu sedikit berpikir untuk mencerna beberapa informasi, terutama jika Anda tidak memiliki pelatihan matematika.
Misalnya, jika Anda mempertimbangkan untuk pindah ke kota lain, Anda dapat mencoba menggabungkan kontak LinkedIn dengan wilayah geografis untuk menilai dengan lebih baik peluang ekonomi yang tersedia. Kami akan kembali ke gagasan ini sedikit kemudian, tetapi untuk saat ini kami akan membahas secara singkat beberapa nuansa yang terkait dengan pengelompokan.
Saat menerapkan solusi untuk masalah pengelompokan data dari LinkedIn atau dari sumber lain, Anda akan berulang kali menemukan setidaknya dua topik utama (diskusi yang ketiga diberikan di bilah sisi "Peran pengurangan dimensi dalam pengelompokan" di bawah).
Normalisasi dataBahkan ketika menggunakan API yang sangat bagus, data jarang diberikan dalam format yang Anda butuhkan - seringkali dibutuhkan lebih dari konversi sederhana untuk membawa data ke dalam bentuk yang sesuai untuk analisis. Sebagai contoh, pengguna LinkedIn mengizinkan kebebasan tertentu ketika mendeskripsikan posting mereka, jadi tidak selalu mungkin untuk mendapatkan deskripsi normal yang sempurna. Satu manajer dapat memilih nama "direktur teknis", yang lain - nama yang lebih ambigu "TRP", dan yang ketiga dapat menggambarkan posisi yang sama dengan cara yang berbeda. Di bawah ini kami akan kembali ke masalah normalisasi data dan menerapkan templat untuk memproses aspek-aspek tertentu dalam data LinkedIn.
Definisi afinitasMemiliki seperangkat elemen yang dinormalisasi dengan baik, Anda mungkin ingin mengevaluasi kesamaan dari keduanya, baik itu nama posisi atau perusahaan, deskripsi kepentingan profesional, nama geografis, atau bidang lainnya yang nilainya dapat diwakili dalam teks sewenang-wenang. Untuk melakukan ini, Anda perlu mendefinisikan heuristik yang mengevaluasi kesamaan dari dua nilai. Dalam beberapa situasi, definisi kemiripan cukup jelas, tetapi dalam situasi lain hal itu dapat dipenuhi dengan beberapa kesulitan.
Misalnya, membandingkan panjang total layanan dua orang dicapai dengan operasi penambahan sederhana, tetapi membandingkan karakteristik profesional yang lebih luas, seperti "kemampuan kepemimpinan," dengan cara yang sepenuhnya otomatis bisa menjadi tantangan.
Peran reduksi dimensi dalam pengelompokan
Normalisasi data dan penentuan kesamaan adalah dua topik utama yang akan Anda temui dalam pengelompokan pada tingkat abstrak. Tetapi ada topik ketiga - pengurangan dimensi, yang menjadi relevan segera setelah skala data berhenti menjadi sepele. Untuk mengelompokkan elemen dalam satu set menggunakan metrik kesamaan, idealnya diinginkan untuk membandingkan setiap elemen dengan setiap elemen lainnya. Dalam kasus ini, dalam skenario kasus terburuk, untuk sekumpulan n elemen, Anda harus menghitung tingkat kesamaan sekitar n 2 kali untuk membandingkan masing-masing n elemen dengan n –1 elemen lainnya.
Dalam ilmu komputer, situasi ini disebut masalah kompleksitas kuadratik dan biasanya dilambangkan sebagai O (n 2 ) ; dalam percakapan, biasanya disebut "masalah pertumbuhan kuadrat O besar." O (n 2 ) masalah menjadi tidak dapat dipecahkan untuk nilai n yang sangat besar, dan dalam kebanyakan kasus istilah tidak dapat diselesaikan berarti Anda harus menunggu "terlalu lama" untuk solusi dihitung. "Terlalu lama" - bisa beberapa menit, bertahun-tahun atau era, tergantung pada sifat tugas dan keterbatasannya.
Tinjauan metode reduksi dimensionalitas berada di luar cakupan pembahasan saat ini, jadi kami hanya mencatat bahwa metode reduksi dimensi tipikal melibatkan penggunaan fungsi untuk mengatur elemen-elemen “yang hampir serupa” menjadi sejumlah grup yang tetap sehingga elemen-elemen dalam setiap grup dapat sepenuhnya dianggap serupa. Pengurangan dimensi seringkali tidak hanya sains, tetapi juga seni, dan biasanya dianggap informasi rahasia atau rahasia dagang oleh organisasi yang berhasil menggunakannya untuk mendapatkan keunggulan kompetitif.
Metode pengelompokan adalah bagian utama dari gudang alat dari setiap spesialis analisis data, karena di hampir semua industri - mulai dari intelijen militer hingga perbankan dan desain lansekap - Anda mungkin perlu menganalisis data relasional non-standar dalam jumlah yang sangat besar, dan pertumbuhan jumlah lowongan pekerjaan spesialis menurut tahun-tahun sebelumnya adalah bukti nyata akan hal ini.
Sebagai aturan, perusahaan membuat database untuk mengumpulkan informasi apa pun, tetapi tidak setiap bidang dapat berisi nilai dari beberapa set yang telah ditentukan. Ini mungkin disebabkan oleh logika yang tidak lengkap dari antarmuka pengguna aplikasi, ketidakmampuan untuk menentukan sebelumnya semua nilai yang dapat diterima, atau kebutuhan untuk memberi pengguna kemampuan untuk memasukkan teks apa pun seperti yang mereka inginkan. Meskipun demikian, hasilnya selalu sama: Anda mendapatkan sejumlah besar data yang tidak terstandarisasi. Bahkan jika dalam bidang tertentu dalam total
N nilai string yang berbeda dapat disimpan, beberapa dari mereka sebenarnya akan berarti konsep yang sama. Duplikat dapat terjadi karena berbagai alasan - karena kesalahan ejaan, penggunaan singkatan atau singkatan, serta register karakter yang berbeda.
Seperti disebutkan di atas, ini adalah situasi klasik yang muncul ketika menganalisis data dari LinkedIn: pengguna dapat memasukkan informasi mereka dalam bentuk teks bebas, yang pasti mengarah pada peningkatan variasi. Misalnya, jika Anda memutuskan untuk meneliti jaringan profesional Anda dan menentukan di mana sebagian besar kontak Anda bekerja, Anda harus mempertimbangkan opsi yang biasa digunakan untuk menulis nama perusahaan. Bahkan nama-nama perusahaan yang paling sederhana dapat memiliki beberapa opsi yang Anda hampir pasti akan menemukan (misalnya, "Google" - bentuk disingkat "Google, Inc."), dan Anda harus mempertimbangkan semua opsi ini untuk membawanya ke bentuk standar. Ketika menstandarkan nama perusahaan, titik awal yang baik adalah menormalkan singkatan dalam nama seperti LLC dan Inc.
4.3.1. Normalisasi data untuk analisis
Sebagai pengantar yang diperlukan dan bermanfaat untuk studi tentang algoritma pengelompokan, kami mempertimbangkan beberapa situasi khas yang mungkin Anda temui ketika memecahkan masalah normalisasi data dari LinkedIn. Di bagian ini, kami menerapkan templat standar untuk normalisasi jabatan perusahaan dan pekerjaan. Sebagai latihan yang lebih maju, kami juga akan membahas secara singkat masalah disambiguasi dan geocoding nama tempat dari profil LinkedIn. (Yaitu, kami akan mencoba mengonversi nama tempat dari profil LinkedIn, seperti "Greater Nashville Area", ke koordinat yang dapat dipetakan.)
Hasil utama dari upaya menormalkan data adalah kemampuan untuk memperhitungkan dan menganalisis fitur-fitur penting dan menggunakan metode analisis lanjutan, seperti pengelompokan. Dalam hal data dari LinkedIn, kami akan mempelajari fitur-fitur seperti pos dan lokasi geografis.
Normalisasi dan penghitungan perusahaan
Mari kita coba standarisasi nama perusahaan dari jaringan profesional Anda. Seperti dijelaskan di atas, Anda dapat mengekstraksi data dari LinkedIn dalam dua cara utama: secara terprogram, menggunakan API LinkedIn, atau menggunakan mekanisme ekspor jaringan profesional dalam bentuk buku alamat yang mencakup informasi dasar seperti nama, posisi, perusahaan, dan informasi kontak.
Bayangkan kita sudah memiliki file CSV dengan kontak yang diekspor dari LinkedIn, dan sekarang kita dapat menormalkan dan menampilkan entitas yang dipilih, seperti ditunjukkan dalam Contoh 4.4.
Seperti dijelaskan dalam komentar di dalam contoh, Anda perlu mengganti nama file CSV dengan kontak yang Anda ekspor dari LinkedIn, mengikuti instruksi di bagian "Mengunduh file informasi kontak di LinkedIn" dan menyalinnya ke direktori tertentu di mana kode program dapat menemukannya.
Contoh 4.4 Normalisasi singkatan dari nama perusahaan
import os import csv from collections import Counter from operator import itemgetter from prettytable import PrettyTable
Berikut ini adalah hasil analisis frekuensi sederhana:

Python mendukung kemampuan untuk meneruskan argumen ke fungsi dengan mendereferensi daftar dan / atau kamus, yang terkadang sangat nyaman, seperti ditunjukkan dalam Contoh 4.4. Misalnya, memanggil f (* args, ** kw) setara dengan memanggil f (1, 7, x = 23), di mana args didefinisikan sebagai daftar argumen [1,7] dan kw sebagai kamus {'x': 23}. Tip pemrograman Python lainnya dapat ditemukan di Lampiran B.
Ingatlah bahwa untuk menangani situasi yang lebih kompleks, misalnya, untuk menormalkan nama-nama berbeda dari perusahaan yang sama yang telah berubah dari waktu ke waktu, seperti O'Reilly Media, Anda perlu menulis kode yang lebih rumit. Dalam hal ini, nama perusahaan ini dapat diwakili sebagai O'Reilly & Associates, O'Reilly Media, O'Reilly, Inc. atau hanya O'Reilly [Jika Anda merasa kesulitan besar menanti Anda, bayangkan saja pekerjaan seperti apa yang harus dilakukan spesialis Dun & Bradstreet (http://bit.ly/1a1m4Om), yang berspesialisasi dalam membuat katalog informasi dan dihadapkan dengan tugas menyusun dan disertai dengan daftar nama perusahaan dalam berbagai bahasa di dunia
. ]
Tentang Penulis
Matthew Russell (@ptwobrussell) adalah spesialis terkemuka dari Middle Tennessee. Di tempat kerja, ia mencoba menjadi seorang pemimpin, membantu orang lain menjadi pemimpin dan menciptakan tim yang sangat efektif untuk memecahkan masalah yang kompleks. Di luar pekerjaan, ia merenungkan realitas, praktik-praktik yang diucapkan individualisme dan mempersiapkan kiamat zombie dan pemberontakan mesin.
Mikhail Klassen, @MikhailKlassen adalah spesialis pemrosesan dan analisis data senior di Paladin AI, sebuah perusahaan pemula yang menciptakan teknologi pembelajaran adaptif. Ia memiliki gelar PhD dalam bidang astrofisika dari Universitas McMaster dan gelar sarjana dalam bidang fisika terapan dari Universitas Columbia. Michael menyukai masalah kecerdasan buatan dan penggunaan alat analisis data untuk tujuan yang baik. Ketika tidak bekerja, biasanya membaca atau bepergian.
»Informasi lebih lanjut tentang buku ini dapat ditemukan di
situs web penerbit»
Isi»
KutipanKupon diskon 25% untuk penjaja -
Penambangan DataSetelah pembayaran versi kertas buku, sebuah buku elektronik dikirim melalui email.