কীভাবে 4 মিলিয়ন প্রান্তের নেটওয়ার্ক ব্যবহার করে কেন্দ্রীয়তা ব্যবস্থা গণনা করবেন?


9

আমার কাছে একটি সিএসভি ফাইল রয়েছে যেখানে নির্দেশিত নেটওয়ার্কের 4 মিলিয়ন প্রান্তগুলি একে অপরের সাথে যোগাযোগের লোকদের প্রতিনিধিত্ব করে (যেমন জন মরিয়মের কাছে একটি বার্তা প্রেরণ করে, মেরি আনকে একটি বার্তা প্রেরণ করে , জন মেরিকে আরও একটি বার্তা প্রেরণ করে )। আমি দুটি জিনিস করতে চাই:

  1. প্রতিটি ব্যক্তির জন্য ডিগ্রি, মধ্যবর্তীতা এবং (সম্ভবত) ইগেনভেেক্টর কেন্দ্রীয়তার ব্যবস্থা গ্রহণ করুন।

  2. নেটওয়ার্কটির একটি ভিজ্যুয়ালাইজেশন পান।

আমি লিনাক্স সার্ভারের কমান্ড-লাইনে এটি করতে চাই কারণ আমার ল্যাপটপে খুব বেশি শক্তি নেই। আমি সেই সার্ভার এবং স্ট্যাটনেট লাইব্রেরিতে আর ইনস্টল করেছি। আমি আমার চেয়ে আরও যোগ্য কাউকে এই পোস্টটি পেয়েছি একই জিনিসটি করার চেষ্টা করে এবং এতে সমস্যা হচ্ছে। সুতরাং আমি ভাবছিলাম যে অন্য কারও কাছে কীভাবে এটি করা উচিত সে সম্পর্কে কোনও পয়েন্টার রয়েছে, তবে আমাকে ধাপে ধাপে গ্রহণ করা যেহেতু আমি কেবল সিএসভি ফাইল লোড করতে জানি এবং অন্য কিছুই নয়।

কেবল আপনাকে ধারণা দেওয়ার জন্য, আমার সিএসভি ফাইলটি এমন দেখাচ্ছে:

$ head comments.csv
    "src","dest"
    "6493","139"
    "406705","369798"
$ wc -l comments.csv 
4210369 comments.csv

এই কয়েকটি ব্যবস্থার জন্য এটি আর এটি পরিচালনা করতে পারে কিনা তা নোট নির্ভর করে যে নেটওয়ার্কে কতগুলি পৃথক লোক (নোড) রয়েছে তার উপর নির্ভর করে। অগত্যা গণনাগত দিকগুলির জন্য সেরা সরঞ্জাম হতে পারে না। লেসকোভেকের শেষ নামটি সহ একজন লোক আছেন যিনি কার্নেগি মেলন-এ থাকতেন --- আমার মনে হয় একজন ছাত্র হিসাবে --- যে বড় গ্রাফগুলিতে বর্ণনামূলক পরিসংখ্যান সহ প্রচুর স্টাফ করেছিল। গ্রাফগুলিকে "ভিজ্যুয়ালাইজ" করার জন্য প্রচুর ইউটিলিটি রয়েছে তবে বেশিরভাগ ক্ষেত্রেই আমি খুঁজে পেয়েছি যে তারা ব্যাখ্যা করতে বা বোঝার পক্ষে যথেষ্ট শক্ত're কেবল ডিগ্রি বিতরণকে গ্রাফ করা প্রথম শুরু হতে পারে।
কার্ডিনাল

এমনকি 4 মিলিয়ন পয়েন্ট প্লট করতে কিছু সময় লাগতে পারে ...
উইক

@ ওভ, না আজকের কম্পিউটারগুলিতে কেকের টুকরো। যাইহোক, আপনি সর্বদা একটি পিএনজিতে সর্বদা ডাম্প করতে পারেন এবং এটি সম্ভবত ডিগ্রি বিতরণের জন্য যথেষ্ট ভাল। ওপির গ্রাফ আসলে এত বড় নয়।
কার্ডিনাল

