Zadanie #3365

Zapisywanie modelu transformacji cech do macierzy

Added by Radosław Ramocki over 8 years ago. Updated almost 6 years ago.

Status:ZamkniętyStart date:15 Dec 2011
Priority:PilnyDue date:
Assignee:Paweł Kędzia% Done:

90%

Category:-
Target version:1.0

Description

fextor2lexcsd.py powinien zapisywać model konwersji cech.
Dla przykładu mamy dwa pliki csv z cechami:
  1. a;b;c;1
    a;b;d;3
    
  2. a;b;x;1
    a;b;y;3
    

W sytuacji kiedy chcemy osobno tworzyć dane do uczenia i potem dane do testowania/klasyfikacji nowych rzeczy, musimy posiadać zapisany model ponieważ nie jesteśmy wstanie odtworzyć tego samego sposobu dyskretyzacji lub innego rodzaju konwersji cech tekstowych. Również, jak widać w podanym przykładzie, mogą pojawić się wartości nie występujące podczas tworzenia modelu (konwersji pierwszego pliku csv), wtedy należy odpowiednio zareagować np. usunąć przykład.

Zachowanie to jest bardzo ważne z perspektywy praktycznego wykorzystania fextora, gdyż nie tylko robi się CV ;p

History

#1 Updated by Radosław Ramocki over 8 years ago

  • Priority changed from Normalny to Pilny

#2 Updated by Bartosz Broda over 8 years ago

  • Target version set to 1.0

#3 Updated by Paweł Kędzia over 8 years ago

  • Tracker changed from Błąd to Zadanie

#4 Updated by Paweł Kędzia over 8 years ago

  • Status changed from Nowy to Zamknięty
  • % Done changed from 0 to 100

Skoro uznaliśmy, że wyrównywanie macierzy odbywa się za pomocą metody align_to_first_matrix (z ltcore.utils.matrix_tools), to chyba można zamknąć...

#5 Updated by Adam Wardyński over 8 years ago

  • Status changed from Zamknięty to Przypisany
  • % Done changed from 100 to 90

Jesteście pewni, że sprawa jest rozwiązana? Mam wrażenie, że skupiliście się tylko na konwersji binarnej, gdzie cecha jest rozbijana na szereg zerojedynkowych kolumn. Wtedy align rozumiem rozwiązuje sprawę. Fextorowe ini z WSD co jest w examples widzę ma właśnie same takie konwersje, nie wiem jak Radek.

Wtedy nawet nie było jeszcze konwerji "numeric", może była "none" czyli jak rozumiem symboliczna. A na pewno jest problem z "numeric" w fextor2lexcsd - wartości są przypisywane po kolei od 1 dla danej macierzy, więc "rzeczywiste" dane nie z cross-validation prawie na pewno będą dostawały inne wartości, jeśli się nie "oszuka" trochę i nie załaduje oryginalnych danych. Zresztą na pewno żeby to działało, musiałaby być dodana jakaś możliwość podania dziedziny z do tej pory utworzonej macierzy w trakcie konwersji, tylko w jakiś bardziej naturalny sposób niż doklejanie danych uczących przed danymi z "rzeczywistego" działania.

Nie wiem jak to wygląda z "none" i potem wczytywaniu macierzy w trybie numeric.. Sprawdzę przy okazji jak znajdę chwilę czasu, ale jak mówię, mam podejrzenia, że skupiliście się tylko na tej binarnej wielokolumnowej konwersji. A tak raczej nie powinno być, że system tylko takie cechy wspiera.

#6 Updated by Adam Wardyński over 8 years ago

btw może to znaczy, że tej konwersji "numeric" w ogóle nie powinno jednak być w fextor2lexcsd, tylko "none" (swoją drogą lepiej ją chyba nazwać 'symbolic', jeśli robi co myślę) i w tym momencie pozostaje tylko pytanie, czy samo lexcsd potem sobie potrafi z tym poradzić.

Wydawało mi się, że konwersja numeric może być przydatna w fextor2lexcsd, ale na pewno występuje w niej problem wspomniany przez Radka.

Z kolei z symboliczną konwersją w teorii nie ma problemu w fextor2lexcsd, bo dane są przekazywane takie, jakie są (de facto nigdy nie ma i tak ustalania dziedziny, że tak w nomenklaturze arffa powiem: jest tylko STRING a nie <nominal-specification>), ale muszę sprawdzić, czy to się aby potem nie rozjeżdża w samym lexcsd, chyba że sami jesteście z góry w stanie powiedzieć, że się rozjedzie albo nie

#7 Updated by Paweł Kędzia over 8 years ago

To co Radek wspomina odnosi się do wartości binarnych, to co Ty Adam chcesz osiągnąć, to na tyle na ile zrozumiałem, to chodzi o #3853

#8 Updated by Paweł Kędzia almost 6 years ago

  • Status changed from Przypisany to Zamknięty

Also available in: Atom PDF