Mówiąc koncepcyjnie, eksplorację danych można traktować jako jeden element (lub zestaw umiejętności i zastosowań) w zestawie narzędzi naukowca zajmującego się danymi. Mówiąc dokładniej, eksploracja danych to czynność polegająca na poszukiwaniu wzorców w dużych, złożonych zestawach danych. Zwykle kładzie nacisk na techniki algorytmiczne, ale może również obejmować dowolny zestaw powiązanych umiejętności, aplikacji lub metodologii służących temu celowi. W mowie potocznej w języku amerykańsko-angielskim eksploracja danych i gromadzenie danych są często używane zamiennie. Jednak główną różnicą między tymi dwoma powiązanymi działaniami jest celowość.
PYTANIA:
Grupowanie K-średnich dla mieszanych danych liczbowych i jakościowych
Mój zestaw danych zawiera szereg atrybutów liczbowych i jeden kategoryczny. Powiedz, NumericAttr1, NumericAttr2, …, NumericAttrN, CategoricalAttr, gdzie CategoricalAttr przyjmuje jedną z trzech możliwych wartości: CategoricalAttrValue1, CategoricalAttrValue2 lub CategoricalAttrValue3. Używam domyślnej implementacji algorytmu klastrowania k-średnich dla Octave https://blog.west.uni-koblenz.de/2012-07-14/a-working-k-means-code-for-octave/. Działa tylko z danymi liczbowymi. Więc moje pytanie: czy podzielenie atrybutu kategorialnego CategoricalAttr na trzy zmienne numeryczne (binarne), takie jak IsCategoricalAttrValue1, IsCategoricalAttrValue2, IsCategoricalAttrValue3, jest poprawne?
Standardowy algorytm k-średnich nie ma bezpośredniego zastosowania do danych kategorialnych z różnych powodów. Przestrzeń próbna dla danych kategorycznych jest dyskretna i nie ma naturalnego pochodzenia. Funkcja odległości euklidesowej w takiej przestrzeni nie ma większego znaczenia. Jak ktoś to ujął: „Fakt, że wąż nie ma ani kół, ani nóg, nie pozwala nam nic powiedzieć o względnej wartości kół i nóg”. (stąd) Istnieje odmiana k-średnich znanych jako k-modów, wprowadzona w tym artykule przez Zhexue Huang, która jest odpowiednia dla danych jakościowych. Zwróć uwagę, że otrzymane rozwiązania są wrażliwe na warunki początkowe, jak omówiono na przykład tutaj (PDF). Praca Huanga (do której link znajduje się powyżej) zawiera również sekcję o „k-protoypes”, która dotyczy danych z połączeniem cech jakościowych i liczbowych. Używa miary odległości, która łączy odległość Hamminga dla cech kategorialnych i odległość euklidesową dla cech numerycznych. Wyszukiwanie w Google „mieszanki k-średnich danych kategorialnych” prowadzi do pojawienia się kilku nowszych artykułów na temat różnych algorytmów grupowania k-średnich z mieszanką danych jakościowych i liczbowych. (Jeszcze ich nie czytałem, więc nie mogę komentować ich zalet). Właściwie to, co sugerujesz (konwersja atrybutów kategorialnych na wartości binarne, a następnie wykonywanie k-średnich tak, jakby były to wartości liczbowe) jest innym podejściem, które został wypróbowany wcześniej (przed trybami k). Ale uważam, że podejście kmodes jest preferowane z powodów, które wskazałem powyżej.
Moim zdaniem istnieją rozwiązania umożliwiające radzenie sobie z danymi kategorycznymi w grupowanie. R ma określoną odległość dla danych kategorycznych. Odległość ta nazywa się Gower (http: //www.insider. Org / packages / cran / StatMatch / docs / gower.dist) i działa całkiem dobrze.
Grupowanie danych klientów przechowywanych w ElasticSearch
Mam kilka profili klientów przechowywanych w klastrze Flexiblesearch. Te profile są teraz używane do tworzenia grup docelowych dla naszych subskrypcji e-mailowych. Grupy docelowe są teraz tworzone ręcznie za pomocą funkcji wyszukiwania aspektowego elastycznego wyszukiwania (np. Pozyskiwanie wszystkich klientów płci męskiej w wieku 23 lat z jednym samochodem i trojgiem dzieci). Jak mogę automatycznie wyszukiwać interesujące grupy – przy użyciu nauki o danych, maszynowe uczenie, tworzenie klastrów czy coś innego? R język programowania wydaje się być dobrym narzędziem do tego zadania, ale nie potrafię sformułować metodologii takiego wyszukiwania grupowego. Jednym z rozwiązań jest jakoś wyszukanie największych klastrów klientów i wykorzystanie ich jako grup docelowych, więc pytanie brzmi: jak mogę automatycznie wybrać największe skupiska podobnych klientów (podobnych przez parametry, których w tej chwili nie znam)?
Na przykład: mój program połączy się z elastyczną wyszukiwarką, przeładuje dane klientów do CSV i używając skryptu języka R wykryje, że duża część klientów to mężczyźni bez dzieci, a kolejna duża część klientów ma samochód i ma brązowe oczy.
Jednym z algorytmów, który może być użyty do tego jest algorytm grupowania k-średnich. Gruntownie:
- Losowo wybierz k punktów danych ze swojego zestawu, m_1,…, m_k.
- „Do konwergencji”:
- Przypisz punkty danych do k klastrów, gdzie klaster i to zbiór punktów, dla których m_i jest najbliższą z twoich aktualnych średnich
- Zastąp każde m_i średnią wszystkich punktów przypisanych do klastra i.
Dobrą praktyką jest kilkakrotne powtórzenie tego algorytmu, a następnie wybranie wyniku, który minimalizuje odległości między punktami każdego klastra i a środkiem m_i. Oczywiście musisz znać k, aby zacząć tutaj; możesz jednak użyć weryfikacji krzyżowej, aby wybrać ten parametr.
Jakie są dobre źródła, aby dowiedzieć się o Bootstrap?
Myślę, że Bootstrap może być przydatny w mojej pracy, w której mamy wiele zmiennych, których nie znamy w dystrybucji. Zatem symulacje mogą pomóc. Jakie są dobre źródła, aby dowiedzieć się o Bootstrap / innych przydatnych metodach symulacji?
Czy maszyny obsługujące wektorów są nadal uważane za „najnowocześniejsze” w swojej niszy?
To pytanie jest odpowiedzią na komentarz, który widziałem na temat innego pytania.
Komentarz dotyczył programu nauczania uczenia maszynowego na Coursera i stwierdzał, że „maszyny SVM nie są obecnie tak często używane”. Właśnie skończyłem osobiście odpowiednie wykłady i rozumiem, że maszyny SVM są solidnym i wydajnym algorytmem uczenia się do klasyfikacji, a gdy używam jądra, mają one „niszę” obejmującą wiele funkcji, być może od 10 do 1000 i liczba próbek szkoleniowych może wynosić od 100 do 10 000. Ograniczenie dotyczące próbek uczących wynika z tego, że podstawowy algorytm obraca się wokół optymalizacji wyników generowanych z macierzy kwadratowej o wymiarach opartych na liczbie próbek uczących, a nie liczbie oryginalnych cech.
Czy komentarz, który widziałem, odnosi się do jakiejś prawdziwej zmiany od czasu wprowadzenia kursu, a jeśli tak, jaka to zmiana: nowy algorytm, który obejmuje również „sweet spot” SVM, lepsze procesory, co oznacza, że zalety obliczeniowe SVM nie są tak dużo warte ? A może taka jest opinia lub osobiste doświadczenie komentującego? Próbowałem wyszukać np. „Są z mody maszynami wektorów nośnych” i nie stwierdzili, że nic nie sugeruje, że zostały porzucone na rzecz czegokolwiek innego.
A Wikipedia ma to: http://en.wikipedia.org/wiki/Support_vector_machine#Issues
… Głównym punktem spornym wydaje się być trudność w interpretacji modelu. Co sprawia, że SVM jest odpowiedni dla silnika przewidującego czarną skrzynkę, ale nie jest tak dobry do generowania spostrzeżeń. Nie uważam tego za poważny problem, tylko kolejną drobną rzecz, którą należy wziąć pod uwagę przy wyborze odpowiedniego narzędzia do pracy (wraz z charakterem danych szkoleniowych i zadaniem edukacyjnym itp.).
SVM to potężny klasyfikator. Ma kilka fajnych zalet (które, jak sądzę, przyczyniły się do jego popularności)… Są to:
Wydajność: Tylko wektory pomocnicze odgrywają rolę w określaniu granicy klasyfikacji. Wszystkie inne punkty z zestawu treningowego nie muszą być przechowywane w pamięci. Tak zwana moc jądra: dzięki odpowiednim jądrom można przekształcić przestrzeń cech w wyższy wymiar, tak aby stała się liniowo rozdziela. Pojęcie jądra działa z dowolnymi obiektami, na których można zdefiniować pewne pojęcie podobieństwa za pomocą iloczynów wewnętrznych… a zatem maszyny SVM mogą klasyfikować dowolne obiekty, takie jak drzewa, wykresy itp. Istnieją również pewne istotne wady. Czułość parametrów: wydajność jest bardzo wrażliwa na wybór parametru regularyzacji C, co pozwala na pewną wariancję w modelu. Dodatkowy parametr dla jądra Gaussa: promień jądra Gaussa może mieć znaczący wpływ na dokładność klasyfikatora. Zazwyczaj w celu znalezienia optymalnych parametrów należy przeprowadzić przeszukiwanie sieci. LibSVM obsługuje wyszukiwanie w siatce. Maszyny SVM generalnie należą do klasy „rzadkich maszyn jądra”. Rzadkie wektory w przypadku SVM są wektorami pomocniczymi, które są wybierane z kryterium maksymalnego marginesu. Inne rzadkie maszyny wektorowe, takie jak maszyna wektorów istotności (RVM), działają lepiej niż SVM. Poniższy rysunek przedstawia porównawczą wydajność obu. Na rysunku oś x przedstawia jednowymiarowe dane z dwóch klas y = {0,1}. Model mieszaniny jest zdefiniowany jako P (x | y = 0) = Unif (0,1) i P (x | y = 1) = Unif (.5,1,5) (Unif oznacza rozkład równomierny). Z tej mieszaniny pobrano próbki 1000 punktów i zastosowano SVM i RVM do oszacowania późniejszego. Problem SVM polega na tym, że przewidywane wartości są dalekie od prawdziwych log kursów.
Bardzo skutecznym klasyfikatorem, który jest obecnie bardzo popularny, jest Losowy Las. Główne zalety to:
* Tylko jeden parametr do dostrojenia (tj. Liczba drzew w lesie)
* Brak całkowitej wrażliwości na parametry
* Można łatwo rozszerzyć na wiele klas
* Opiera się na zasadach probabilistycznych (maksymalizacja wzajemnego uzyskiwania informacji za pomocą drzew decyzyjnych)
Dane handlowe NASDAQ
Próbuję znaleźć dane giełdowe do ćwiczenia, czy jest na to dobry zasób? Znalazłem to: ftp://emi.nasdaq.com/ITCH/, ale ma tylko bieżący rok. Mam już sposób parsowania protokołu, ale chciałbym mieć więcej danych do porównania. Nie musi być w tym samym formacie, o ile zawiera statystyki dotyczące cen, transakcji i dat.
Możesz bardzo łatwo pobrać dane giełdowe w Pythonie i R (prawdopodobnie również w innych językach) za pomocą następujących pakietów: W pythonie za pomocą: https://pypi.python.org/pypi/ystockquote To także bardzo fajny samouczek w iPythonie, który pokazuje, jak pobrać dane giełdowe i bawić się nimi: http://nbviewer.ipython.org/github/twiecki/financial-analysis-pythontutorial/ blob / master / 1.% 20Pandas% 20Basics.ipynb
W R z: http://www.quantmod.com/HTH.
Jaki jest pożytek z gromadzenia danych użytkowników oprócz wyświetlania reklam?
Cóż, to wygląda na najbardziej odpowiednie miejsce na to pytanie. Każda witryna internetowa gromadzi dane użytkownika, niektóre tylko ze względu na użyteczność i personalizację, ale większość, podobnie jak sieci społecznościowe, śledzi każdy ruch w sieci, niektóre bezpłatne aplikacje na telefonie skanują wiadomości tekstowe, historię połączeń i tak dalej. Całe to pobieranie danych służy tylko do sprzedaży Twojego profilu reklamodawcom?
Kilka dni temu programiści z jednej firmy produktowej zapytali mnie, jak mogą zrozumieć, dlaczego nowi użytkownicy opuszczają ich witrynę. Moje pierwsze pytanie dotyczyło tego, jak wyglądały profile tych użytkowników i czym się różniły od tych, którzy zostali. Reklama to tylko szczyt góry lodowej. Profile użytkowników (wypełniane przez samych użytkowników lub obliczane na podstawie zachowania użytkowników) zawierają informacje o: kategoriach użytkowników, tj. Jakiego rodzaju ludzie mają tendencję do korzystania z portrety klientów w Twojej witrynie / produkcie, tj. Kto jest bardziej skłonny do korzystania z komponentu UX usług płatnych wydajność, np ile czasu zajmuje ludziom znalezienie przycisku, którego potrzebują, porównanie skuteczności działania, np. co było bardziej wydajne – niższa cena na weekend lub proponowanie prezentów przy każdym zakupie itp. Chodzi więc bardziej o ulepszenie produktu i poprawę wrażeń użytkownika, niż o sprzedawanie tych danych reklamodawcom.
Większość firm nie będzie sprzedawać danych, w każdym razie nie na małą skalę. Większość użyje go wewnętrznie. Dane śledzenia użytkowników są ważne dla zrozumienia wielu rzeczy. Istnieją podstawowe testy A / B, w których zapewniasz różne doświadczenia, aby zobaczyć, który jest bardziej skuteczny. Jest
zrozumienie, w jaki sposób używany jest interfejs użytkownika. Kategoryzowanie użytkowników końcowych na różne sposoby z różnych powodów. Dowiedzieć się, gdzie znajduje się Twoja baza użytkowników końcowych oraz w ramach tej grupy, gdzie znajdują się ważni użytkownicy końcowi. Korelowanie doświadczeń użytkowników z aktualizacjami sieci społecznościowych.
Dowiedz się, co przyciągnie ludzi do Twojego produktu i co ich odstrasza. Lista potencjalnych projektów eksploracji i analizy danych może trwać kilka dni. Przechowywanie danych jest tanie. Jeśli śledzisz wszystko poza bramą, możesz później dowiedzieć się, co chcesz zrobić z tymi danymi. Skanowanie wiadomości tekstowych jest szkicowym obszarem, gdy nie ma ku temu dobrego powodu. Nawet jeśli istnieje dobry powód, jest to szkicowy obszar. Chciałbym powiedzieć, że nikt tego nie robi, ale zdarzały się sytuacje, w których robiły to duże firmy i jest wiele przypadków, w których aplikacje bez nazwy przynajmniej wymagają dostępu do tego rodzaju danych do instalacji. Jako konsument generalnie marszczę brwi na tego typu rzeczy, ale analityk danych we mnie chciałby zobaczyć, czy mogę zbudować cokolwiek pożytecznego z takiego zestawu informacji.
Oto praktyczny przykład wykorzystania danych internetowych do celów innych niż reklama. Distil Networks (zastrzeżenie, tam pracuję) wykorzystuje ruch sieciowy do określania, czy dostęp do stron pochodzi od ludzi, czy przez boty – skrobaki, fałszywe kliknięcia, spam itp. Innym przykładem jest część pracy wykonywanej przez Webtrends. Pozwalają użytkownikom witryny zbudować model dla każdego odwiedzającego, aby przewidzieć, czy odejdzie, kupi, doda do koszyka itp. Następnie na podstawie prawdopodobieństwa każdego działania możesz zmienić doświadczenie użytkownika (np. Jeśli zamierzają odejść , daj im kupon).
Dlaczego kilka typów modeli może dawać prawie identyczne wyniki?
Analizowałem zbiór danych zawierający ~ 400 tys. Rekordów i 9 zmiennych. Zmienna zależna jest binarna. Dopasowałem regresję logistyczną, drzewo regresji, losowy las i drzewo wzmocnione gradientem. Wszystkie z nich dają wirtualnie identyczną wartość dopasowania liczb, kiedy sprawdzam poprawność
je na innym zestawie danych. Dlaczego tak jest? Zgaduję, że to dlatego, że stosunek moich obserwacji do zmiennych jest tak wysoki. Jeśli to prawda, przy jakim stosunku obserwacji do zmiennej zaczną dawać różne modele, różne wyniki?
Oznacza to, że niezależnie od zastosowanej metody, jesteś w stanie zbliżyć się do optymalnej reguły decyzyjnej (czyli reguły Bayesa). Podstawowe przyczyny zostały wyjaśnione w „Elements of Statistical Learning” Hastiego, Tibshirani i Friedmana. Nie sądzę, aby wyjaśnieniem było stosunek obserwacji do zmiennej. W świetle mojego uzasadnienia przedstawionego powyżej, jest to stosunkowo prosta forma granicy oddzielającej twoje klasy w wielowymiarowej przestrzeni, którą wszystkie metody, które wypróbowałeś, były w stanie zidentyfikować.
Warto też przyjrzeć się błędom treningowym. w zasadzie nie zgadzam się z twoją analizą. jeśli regresja logistyczna itp. daje te same wyniki, sugerowałoby to, że „najlepszy model” jest bardzo prosty (że wszystkie modele mogą być równie dobrze dopasowane – np. zasadniczo liniowe). Zatem pytanie może brzmieć, dlaczego najlepszy model jest prostym modelem?: Może to sugerować, że twoje zmienne nie są zbyt predykcyjne. Oczywiście trudno jest analizować bez znajomości danych.
K-oznacza: Jakie są dobre sposoby wyboru wydajnego zestawu początkowych centroid?
Gdy używana jest losowa inicjalizacja centroidów, różne przebiegi K-średnich wytwarzają różne całkowite SSE. I ma to kluczowe znaczenie dla działania algorytmu. Jakie są skuteczne podejścia do rozwiązania tego problemu? Doceniane są najnowsze podejścia.
Podejście, które daje bardziej spójne wyniki, to K-średnie ++. Podejście to potwierdza, że istnieje prawdopodobnie lepszy wybór początkowych lokalizacji centroid niż zwykłe losowe przypisanie. W szczególności K-środki mają tendencję do lepszych wyników, gdy centroidy są wysiewane w taki sposób, że nie zlepiają ich razem w przestrzeni.
Krótko mówiąc, metoda jest następująca:
- Wybierz losowo jeden ze swoich punktów danych jako początkowy centroid.
- Oblicz D(x), odległość między twoim początkowym centroidem a wszystkimi innymi punktami danych, x.
- Wybierz następny centroid z pozostałych punktów danych z prawdopodobieństwem proporcjonalnym do D(x)2
- Powtarzaj, aż wszystkie centroidy zostaną przypisane.
Uwaga: D(x) należy aktualizować w miarę dodawania większej liczby centroid. Powinna to być odległość między punktem danych a najbliższą centroidą.
Możesz być również zainteresowany przeczytaniem tego artykułu, w którym zaproponowano metodę i opisano jej ogólne oczekiwane działanie.
Mogę źle zrozumieć twoje pytanie, ale zwykle k-średnie wybiera dla ciebie twoje centroidy losowo w zależności od liczby ustawionych klastrów (tj. K). Wybór liczby dla k wydaje się być ćwiczeniem subiektywnym.
Typowe podejście do tego problemu polega na kilkukrotnym ponownym uruchomieniu algorytmu K-średnich, z różnymi losowymi inicjalizacjami centroidów i pozostawieniu najlepszego rozwiązania. Możesz to zrobić, oceniając wyniki na swoich danych szkoleniowych lub za pomocą weryfikacji krzyżowej. Istnieje wiele innych sposobów inicjalizacji centroidów, ale żaden z nich nie będzie działał najlepiej dla każdego problemu. Możesz ocenić te podejścia wraz z losową inicjalizacją dla konkretnego problemu.
Jakie badania można przeprowadzić przy użyciu zestawu danych e-mail?
Znalazłem zestaw danych o nazwie Enron Email Dataset. Jest to prawdopodobnie jedyny znaczący zbiór „prawdziwych” e-maili, który jest dostępny publicznie. Znalazłem wcześniejszą analizę tej pracy: artykuł opisujący dane Enron został przedstawiony na konferencji CEAS w 2004 roku. Niektóre eksperymenty związane z tymi danymi opisano w domu Rona Bekkermana, strona Parakweet wydała otwarty zestaw danych dotyczących zdań Enron, oznaczonych jako akty mowy. Praca na University of Pennsylvania obejmuje zbiór danych zapytań do wyszukiwania wiadomości e-mail, a także narzędzie do generowania błędów ortograficznych w oparciu o korpus Enron. Szukam interesujących, aktualnych tematów do pracy. Proszę, daj mi kilka sugestii.
Uczysz się, prawda? Spróbuj znaleźć coś łatwego i interesującego na początek. Może zaczniesz od czegoś prostego, na przykład od zbudowania modelu Bayesa, aby przewidzieć, które e-maile zostaną usunięte. Powinieneś rzucić okiem na te usunięte e-maile, czy to spam? czy to tylko śmieci? Tutaj masz po prostu nadzorowany model, w którym zestaw danych już oznacza e-maile dla Ciebie (usunięte lub nie). Pomyśl o czymś prostym, takim jak słowa, tytuły, długość wiadomości e-mail itp. Sprawdź, czy możesz zbudować model przewidujący usunięcie wiadomości e-mail.
Poniżej przedstawiono niektóre badania, które można przeprowadzić na zestawie danych poczty e-mail:
analiza lingwistyczna w celu określenia skrótu wiadomości e-mail Kategoryzuj wiadomości e-mail jako spam / hamowanie przy użyciu technik uczenia maszynowego. identyfikowanie pojęć wyrażonych w zbiorze wiadomości e-mail i organizowanie ich w ontologię lub taksonomię do przeglądania
Wspaniały zbiór danych z wieloma możliwościami udoskonalenia umiejętności analizy tekstu! Moją pierwszą myślą byłoby wypróbowanie modelowania tematycznego na zbiorze danych. Jeśli używasz języka Python, istnieje biblioteka, której użyłem, o nazwie gensim, która zawiera dość dokładne samouczki ułatwiające rozpoczęcie pracy. Mój przyjaciel zrobił coś podobnego ze zbiorem danych Enron, używając równoległego przetwarzania wstępnego i rozproszonej, ukrytej alokacji Dirichleta do wnioskowania tematów w korpusie e-maili.
Skrobanie stron internetowych LinkedIn
Niedawno odkryłem nowy pakiet R do łączenia się z interfejsem API LinkedIn. Niestety API LinkedIn wydaje się dość ograniczone na początku; na przykład można uzyskać tylko podstawowe dane o firmach i to jest oddzielone od danych o osobach. Chcę uzyskać dane o wszystkich pracownikach danej firmy, które możesz zrobić ręcznie na stronie ale nie jest to możliwe za pośrednictwem interfejsu API. import.io byłby idealny, gdyby rozpoznał paginację LinkedIn (patrz koniec strony). Czy ktoś zna jakieś narzędzia do skrobania sieci lub techniki mające zastosowanie do obecnego formatu strony LinkedIn lub sposoby naginania API w celu przeprowadzenia bardziej elastycznej analizy? Najlepiej w R lub w Internecie, ale z pewnością otwarte na inne podejścia.
Beautiful Soup jest specjalnie zaprojektowana do indeksowania i skrobania stron internetowych, ale została napisana dla języka Python, a nie R:
http://www.crummy.com/software/BeautifulSoup/bs4/doc/
Odpowiedź od itdxer Scrapy to świetna biblioteka Pythona, która może pomóc Ci szybciej zeskrobać różne witryny i ulepszyć strukturę kodu. Nie wszystkie witryny można analizować za pomocą klasycznych narzędzi, ponieważ mogą one wykorzystywać dynamiczne tworzenie treści JS. Do tego zadania lepiej jest użyć Selenium (jest to framework do testowania stron internetowych, ale także świetne narzędzie do skrobania stron internetowych). Dla tej biblioteki jest też dostępna paczka Pythona. W Google możesz znaleźć kilka sztuczek, które pomogą Ci używać Selenium inside Scrapy i sprawić, że Twój kod będzie przejrzysty, uporządkowany i możesz używać kilku świetnych narzędzi do biblioteki Scrapy. Myślę, że Selenium byłby lepszym skrobakiem dla Linkedina niż klasyczne narzędzia. Jest dużo javascript i dynamicznej zawartości. Ponadto, jeśli chcesz dokonać uwierzytelnienia na swoim koncie i zeskrobać całą dostępną zawartość, będziesz mieć wiele problemów z klasycznym uwierzytelnianiem przy użyciu prostych bibliotek, takich jak żądania lub urllib.
Usługi internetowe do wyszukiwania sieci społecznościowej?
Czy istnieją usługi internetowe, które można wykorzystać do analizy danych w sieciach społecznościowych w odniesieniu do konkretnego pytania badawczego (np. Wzmianki o niektórych produktach w dyskusjach w mediach społecznościowych)?
Interfejs API Twittera jest jednym z najlepszych źródeł danych z sieci społecznościowych. Możesz wyodrębnić z Twittera prawie wszystko, co możesz sobie wyobrazić, potrzebujesz tylko konta i identyfikatora programisty. Dokumentacja jest dość obszerna, więc pozwolę ci się nią poruszać. https://dev.twitter.com/overview/documentation
Jak zwykle istnieją opakowania, które ułatwiają życie.
* python-twitter
Istnieją również firmy, które oferują za opłatą szczegółowe analizy Twittera i historyczne zbiory danych.
* Gnip
* Datasift
Sprawdź je!
Tweepy to jedna z najlepszych bibliotek do analizowania i hakowania za pomocą Twitter API. (Będąc współtwórcą tweepy, mogę ręczyć za jego stabilność i jakość) W przypadku opakowania w języku Python dla interfejsu Facebook Graph API możesz skorzystać z biblioteki Facebook-Insights, która jest dobrze utrzymaną i schludną dokumentacją. Istnieją usługi, które mogą wydobywać informacje, ale są one ograniczone do złożoności zapytania. Na przykład: „Ile osób tweetowało o bananie w poniedziałek?” można odpowiedzieć na podstawie istniejących narzędzi „Ile osób szczęśliwych ludzi napisało na Twitterze w poniedziałek o bananie”, ale wymagałoby to więcej wysiłku, a oprogramowanie lub narzędzie powinno być w stanie wykryć emocje. Tak więc, jeśli interesujesz się badaniami, radziłbym skorzystać z API i starego dobrego programowania!
Co to jest powtarzający się podgraf ciężki?
Niedawno w przemówieniu natknąłem się na ten termin powtarzający się ciężki podgraf. Wygląda na to, że nie rozumiem, co to znaczy, a Google nie wydaje żadnych dobrych wyników. Czy ktoś może szczegółowo wyjaśnić, co to oznacza.
Termin najlepiej można wyrazić jako powtarzający się, ciężki podgraf. To znaczy podgraf, który jest jednocześnie powtarzalny i ciężki. Ciężkość podgrafu odnosi się do mocno połączonych wierzchołków – czyli węzłów, które są połączone wielokrotnie („wiele” odnosi się do danej sieci). Powtarzalność odnosi się do skłonności podgrafu do występowania więcej niż jeden raz. Zatem powtarzający się ciężki podgraf jest gęsto połączonym zestawem wierzchołków, który występuje kilka razy w całej sieci. Podgrafy te są często używane do określania właściwości sieci. Na przykład: w sieci interakcji e-mailowych w firmie zorganizowanej w 4-osobowe zespoły, w których jeden członek pełni rolę lidera, aktywność e-mailową każdego zespołu (jeśli wysyłają e-maile między sobą na tyle, że można ich uznać za „ciężką”) można opisać jako ciężkie Podgraf. Fakt, że te podgrafy występują wielokrotnie w sieci, czyni je powtarzającymi się ciężkimi podgrafami. Gdyby ktoś szukał struktury w sieci, zauważenie, że istnieją te powtarzające się, ciężkie podgrafy, znacznie przyczyniłoby się do określenia organizacji sieci jako całości