উত্তর:


7

আপনার কাছে যা আছে তা একটি প্রান্ত তালিকা যা নেটওয়ার্ক লাইব্রেরি ব্যবহার করে কোনও নেটওয়ার্ক অবজেক্টে রূপান্তরিত হতে পারে। কল্পিত ডেটা ব্যবহার করে এখানে একটি উদাহরণ দেওয়া আছে।

library(network)

src <- c("A", "B", "C", "D", "E", "B", "A", "F")
dst <- c("B", "E", "A", "B", "B", "A", "F", "A")

edges <- cbind(src, dst)
Net <- as.network(edges, matrix.type = "edgelist")

summary(Net)
plot(Net)

যাইহোক, একটি সতর্কতা ক্রমযুক্ত: আপনার একটি খুব বড় নেটওয়ার্ক আছে এবং আমি নিশ্চিত না যে প্লটটি সমস্ত তথ্যবহুল হবে। এটি সম্ভবত সুতার বড় বলের মতো দেখাবে। এই গ্রন্থাগারগুলি এত বড় ডেটাসেটগুলির সাথে কতটা ভাল আচরণ করে তাও আমি নিশ্চিত নই। আমি আপনাকে নেটওয়ার্ক, স্ট্যাটনেট এবং ইআরজিএম লাইব্রেরির ডকুমেন্টেশনগুলি একবার দেখে নেওয়ার পরামর্শ দিই। পরিসংখ্যানগত সফটওয়্যার জার্নাল (v24 / 3) অফার বিভিন্ন এইসব লাইব্রেরি আচ্ছাদন নিবন্ধ। সমস্যাটি এখানে পাওয়া যাবে:

http://www.jstatsoft.org/v24


1
আমি ফেইসবুক নেটওয়ার্কের বিশ্ব মানচিত্রটি স্মরণে রেখেছিলাম, যা আর-তে করা হয়েছিল remember মনে করি লেখক তাঁর ব্লগে তার প্রক্রিয়াটি কিছু বিশদে বর্ণনা করেছেন। আমি মনে করি যে এই পদ্ধতির ব্যবহারটি এমন একটি মানচিত্র তৈরি করবে যা 4 মিলিয়ন নোড সহ তথ্যবহুল।
ওউ জেসেন

