การใช้แอ็ตทริบิวต์เพื่อจำแนก / โปรไฟล์ผู้ใช้คลัสเตอร์


14

ฉันมีชุดข้อมูลของผู้ใช้ที่ซื้อผลิตภัณฑ์จากเว็บไซต์

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

เป้าหมายคือการใช้ข้อมูลของผลิตภัณฑ์และเว็บไซต์เพื่อระบุตัวตนของผู้ใช้เช่น "gamer หนุ่มสาว" หรือ "อยู่กับแม่ที่บ้าน"

ฉันแนบภาพตัวอย่างดังต่อไปนี้:

ป้อนคำอธิบายรูปภาพที่นี่

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

ฉันกำลังคิดถึงการจัดกลุ่มเนื่องจากไม่มีการสำรอง แต่ ID เหล่านั้นเป็นหมายเลขการสั่งซื้อที่ไม่มีความหมายเชิงตัวเลข ถ้าอย่างนั้นฉันก็ไม่รู้วิธีการใช้อัลกอริทึม ฉันยังคิดถึงการจำแนกประเภท ถ้าฉันเพิ่มคอลัมน์ของคลาสตามจำนวนยอดขายของผลิตภัณฑ์ที่ซื้อ ฉันคิดว่าการรวมกลุ่มเป็นที่ต้องการมากกว่า ฉันไม่ทราบว่าอัลกอริทึมแบบใดที่ฉันควรใช้ในกรณีนี้เนื่องจากขนาดของรหัสคำหลักอาจมากกว่า 10,000 รายการ (แต่ละผลิตภัณฑ์อาจมีคำหลักจำนวนมากเช่นเว็บไซต์จะ) ฉันจำเป็นต้องใช้ Spark สำหรับโครงการนี้

ใครสามารถช่วยฉันด้วยความคิดหรือข้อเสนอแนะ?

ขอบคุณมาก!


1
คุณสามารถให้ข้อมูลเพิ่มเติมได้หรือไม่? "รหัสหมวดหมู่ของผลิตภัณฑ์ A" คืออะไรและ "ค้นหาคำหลักรหัสของผลิตภัณฑ์ A" ที่มีความยาวเท่ากันทุกรายการ "ขนาดของรหัสคำหลักในการค้นหาอาจมากกว่า 10,000" เพราะเหตุใด พวกเขาคืออะไร คุณมีตัวอย่างกี่ตัวอย่าง สามารถตอบคำถามทุกข้อหากคุณโพสต์ตัวอย่างข้อมูลของคุณที่นี่ ถ้าอย่างนั้นฉันอาจแนะนำบางสิ่งให้คุณ
Kasra Manshaei

ผลิตภัณฑ์ A และผลิตภัณฑ์ B สองผลิตภัณฑ์ที่ผู้ใช้ซื้อหรือไม่ ข้อความดูเหมือนว่าจะแนะนำว่าผลิตภัณฑ์ A และ B นั้นแตกต่างกันสำหรับผู้ใช้แต่ละคนเนื่องจากคำหลักอาจแตกต่างกันไป เป็นเช่นนี้หรือไม่ และความคิดเห็นล่าสุดคุณต้องการจัดหมวดหมู่หรือกลุ่ม? เหล่านี้เป็นเทคนิคที่แตกต่างกันมาก :)
LogC

ขอบคุณ @kasramsh มากสำหรับการตอบกลับของคุณ ฉันอัปเดตคำอธิบายและแนบข้อมูลตัวอย่างแล้ว หวังว่าจะได้รับคำแนะนำจากคุณ!
เวีย

@logc ใช่ผลิตภัณฑ์ (ฉันพูดถึงผลิตภัณฑ์ A ก่อนหน้านี้) และเว็บไซต์ (ฉันบอกว่าผลิตภัณฑ์ B ก่อนหน้านี้) แตกต่างจากผู้ใช้แต่ละคน แต่ละผลิตภัณฑ์มีคำค้นหาน้อยและแต่ละเว็บไซต์ก็มีคำสำคัญเช่นกัน การจัดกลุ่มหรือการจัดหมวดหมู่ทำได้ดีตราบใดที่ฉันสามารถสร้างโปรไฟล์ผู้ใช้เช่น "นักเล่นเกมตัวผู้อายุน้อย"; "อยู่บ้านแม่" ฉันคิดว่าการรวมกลุ่มเป็นที่นิยมมากกว่า ขอขอบคุณ!!
เวีย

@silvia - ฉันมีปัญหาที่คล้ายกันในการแก้ปัญหา ฉันโพสต์เป็นคำถามแยกต่างหาก คุณสามารถให้คำแนะนำเกี่ยวกับวิธีการแก้ไขได้หรือไม่? datascience.stackexchange.com/questions/12930/… ข้อสงสัยอื่น ๆ ของฉันคือ K หมายถึงคุณจัดกลุ่มระเบียนตามลูกค้าหรือไม่ แต่ละแถวหมายถึงธุรกรรมหรือหมายถึงการซื้อรวมของลูกค้ารายนั้นจนถึงวันที่
Neil

