Oszacowanie niewiadomych wartości

0

Mam wyzwanie z zakresu data science. Nigdy wcześniej nie siedziałem w tym temacie (jestem devem z 10+ lat doświadczenia w appkach webowych, głównie java)
Proszę o wskazówki, czy da się to ugryźć względnie łatwo, jakich narzędzi użyć

mam duży zbiór danych (teraz ok 1 mln rekordów i rośnie)

każdy rekord ma zestaw cech, np

{
  "id": "1",
  "attributes": {
     "attr1": 15
     "attr2": "AB"
     "attr3": "CD"
     "attr4": 55645
  }
}

mam też inny zestaw rekordów, w których brakuje jednej cechy, weźmy na ten przykład attr4

{
  "id": "56442",
  "attributes": {
     "attr1": 15
     "attr2": "AB"
     "attr3": "CD"
     "attr4": null
  }
}

pozostałe cechy są znane.
brakującą cechę można dosztukować/szacować znajdując lookalikes ze zbioru, w którym mamy komplet danych. Nie musi to być precyzyjne dopasowanie, może być zbliżone.

Będę wdzięczny za wskazówki ja ugryźć temat i z jakich narzędzi najlepiej skorzystać.

Jeśli umieściłem wątek pod niewłaściwą kategorią - przepraszam z góry, nie znalazłem nic stricte datascience.

1

Jeśli nie chcesz kodzić, to możesz zrobić to np. w programie RapidMiner. Tylko nie wiem czy darmowa wersja wystarczy. Całość polega na ustawianiu bloczków^^

0

Mogę kodzić. Nawet wskazane, bo proces uzupełniania brakujących danych chciałbym docelowo zautomatyzować.
Sprawdzę to narzędzie, dzięki!

0

Ciężko powiedzieć jak to zrobić nie wiedząc co to za dane. Sam musisz zdefiniować warunki według których będą tworzone przypasowania. Załóżmy że mamy dwa podobne obiekty, jeden ma attr1, drugi attr3, wszystkie attr2 - który dopasować? Losowy? Prawdopodobnie najpierw musisz zdefiniować jakieś wagi tych atrybutów - zapewne jedne są ważniejsze od innych, ale ciężko powiedzieć gdy nie mówisz wprost o jakie dane chodzi

0
obscurity napisał(a):

Ciężko powiedzieć jak to zrobić nie wiedząc co to za dane. Sam musisz zdefiniować warunki według których będą tworzone przypasowania. Załóżmy że mamy dwa podobne obiekty, jeden ma attr1, drugi attr3, wszystkie attr2 - który dopasować? Losowy? Prawdopodobnie najpierw musisz zdefiniować jakieś wagi tych atrybutów - zapewne jedne są ważniejsze od innych, ale ciężko powiedzieć gdy nie mówisz wprost o jakie dane chodzi

Dzięki za odpowiedź.
Opiszę mniej więcej o co chodzi

mam emisję filmu promocyjnego. Emisja może mieć takie atrybuty jak

  • godzina,
  • wersja (są np 3 różne wersje)
  • strona www, na której jest emisja
  • kanał yt, na którym jest emisja
  • grupa tematyczna bloga, na którym jest emisja (np gotowanie, moda)

i teraz tak - każda emisja generuje kliknięcia, które niestety nie są przyporządkowane do danej emisji (nie pytajcie dlaczego, po prostu się nie da). Mam za to ilość kliknięć total w danej minucie.
Przykład - emisja 1 lipca 2020 o godz. 0900,

  • ilość kliknięć 1 lipca o 09:47 - 10
  • ilość kliknięć 1 lipca o 09:48 - 6
  • ilość kliknięć 1 lipca o 09:49 - 3

jestem w stanie powiedzieć, że ta emisja przyniosła mi 19 kliknięć.

Sprawa się trochę komplikuje, jeśli emisje się nakładają.

Czyli np

  • emisja 2 lipca 2020 o godz. 1000
  • emisja 2 lipca 2020 o godz. 1000

kliknięcia

  • 2 lip 10:15 - 10
  • 2 lip 10:16 - 15
  • 2 lip 10:17 - 9
    itd

potrzebuję oszacować ile kliknięć było do pierwszej emisji a ile do drugiej. Każda emisja ma swoje atrybuty (adres www, pora dnia, kanał yt itp). Na podstawie "czystych" emisji (nienakładających się) mam precyzyjne dane ile kliknięć jest faktycznie generowanych.

nawiązując do przykładu z pierwszego posta - rekordem jest emisja, a brakującym atrybutem ilość kliknięć. Tam gdzie emisje się nie nakładają, tam mam precyzyjnie wyliczoną ilość kliknięć i z tego chciałbym móc oszacować kliknięcia w emisjach, które się na siebie nakadają.

Mam nadzieję, że zrozumiale to opisałem :)

0

kup to
https://helion.pl/ksiazki/uczenie-maszynowe-z-uzyciem-scikit-learn-i-tensorflow-wydanie-ii-aur-lien-g-ron,uczem2.htm#format/d
Już pierwsze trzy rozdziały ci tu pomogą. Będziesz sobie musiał odpowiedzieć na pytanie takie jak:

  • Czy wszystkie Pola mi są potrzebne?
  • Jak ewentualnie je uzupęłnić?
  • Jak przygotować dane np. kodowanie zero jedynkowe
  • Korelacje między danymi itd.
  • Jakiego modelu użyć?

Ja hobbystycznie zajmuję się raczej grafiką(w temacie ml) więc moja wiedza jest tu limitowana ale pamiętaj, nie koniecznie potrzebny ci milionowy zbiór. Szukamy wzorca.

Tylko mnie mocno zastanawia twój problem. Czy tu potrzebny jest machine learning? To mi wygląda bardziej na badanie statystyczne
Skoro masz programy X,Y,Z. Kiedy jest ich pojedyncza emisja wiesz ile miały tych kliknięć. To teraz np. Jeśli jednocześnie leci program X i Y możesz próbować najbardziej prymitywnie oszacować to na podstawie procentów np.
Kiedy lecą pojedynczo:
X - 10 odsłon
Y - 5 odsłon
sumując
X + Y = 15 odsłon gdzie Y to 33% a 67% to X
Czyli emisja w innym dniu gdzie X i Y się nakładają i mają np.
X + Y = 25 to X:17 Y:8

Oczywiście to prymitywny przykład i będzie tu wymagane użycie lepszego aparatu matematycznego, filtracji danych itd. Klepanie w python,m-code albo R. Do tego ty masz wiele kombinacji. Więc może ml ma racje bytu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1