Mục lục:
Video: Bài 7-Phần 2/3. Deep learning với Keras - Làm việc với Text trên đồ thị trong Python 2025
Hầu hết các nhà khoa học dữ liệu phải làm việc với dữ liệu đồ thị ở một số điểm. Python cung cấp cho bạn chức năng đó. Hãy tưởng tượng các điểm dữ liệu được kết nối với các điểm dữ liệu khác, chẳng hạn như cách một trang web được kết nối với một trang web khác thông qua các siêu liên kết. Mỗi điểm dữ liệu này là một nút . Các nút kết nối với nhau bằng các liên kết .
Không phải mọi nút đều liên kết với mọi nút khác, do đó các kết nối nút trở nên quan trọng. Bằng cách phân tích các nút và các liên kết của chúng, bạn có thể thực hiện tất cả các loại nhiệm vụ thú vị trong khoa học dữ liệu, chẳng hạn như xác định cách tốt nhất để đi làm từ nhà đến nhà bằng đường phố và đường cao tốc.
Hiểu ma trận nối tiếp
Ma trận ma trận nối tiếp đại diện cho các kết nối giữa các nút của một đồ thị. Khi có một kết nối giữa một nút này với nút khác, ma trận chỉ ra rằng nó là một giá trị lớn hơn 0. Biểu diễn chính xác các kết nối trong ma trận phụ thuộc vào việc đồ thị được định hướng hay không hướng.
Một vấn đề với nhiều ví dụ trực tuyến là các tác giả giữ chúng đơn giản cho mục đích giải thích. Tuy nhiên, các đồ thị trong thế giới thực thường là những phép phân tích dễ dàng và rộng lớn chỉ đơn giản thông qua sự ảo hóa. Chỉ cần suy nghĩ về số nút mà ngay cả một thành phố nhỏ sẽ có khi xem xét giao lộ đường phố. Nhiều đồ thị khác lớn hơn rất nhiều, và chỉ cần nhìn vào chúng sẽ không bao giờ lộ ra bất kỳ mô hình thú vị. Các nhà khoa học dữ liệu gọi vấn đề là trình bày bất kỳ biểu đồ phức tạp nào bằng cách sử dụng một ma trận kề với một hairball .
Một chìa khóa để phân tích các ma trận kề là phân loại theo các cách cụ thể. Ví dụ: bạn có thể chọn sắp xếp dữ liệu theo các thuộc tính khác với kết nối thực tế. Một biểu đồ kết nối đường phố có thể bao gồm ngày đường được lát vào lần cuối cùng với dữ liệu, làm cho bạn có thể tìm kiếm các mẫu hướng ai đó dựa trên đường phố được sửa chữa tốt nhất. Nói tóm lại, làm cho dữ liệu đồ thị trở nên hữu ích trở thành vấn đề thao túng việc tổ chức dữ liệu theo những cách cụ thể.
Sử dụng các kiến thức nền cơ bản của NetworkX
Việc làm việc với đồ thị có thể trở nên khó khăn nếu bạn phải viết toàn bộ mã từ đầu. May mắn thay, gói NetworkX cho Python làm cho nó dễ dàng tạo, thao tác, và nghiên cứu cấu trúc, năng động và các chức năng của các mạng phức tạp (hoặc đồ thị). Bạn cũng có thể sử dụng gói để làm việc với digraphs và multigraphs.
Sự nhấn mạnh chính của NetworkX là để tránh toàn bộ vấn đề của tóc.Việc sử dụng các cuộc gọi đơn giản che giấu phần lớn sự phức tạp của việc làm việc với đồ thị và các ma trận kề từ quan điểm. Ví dụ dưới đây chỉ ra cách tạo ma trận kề cơ bản từ một trong những đồ thị được cung cấp bởi NetworkX:
nhập mạng như nx G = nx. cycle_graph (10) A = nx. adjacency_matrix (G) print (A. todense ())
Ví dụ bắt đầu bằng cách nhập gói yêu cầu. Sau đó nó tạo ra một biểu đồ sử dụng mẫu cyc_graph (). Đồ thị chứa mười nút. Gọi adjacency_matrix () tạo ma trận kề từ đồ thị. Bước cuối cùng là in ra kết quả dưới dạng ma trận, như thể hiện ở đây:
[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 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 0 0] 1 0 0] [0 0 0 0 0 0 1 0 1 0] [1 0 0 0 0 0 0 1 0]]
Bạn không phải xây dựng đồ thị của riêng bạn từ đầu cho mục đích thử nghiệm. Trang web NetworkX mô tả một số loại biểu đồ chuẩn mà bạn có thể sử dụng, tất cả đều có sẵn trong IPython.
Thật thú vị khi xem biểu đồ trông như thế nào sau khi bạn tạo ra nó. Đoạn mã sau hiển thị biểu đồ cho bạn.
Lập đồ thị ban đầu.nhập matplotlib. pyplot như plt nx. draw_networkx (G) plt. show ()
Cốt truyện cho thấy bạn có thể thêm một cạnh giữa các nút 1 và 5. Đây là mã cần thiết để thực hiện tác vụ này bằng cách sử dụng hàm add_edge ().
Lập đồ thị bổ sung.G. add_edge (1, 5) nx. draw_networkx (G) plt. show ()