คำตอบ:


11

ตอนนี้ฉันมีเวลาเพียงคำตอบสั้น ๆ แต่ฉันจะพยายามขยายในภายหลัง

สิ่งที่คุณต้องการทำคือการจัดกลุ่มเนื่องจากคุณต้องการค้นหาป้ายกำกับสำหรับข้อมูลของคุณ (ตรงข้ามกับการจัดหมวดหมู่ที่คุณจะมีป้ายกำกับสำหรับข้อมูลอย่างน้อยบางส่วนและคุณต้องการติดป้ายกำกับที่เหลือ)

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

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

ตัวอย่างเช่นให้เราจินตนาการโปรไฟล์ผู้ใช้ที่มีคุณสมบัติสามอย่าง:

  • ดอลลาร์ใช้จ่ายในเว็บ "techy"
  • ดอลลาร์ที่ใช้ไปกับสินค้า "แฟชั่น"
  • และดอลลาร์ใช้ไปกับวิดีโอเกม "ก้าวร้าว" บนเว็บที่ "เหมาะกับครอบครัว" (ใครจะรู้)

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

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

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

พล็อตจุด "ตัวแทน" เหล่านั้นและวางแผนการเปรียบเทียบกับกลุ่มอื่น ๆ การใช้แผนภูมิเรดาร์มีประโยชน์มากที่นี่ ทุกที่ที่มีคุณลักษณะเด่น (บางสิ่งในตัวแทนที่มีการทำเครื่องหมายอย่างชัดเจนและยังโดดเด่นมากในการเปรียบเทียบกับกลุ่มอื่น ๆ ) เป็นผู้สมัครที่ดีที่จะช่วยให้คุณติดฉลากกลุ่มด้วยวลีลวง ("nerds", "fashionistas" , "คุณแม่ก้าวร้าว" ... )

โปรดจำไว้ว่าปัญหาการจัดกลุ่มเป็นปัญหาแบบเปิดดังนั้นจึงไม่มีวิธีแก้ปัญหา "ถูกต้อง"! และฉันคิดว่าคำตอบของฉันค่อนข้างยาวแล้ว ตรวจสอบเกี่ยวกับการทำให้ปกติของโปรไฟล์และการกรองค่าผิดปกติ


ขอบคุณมาก ๆ ! มันมีประโยชน์มาก ฉันจะเริ่มต้นจากการทำแผนที่ ฉันซาบซึ้งจริงๆ!
เวีย

ยินดีที่ได้ช่วย. :)
logc

สวัสดี @logc ฉันสมัคร LDA เพื่อเลือกคุณสมบัติ ฉันถือว่า user_id แต่ละรายการเป็น "เอกสาร" และคำหลักคือ "คำ" ใน "เอกสาร" จากนั้นจึงใช้ LDA ฉันได้รับหัวข้อคำหลักสองสามข้อ อย่างไรก็ตามฉันไม่รู้ว่าทำไมหัวข้อส่วนใหญ่ของฉันจึงประกอบด้วยคำหลักเดียวกัน นั่นหมายความว่า LDA ไม่ใช่วิธีที่ถูกต้องสำหรับกรณีของฉันหรือมีข้อผิดพลาดบางอย่าง? ขอบคุณมาก!
เวีย

@sylvia: ฉันขอแนะนำให้คุณเปลี่ยนคำถามเป็นคำถามใหม่ในเว็บไซต์นี้ มิฉะนั้นเราอาจท้ายเขียนความเห็นมากมายและนั่นไม่ใช่รูปแบบที่ดีที่สุดสำหรับคำถาม & คำตอบ :)
logc

ขอบคุณสำหรับคำแนะนำ นี่คือลิงค์ที่ฉันโพสต์หากคุณมีเวลาที่จะดูdatascience.stackexchange.com/questions/5941/…ขอบคุณ!
เวีย

-2

สำหรับการวางแนวและการสำรวจฉันสามารถแนะนำWeKaซึ่งเป็นชุดเครื่องมือที่ดีมากสำหรับการเรียนรู้ของเครื่อง มันใช้รูปแบบการป้อนข้อมูลบางอย่าง (.ARFF) ดังนั้นคุณอาจต้องดูด้วยเช่นกัน

สำหรับคำหลักที่ขัดแย้งกันฉันขอแนะนำให้ดำเนินการเลือกคุณลักษณะบางอย่างเพื่อกำจัดคำหลักที่ซ้ำซ้อนหรือไม่ระบุ


ขอบคุณ @Lennart Kloppenburg สำหรับการตอบกลับของคุณ จะทำการเลือกคุณสมบัติได้อย่างไรหากมีการสั่งซื้อแอททริบิวต์ (keword_id)? ฉันอัปเดตข้อมูลตัวอย่างด้านบน คุณช่วยลองดูและให้คำแนะนำกับฉันได้ไหม? ขอขอบคุณ!
เวีย
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.