সাদাসিধা প্রশ্নের জন্য দুঃক্ষিত, কিন্তু আমি একটি টেবিল হিসাবে আপনি কি পরিবর্তিত না srcএবং dst। আমি সাধারণত ফাইলটি লোড করার জন্য এটি করি (এখন একটি ট্যাব- el <- read.csv("comment-net/comments-ouids.tsv",header=T,sep="\t")
বিস্মৃত

read.csv () এর একটি ডেটা.ফ্রেম তৈরি করা উচিত। as.network () সরাসরি এটি পড়তে পারে বা আপনার as.matrix (এল) করার প্রয়োজন হতে পারে।
জেসন মরগান

আমি লক্ষ লক্ষ নোডের গ্রাফের সাহায্যে এই লাইব্রেরিগুলিতে অনেক কিছু করতে সক্ষম হওয়া সম্পর্কে সন্দিহান। আপনি কি আসলে তাদের তুলনীয় ডেটাসেট ব্যবহার করেছেন?
Szabolcs

পোস্টারটি নোড নয়, 4 মিলিয়ন প্রান্তযুক্ত একটি নেটওয়ার্ককে নির্দেশ করছে । আমি statnet3500 টিরও বেশি নোডের (~ 8 মিলিয়ন সম্ভাব্য প্রান্ত) একটি অপরিবর্তিত নেটওয়ার্কে লাইব্রেরির পরিবার ব্যবহার করেছি । এটি বেশ কার্যকর ছিল, বিশেষত যখন লক্ষ্যটি ছিল কেবলমাত্র নেটওয়ার্ক পরিসংখ্যান গণনা করা। আমি এমনকি এই আকারের নেটওয়ার্কগুলিতে ইআরজিএম অনুমান করেছি। তবে আপনার বক্তব্য ভালভাবে নেওয়া হয়েছে; আমি সন্দেহ করি লক্ষ লক্ষ নোডের নেটওয়ার্কগুলি সহজেই বিশ্লেষণ করা যেতে পারে।
জেসন মরগান 21

3

আমি মনে করি না যে আর এখানে প্রথম পছন্দ (সম্ভবত আমি ভুল)। আপনার নেটওয়ার্ক ফাইলগুলিকে উপযুক্ত ডেটা ফর্ম্যাটে ইনডেক্স করতে এবং প্রস্তুত করতে আপনার এখানে বিশাল অ্যারে লাগবে। সবার আগে, আমি জুরে'র (রব ​​উপরের পোস্টে তার উল্লেখ) এসএনএপি লাইব্রেরি ব্যবহার করার চেষ্টা করব ; এটি সি ++ এ লেখা এবং বড় নেটওয়ার্কগুলিতে খুব ভাল কাজ করে।


এসএনএপি উল্লেখ করার জন্য ধন্যবাদ আমি এটি খতিয়ে দেখছি। আপনি এটি ব্যবহার করেছেন? কেন্দ্রের নমুনাটি এটির সাথে আসে এটি আমি যা চাই তার কাছাকাছি মনে হয়। আমি এটি সংশোধন করার চেষ্টা করেছি যাতে এটি আমার বহু পরিচালিত গ্রাফ ডেটার সাথে কাজ করে তবে এটি সংকলন করতে ব্যর্থ হয়েছিল। এখানে এ সম্পর্কে কোনও প্রশ্ন জিজ্ঞাসা করা উপযুক্ত কিনা আমি নিশ্চিত নই, তাই আমি একটি নতুন প্রশ্ন তৈরি করতে পারি
amh

1
@ অ্যান্ড্রেসহ্ম, আপনি প্রথমে নির্দেশিত জোড়ের প্রতি একক পর্যবেক্ষণ করতে আপনার গ্রাফটি হ্রাস করার চেষ্টা করতে পারেন। ইগেনুয়ালু স্টাফের জন্য, আপনার ডেটা সম্ভবত গ্রাফের ওজনযুক্ত এলোমেলো পদব্রজেণের সমান বা সমতুল্য। আমি নিশ্চিত না যে এসএনএপি সেটিকে সমর্থন করে কিনা, তবে সম্ভবত এটি সম্ভব। অন্য সমস্ত কিছু যদি ব্যর্থ হয় তবে আপনি জুরকে খুব নির্দিষ্ট ইমেল প্রেরণ করতে পারেন। তিনি খুব সুন্দর লোক, তাই তিনি যদি কিছু দ্রুত নির্দেশনা সরবরাহ করেন তবে আমি অবাক হব না।
কার্ডিনাল

@ কার্ডিনাল: আমি এসএনএপ-তে একটি নমুনা কোড পেয়েছি যা আমি যা চাই ঠিক তা করি তবে একটি অনির্দেশিত গ্রাফের জন্য। আমি মনে করি আমার গ্রাফটি এসএনএপি ডক্সকে "নির্দেশিত মাল্টি-গ্রাফ" বলে। তাই আমি শুধু এক লাইন পরিবর্তিত centrality.cppথেকে TUNGraphথেকে TNEGraph(দেখুন pastebin.com/GHUquJvT লাইন 24)। এটি আর সংকলন হয় না। আমার সন্দেহ হয় এর জন্য নোডের বিভিন্ন ধরণের দরকার? আমি যে ত্রুটিটি পেয়েছি তা হ'ল: centrality.cpp:24: error: conversion from ‘TUNGraph::TNodeI’ to non-scalar type ‘TNEGraph::TNodeI’ requested( পেস্টবিন.
com

3

গিফি ( http://gephi.org/ ) ডেটা অন্বেষণ করার একটি সহজ উপায় হতে পারে। আপনি প্রায় অবশ্যই এটি কল্পনা করতে পারেন, এবং কিছু গণনা সম্পাদন করতে পারেন (যদিও আমি এটি কিছু সময়ের জন্য ব্যবহার করি নি তাই আমি সমস্ত ফাংশন মনে করতে পারি না)।


3

Million মিলিয়ন নোডের নেটওয়ার্ক নিয়ে অতীত অভিজ্ঞতা থেকে, আমি মনে করি আপনার সম্পূর্ণ নেটওয়ার্কটি ভিজ্যুয়ালাইজ করা আপনাকে একটি ব্যাখ্যা ছাড়াই চিত্র দেবে। আমি আপনার ডেটার সাবসেট ব্যবহার করে বিভিন্ন ভিজ্যুয়ালাইজেশনের পরামর্শ দিতে পারি যেমন সর্বাধিক ইনবাউন্ড বা আউটবাউন্ড লিঙ্কগুলির সাথে শীর্ষ 10 নোড ব্যবহার করে। আমি জিপি ব্যবহারের বিষয়ে দ্বিতীয় সেলেনিয়াসের পরামর্শটি দিয়েছি।


@ অ্যান্ড্রেসেম, মাসলভ এবং স্নেপেন ( বিজ্ঞান , ২০০২) এর একটি ভিজ্যুয়ালাইজেশন রয়েছে যা এই প্রসঙ্গে কার্যকর হতে পারে। সাম্প্রতিক পরিসংখ্যান / Comp-Sci মাধ্যমে অনুসন্ধান - এই কাজের সংশ্লিষ্ট উদ্ধৃতির, আমি দেখেছি এই হিসাবে ভাল। এখানে অন্য সম্পর্কিত কাজ হতে পারে।
কার্ডিনাল

1

আপনি যদি নেটওয়ার্কটির আকার নিয়ে উদ্বিগ্ন হন তবে igraphআপনি আর-তে প্যাকেজটি চেষ্টা করতে পারেন And বা networkxপাইথনের প্যাকেজ এমনকি


1

আপনি কি সন্দেহ করেন যে নেটওয়ার্কটিতে খুব সংখ্যক সংখ্যক সংযুক্ত উপাদান রয়েছে? যদি তা না হয় তবে আপনি এটিকে স্বতন্ত্র উপাদানগুলিতে পচন করতে পারেন যা কেন্দ্রিকতার পদক্ষেপগুলি গণনা করা আরও সহজ করে তুলবে।


এটির জন্য +1 - যদি এটি সম্পূর্ণরূপে সংযুক্ত উপাদান হয় তবে এটি একটি জিনিস তবে আপনি যদি নেটওয়ার্কটি পচন করতে পারেন তবে আপনার কাছে দুটি ছোট ডেটা এবং আসলে বেশ কয়েকটি স্বতন্ত্র নেটওয়ার্ক রয়েছে যা সমান্তরালভাবে বিশ্লেষণ করা যেতে পারে।
ফোমাইট

1

"Sna" এবং "নেটওয়ার্ক" সহ একাধিক আর সফ্টওয়্যার প্যাকেজ ব্যবহার করা যেতে পারে। আপনার যদি sna- র সাথে পারফরম্যান্স সংক্রান্ত সমস্যা হয় তবে আমি অবশ্যই নির্ভর করি না Network আমি নেটওয়ার্কএক্সকে মৃত্যুর কাছে ভালবাসি এবং এটি আমার বেশিরভাগ বিশ্লেষণের জন্য ব্যবহার করি তবে নেটওয়ার্কএক্স বেশিরভাগ খাঁটি পাইথোনিক বাস্তবায়ন হিসাবে গর্বিত। এটি বিশেষ করে দ্রুততর সংকলিত কোডটি ভালভাবে কাজে লাগায় না এবং প্রায়শই যথেষ্ট পরিমাণে নেটওয়ার্কএক্সকে আউটপেস করে s

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.