จะแสดงภูมิศาสตร์หรือรหัสไปรษณีย์ในรูปแบบการเรียนรู้ของเครื่องหรือระบบผู้แนะนำได้อย่างไร


24

ฉันกำลังสร้างแบบจำลองและฉันคิดว่าที่ตั้งทางภูมิศาสตร์น่าจะดีในการทำนายตัวแปรเป้าหมายของฉัน ฉันมีรหัสไปรษณีย์ของผู้ใช้แต่ละคน ฉันไม่แน่ใจเกี่ยวกับวิธีที่ดีที่สุดในการรวมรหัสไปรษณีย์เป็นคุณลักษณะตัวทำนายในโมเดลของฉัน แม้ว่ารหัสไปรษณีย์จะเป็นตัวเลข แต่ก็ไม่ได้มีความหมายอะไรเลยถ้าตัวเลขนั้นขึ้นหรือลง ฉันสามารถรวบรวมรหัสไปรษณีย์ 30,000 รหัสแล้วรวมเป็นคุณลักษณะหรือคอลัมน์ใหม่ (เช่น {user_1: {61822: 1, 62118: 0, 62444: 0, ฯลฯ }} อย่างไรก็ตามดูเหมือนว่ามันจะเพิ่มตัน คุณสมบัติของรุ่นของฉัน

มีความคิดเกี่ยวกับวิธีที่ดีที่สุดในการจัดการกับสถานการณ์นี้หรือไม่?


1
แค่คิด .. แต่ถ้า zipcodes มีการกระจายทางภูมิศาสตร์คุณก็สามารถแสดง zipcodes ทางภูมิศาสตร์ในแผนที่และแสดงตำแหน่งของพวกมันได้ โดยที่คุณสามารถดูรหัสไปรษณีย์ที่ปิดได้ ..
มานูเอล

คำตอบ:


14

หนึ่งในการใช้ข้อมูลรหัสไปรษณีย์ที่ชื่นชอบคือการค้นหาตัวแปรประชากรตามรหัสไปรษณีย์ที่อาจไม่สามารถใช้ได้ในแต่ละระดับ ...

ตัวอย่างเช่นด้วยhttp://www.city-data.com/คุณสามารถค้นหาการกระจายรายได้ช่วงอายุ ฯลฯ ซึ่งอาจบอกคุณบางอย่างเกี่ยวกับข้อมูลของคุณ ตัวแปรต่อเนื่องเหล่านี้มักจะมีประโยชน์มากกว่าการใช้รหัสไปรษณีย์แบบไบนาริสอย่างน้อยก็สำหรับข้อมูลที่ค่อนข้าง จำกัด

นอกจากนี้รหัสไปรษณีย์ยังเป็นลำดับชั้น ... หากคุณใช้ตัวเลขสองหรือสามหลักแรกและทำการรับรู้ตามหลักเหล่านั้นคุณจะมีข้อมูลภูมิภาคจำนวนหนึ่งซึ่งทำให้คุณได้รับข้อมูลมากกว่ารหัสไปรษณีย์ส่วนบุคคล

ตามที่ Zach กล่าวว่าละติจูดและลองจิจูดที่ใช้แล้วก็มีประโยชน์เช่นกันโดยเฉพาะอย่างยิ่งในรูปแบบต้นไม้ สำหรับโมเดลเชิงเส้นปกติคุณสามารถใช้ควอดทรีแยกสหรัฐอเมริกาออกเป็นสี่กลุ่มทางภูมิศาสตร์รวมกลุ่มจากนั้นแต่ละพื้นที่เหล่านั้นเป็นสี่กลุ่มและรวมเหล่านั้นเป็นตัวแปรไบนารีเพิ่มเติม ... ดังนั้นสำหรับภูมิภาคใบไม้ทั้งหมดที่คุณ จบลงด้วย [(4n - 1) / 3 - 1] ตัวแปรทั้งหมด (n สำหรับพื้นที่เล็กที่สุด, n / 4 สำหรับระดับต่อไปเป็นต้น) ของหลักสูตรนี้คือหลายค่าหลายปีซึ่งเป็นเหตุผลที่จำเป็นต้องมีการทำให้เป็นมาตรฐาน


2
คุณจะได้รับความสุขภาพของลำดับชั้นที่เบนทอดของzipdecode
Dimitriy V. Masterov

Joe คุณสามารถรับข้อมูลระดับ zip (รายได้อื่น ๆ ) จากเว็บไซต์นี้ได้อย่างอิสระหรือไม่ ฉันไม่สามารถเห็นวิธีการทำเช่นนี้
B_Miner

URL เช่นนี้: city-data.com/zips/02108.html มันมีรูปแบบไม่ดีเหมือน CSV ดังนั้นคุณต้องใช้ regexes / การคัดลอก ฯลฯ การสำรวจสำมะโนประชากรของสหรัฐมีข้อมูล fomatted อย่างcensus.gov/epcd/www/zipstats .htmlและfactfinder2.census.gov/faces/nav/jsf/pages/index.xhtmlแต่ไม่มีความกว้าง
Joe

18

มี 2 ​​ตัวเลือกที่ดีที่ฉันเคยเห็น:

  1. แปลงรหัสไปรษณีย์แต่ละชุดให้เป็นตัวแปรจำลอง หากคุณมีข้อมูลจำนวนมากนี่อาจเป็นวิธีที่ง่ายและรวดเร็ว แต่คุณจะไม่สามารถคาดการณ์รหัสไปรษณีย์ใหม่ได้ หากคุณกังวลเกี่ยวกับคุณสมบัติจำนวนมากคุณสามารถเพิ่มการทำให้เป็นมาตรฐานในแบบจำลองของคุณเพื่อปล่อยรหัสไปรษณีย์บางส่วนออกจากแบบจำลอง
  2. ใช้ละติจูดและลองจิจูดของจุดกึ่งกลางของรหัสไปรษณีย์เป็นตัวแปร มันใช้งานได้ดีในโมเดลที่ทำงานบนต้นไม้เนื่องจากสามารถตัดตารางละติจูด / ลองจิจูดลงในภูมิภาคที่เกี่ยวข้องกับตัวแปรเป้าหมายของคุณได้ สิ่งนี้จะช่วยให้คุณคาดคะเนรหัสไปรษณีย์ใหม่และไม่ต้องการข้อมูลมากพอที่จะทำให้ถูกต้อง อย่างไรก็ตามวิธีนี้ใช้ไม่ได้ผลกับโมเดลเชิงเส้น

โดยส่วนตัวแล้วฉันชอบโมเดลที่มีโครงสร้างเป็นต้นไม้ (เช่นฟอเรสต์แบบสุ่มหรือ GBMs) ดังนั้นฉันมักจะเลือกตัวเลือกที่ 2 หากคุณต้องการได้รับแฟนซีคุณสามารถใช้ lat / lon ของศูนย์กลางของประชากรสำหรับรหัสไปรษณีย์ มากกว่า zipcode centroid แต่นั่นอาจเป็นเรื่องยากที่จะได้รับการดูแล


แน่นอนจะไปสำหรับ2ข้อเสนอ
andilabs

# 2 ยังทำงานร่วมกับGAM ได้
Affine

4

ฉันจัดการกับสิ่งที่คล้ายกันเมื่อการฝึกอบรมลักษณนามที่ใช้ภาษาพื้นเมืองเป็นคุณสมบัติ (วิธีการทำคุณวัดความคล้ายคลึงกันระหว่างภาษาอังกฤษและสเปน?) มีจำนวนมากวิธีการออกมีการกำหนดความคล้ายคลึงกันระหว่างข้อมูลที่ไม่เด็ดขาด

ขึ้นอยู่กับข้อมูลของคุณ แต่หากคุณพบว่าระยะทางภูมิศาสตร์จากรหัสไปรษณีย์นั้นไม่สำคัญเท่ากับการป้อนข้อมูลที่ระบุมีรหัสไปรษณีย์เฉพาะวิธีการที่ไม่จัดหมวดหมู่อาจช่วยได้


4

หากคุณกำลังคำนวณระยะทางระหว่างบันทึกเช่นเดียวกับในการจัดกลุ่มหรือ K-NN ระยะทางระหว่างรหัสไปรษณีย์ในรูปแบบดิบอาจเป็นข้อมูล 02138 อยู่ใกล้กับ 02139 มากในเชิงภูมิศาสตร์มากกว่าที่จะเป็น 45809


สำหรับต้นไม้จำลองเช่นป่าสุ่ม - ซึ่งในบางแง่ก็คล้ายคลึงกับ K-NN
captain_ahab

3

คุณสามารถเปลี่ยนรหัสไปรษณีย์ของคุณเป็นตัวแปรระบุ (สตริง / ปัจจัย) อย่างไรก็ตามเท่าที่ฉันจำได้รหัสไปรษณีย์อาจมีข้อมูลอื่น ๆ เช่นเคาน์ตีภูมิภาคและอื่น ๆ สิ่งที่ฉันจะทำคือเข้าใจว่ารหัสไปรษณีย์เข้ารหัสข้อมูลและถอดรหัสให้เป็นคุณสมบัติที่หลากหลาย

อย่างไรก็ตามการปล่อยให้รหัสไปรษณีย์เป็นตัวแปรตัวเลขไม่ใช่ความคิดที่ดีเนื่องจากบางรุ่นอาจพิจารณาการเรียงลำดับตัวเลขหรือระยะทางเป็นสิ่งที่ต้องเรียนรู้


ขอบคุณสำหรับคำตอบ! อย่างไรก็ตามถึงแม้ว่ารหัสไปรษณีย์จะเป็นสตริงหรือตัวประกอบฉันไม่ได้เป็นเพียงแค่รหัสจำลองหลอกตา ฉันรู้ว่า R ทำสิ่งนี้ภายใต้ประทุน แต่ต้องทำอย่างชัดเจนใน scikit เรียนรู้
captain_ahab

3

ฉันจะสร้างแผนที่ที่น่าหลงไหลในแบบจำลองของคุณที่ระดับรหัสไปรษณีย์

ผลลัพธ์จะถูกเรียกว่าแผนที่เชิงพื้นที่และอาจช่วยให้คุณเลือกตัวแปรอธิบายใหม่เพื่อรวมไว้ในแบบจำลองของคุณ วิธีการนี้เรียกว่าการวิเคราะห์ข้อมูลเชิงสำรวจ (ESDA)

เวิร์กโฟลว์ที่มีศักยภาพหนึ่งเดียว:

  1. สำหรับแต่ละรหัสไปรษณีย์จะได้รับค่าเฉลี่ยที่เหลือ
  2. จัดทำแผนที่วงรอบเพื่อดูการกระจายทางภูมิศาสตร์ของส่วนที่เหลือ
  3. มองหารูปแบบที่อาจอธิบายได้โดยตัวแปรอธิบายใหม่ ตัวอย่างเช่นหากคุณเห็นรหัสไปรษณีย์ชานเมืองหรือทางใต้หรือชายหาดที่มีค่าคงที่สูงคุณสามารถเพิ่มตัวแปรดัมมี่ภูมิภาคที่กำหนดโดยการจัดกลุ่มรหัสไปรษณีย์ที่เกี่ยวข้องหรือหากคุณเห็นรหัสสูงรายได้สูงคุณสามารถเพิ่มตัวแปรรายได้

-2

คุณสามารถยืนยันรหัสไปรษณีย์โดยใช้เทคนิคด้านบน แต่ให้ฉันแนะนำทางเลือกอื่น สมมติว่าเรามีเลเบลคลาสไบนารี และในข้อมูลเรามีรหัสไปรษณีย์ "n" ตอนนี้เราใช้ความน่าจะเป็นที่จะเกิดขึ้นของแต่ละ pincode ในข้อมูลโดยระบุ label class (ทั้ง 1 หรือศูนย์) ดังนั้นสมมติว่าเป็นรหัสไปรษณีย์ "j" ------ >>>> เราได้รับความน่าจะเป็น P_j เป็น: ไม่ ของเหตุการณ์ที่เกิดขึ้นของ "j" / จำนวนรวมที่ไม่เกิดขึ้นของ "j" เมื่อเลเบลของคลาสเป็น 1 หรือ 0 ด้วยวิธีนี้เราสามารถแปลงให้เป็นการแปลความเป็นไปได้ที่ดีมาก


5
คำตอบนี้ไม่ชัดเจน
Michael R. Chernick
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.