Spørsmål:
hvordan representere geografi eller postnummer i maskinlæringsmodell eller anbefalsystem?
captain_ahab
2014-04-23 23:10:37 UTC
view on stackexchange narkive permalink

Jeg bygger en modell, og jeg tror at geografisk beliggenhet sannsynligvis vil være veldig god til å forutsi min målvariabel. Jeg har postnummeret til hver av brukerne mine. Jeg er ikke helt sikker på om den beste måten å inkludere postnummer som en prediktorfunksjon i modellen min. Selv om postnummer er et nummer, betyr det ikke noe om nummeret går opp eller ned. Jeg kunne binære alle 30 000 postnummer og deretter inkludere dem som funksjoner eller nye kolonner (f.eks. {User_1: {61822: 1, 62118: 0, 62444: 0 osv.}}. Dette virker imidlertid som om det ville lagt til tonn av funksjoner til modellen min.

Noen tanker om den beste måten å håndtere denne situasjonen på?

Bare en tanke .. men hvis postnummer er distribuert geografisk, kan du geografisk representere postnummer på et kart og representere dem med deres beliggenhet. Med det kan du også se hvilke postnummer som lukkes ..
Se https://stats.stackexchange.com/questions/146907/principled-way-of-collapsing-categorical-variables-with-many-levels
Syv svar:
Zach
2014-04-23 23:42:57 UTC
view on stackexchange narkive permalink

Det er to gode alternativer jeg har sett:

  1. Konverter hvert postnummer til en dummyvariabel. Hvis du har mange data, kan dette være en rask og enkel løsning, men du vil ikke være i stand til å komme med spådommer for nye postnummer. Hvis du er bekymret for antall funksjoner, kan du legge til litt normalisering i modellen din for å slippe noen av postnummerene ut av modellen.
  2. Bruk breddegrad og lengdegrad til postnummerets midtpunkt som variabler. Dette fungerer veldig bra i trebaserte modeller, da de kan kutte opp breddegrad / lengdegrad i områder som er relevante for målvariabelen din. Dette vil også tillate deg å forutsi nye postnummer, og krever ikke så mye data for å bli riktig. Dette vil imidlertid ikke fungere bra for lineære modeller.

Personlig liker jeg veldig godt trebaserte modeller (som tilfeldig skog eller GBM), så jeg velger nesten alltid alternativ 2. Hvis Hvis du vil bli veldig fancy, kan du bruke lat / lon av befolkningssenteret til postnummeret, i stedet for postnummeret centroid. Men det kan være vanskelig å få tak i.

Definitivt vil gå for "2" -forslaget.
# 2 ser også ut til å fungere med en [GAM] (http://stats.stackexchange.com/q/35510/4485)
Joe
2014-04-24 00:47:37 UTC
view on stackexchange narkive permalink

En av mine favorittbruk av postnummerdata er å slå opp demografiske variabler basert på postnummer som ellers ikke er tilgjengelig på individnivå ...

For eksempel med http: //www.city-data.com/ kan du slå opp inntektsfordeling, aldersgrupper osv. som kan fortelle deg noe om dataene dine. Disse kontinuerlige variablene er ofte langt mer nyttige enn bare å gå basert på binære postnummer, i det minste for relativt begrensede datamengder.

Også postnummer er hierarkiske ... hvis du tar de to første eller tre sifre og binære ut fra disse, har du noe regional informasjon, som gir deg mer data enn individuelle glidelåser.

Som Zach sa, kan brukt bredde og lengdegrad også være nyttig, spesielt i et trebasert modell. For en regulert lineær modell kan du bruke firetre, dele USA i fire geografiske grupper, binære dem, deretter hvert av disse områdene i fire grupper, og inkludere de som ekstra binære variabler ... så for n totalt antall bladområder ende opp med [(4n - 1) / 3 - 1] totale variabler (n for de minste regionene, n / 4 for neste nivå opp osv.). Dette er selvfølgelig flerkollinært, og det er derfor det er nødvendig med regulering for å gjøre dette.

Du kan få et fint bilde av hierarkiet på Ben Frys [zipdecode] (http://benfry.com/zipdecode/).
Joe klarer du fritt å få data på zip-nivå (inntekt osv.) Fra dette nettstedet? Jeg klarte ikke å se hvordan jeg skulle gjøre dette.
URL-er som dette: http://www.city-data.com/zips/02108.html Det er ikke godt formatert som en CSV, så du må bruke regexes / skraping etc. Den amerikanske folketellingen har noen pent fremkomne data https: // www.census.gov/epcd/www/zipstats.html og http://factfinder2.census.gov/faces/nav/jsf/pages/index.xhtml, men de har ikke bredden.
Engineero
2014-04-25 22:33:22 UTC
view on stackexchange narkive permalink

Jeg jobbet med noe lignende når jeg trente en klassifikator som brukte morsmål som en funksjon (hvordan måler du likheten mellom engelsk og spansk?) Det er mange metoder der ute for å bestemme likhet mellom ikke-kategoriske data.

Det avhenger av dataene dine, men hvis du finner ut at geografisk avstand fra et postnummer ikke er like viktig som om en gitt inngang inneholder bestemte postnummer, kan ikke-kategoriske metoder hjelpe.

Peter bruce
2014-11-24 00:00:25 UTC
view on stackexchange narkive permalink

Hvis du beregner avstand mellom poster, som i klynging eller K-NN, kan avstander mellom postnummer i deres råform være informative. 02138 er mye nærmere 02139, geografisk, enn det er 45809.

også for tremodeller som tilfeldig skog - som i noen henseender ligner K-NN
rapaio
2014-04-23 23:25:41 UTC
view on stackexchange narkive permalink

Du kan forvandle postnummeret ditt til en nominell variabel (streng / faktor). Så vidt jeg husker kan postnummer imidlertid inneholde annen informasjon som fylke, region osv. Det jeg ville gjort er å forstå hvordan postnummer koder informasjon og dekode det til flere funksjoner.

Uansett å la postnummer kode som en numerisk variabel er ikke en god ide, siden noen modeller kan vurdere numerisk rekkefølge eller avstander som noe å lære.

Takk for svaret! Men selv om postnummer er en streng eller faktor, er jeg ikke i hovedsak bare dummy-kodende postnummer (dvs. skape 30 000 binære funksjoner)? Jeg vet at R gjør dette under panseret, men det må gjøres eksplisitt i scikit-læring.
b_dev
2014-06-12 07:21:22 UTC
view on stackexchange narkive permalink

Jeg vil lage et koropleth-kart over modellens rester på postnummernivået.

Resultatet kalles et romlig restkart, og det kan hjelpe deg med å velge en ny forklaringsvariabel som skal inkluderes i modellen din. Denne tilnærmingen kalles utforskende romlig dataanalyse (ESDA).

Én potensiell arbeidsflyt:

  1. for hvert postnummer får gjennomsnittlig rest
  2. lag en koropleth kart for å se den geografiske fordelingen av restene
  3. se etter mønstre som kan forklares med en ny forklarende variabel. For eksempel, hvis du ser alle forstedlige eller sørlige eller strandnummer med høye restmengder, kan du legge til en regional dummyvariabel definert av den relevante postnummergrupperingen, eller hvis du ser høye rester for høyinntektsnummer, kan du legge til en inntektsvariabel.
Aman Sawarn
2019-02-12 03:55:49 UTC
view on stackexchange narkive permalink

Du kan bruke postnummerene ved hjelp av ovennevnte teknikker, men la meg foreslå et alternativ. Anta at vi har binære klassemerker.Og i data har vi "n" postnummer.Nå tar vi sannsynligheten for forekomst av hver PIN-kode i data, gitt noen klassemerke (enten 1 eller null). La oss si for postnummeret "j" ------ >>>> Vi får en sannsynlighet P_j som: Nei.av forekomster av "j" / Totalt antall forekomster av "j", når klassemerket er 1 eller 0. På denne måten kan vi konvertere det til en veldig fin proabilistisk tolkning.

Dette svaret er ikke veldig klart.


Denne spørsmålet ble automatisk oversatt fra engelsk.Det opprinnelige innholdet er tilgjengelig på stackexchange, som vi takker for cc by-sa 3.0-lisensen den distribueres under.
Loading...