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

บทความนี้จะอธิบายความพยายามครั้งที่สองของฉันในการตอบคำถามเหล่านี้บางข้อ

ฉันสงสัยเกี่ยวกับเพลงที่ฉันบุ๊กมาร์กไว้ใน Spotify มาระยะหนึ่งแล้ว นอกจากนี้ ฉันสนใจที่จะศึกษาผ่านข้อมูลว่าเพลย์ลิสต์ของฉันบอกอะไรเกี่ยวกับรสนิยมทางดนตรีของฉันผ่านข้อมูล โชคดีที่ API ของ Spotify มีสิ่งที่เรียกว่าคุณลักษณะด้านเสียง ซึ่งตามชื่อหมายถึงคุณลักษณะหรือคุณลักษณะของเพลง เช่น ความดังของเพลงหรือความดังของเพลง และฉันได้สำรวจ ศึกษาผ่านสิ่งเหล่านี้ และได้เรียนรู้เกี่ยวกับดนตรีของฉัน

ในงานก่อนหน้าของฉันชื่อ “เพลง Spotify ของฉันน่าเบื่อไหม ฉันมุ่งเน้นไปที่การตอบคำถามสามข้อต่อไปนี้:

  • เพลงที่บันทึกไว้ใน Spotify ของฉันมีความหลากหลายเพียงใด
  • พวกเขามีประโยชน์แค่ไหน?
  • พวกเขาน่าเบื่อแค่ไหน?

และฉันก็สรุปว่าเพลงของฉันค่อนข้างหลากหลายจริงๆ และหลายเพลงก็เป็นเพลงบรรเลงและน่าเบื่อ (ตามสูตรที่ฉันได้รับ) ในโปรเจ็กต์เดียวกันนี้ ฉันยังได้ฝึกโมเดลการเรียนรู้แบบมีผู้สอนโดยมีวัตถุประสงค์เพื่อคาดเดาว่าเพลงนั้นเป็นของเพลย์ลิสต์ของฉันหรือของเพื่อน โดยมีความแม่นยำถึง 82%

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

การทดลองนี้แบ่งออกเป็นสี่ส่วนซึ่งแสดงถึงหัวข้อหลักที่ฉันต้องการศึกษาด้วย

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

เอาล่ะ!

เครื่องมือต่างๆ

งานนี้เสร็จสิ้นโดยใช้ทั้ง R และ Python ส่วนการจัดกลุ่มเสร็จสิ้นโดยใช้ R และแพ็คเกจ "คาเร็ต" และ "คลัสเตอร์" Python ถูกใช้เพื่อรับข้อมูลโดยใช้ไลบรารี "Spotipy" และแสดงภาพข้อมูลโดยใช้ "Hypertools" ลิงก์ไปยังรหัสมีอยู่ในตอนท้ายของรายงาน

ข้อมูล

ข้อมูลของเพลงได้รับโดยใช้สคริปต์ Python ที่ฉันเขียนเพื่อดึงเพลงทั้งหมดของเพลย์ลิสต์เฉพาะและคุณสมบัติเสียง หลังจากทำความสะอาดชุดข้อมูลและลบสิ่งที่ไม่จำเป็นออกไป ฉันเหลือชุดข้อมูลซึ่งประกอบด้วย 563 แถว (แต่ละแถวแทนเพลง) และ 5 คอลัมน์ซึ่งเป็นคุณลักษณะด้านเสียง คุณสมบัติเสียงเหล่านี้คือ:

ความเป็นเครื่องดนตรี: ค่านี้แสดงถึงการวัดเสียงร้องในเพลง ยิ่งใกล้ถึง 1.0 เพลงก็จะยิ่งมีประโยชน์มากขึ้นเท่านั้น

เสียง: ค่านี้อธิบายว่าเพลงมีอะคูสติกแค่ไหน คะแนน 1.0 หมายความว่าเพลงดังกล่าวน่าจะเป็นเพลงอะคูสติกมากที่สุด

ความมีชีวิตชีวา: ค่านี้อธิบายความน่าจะเป็นที่เพลงจะถูกบันทึกพร้อมกับผู้ชมสด ตามเอกสารอย่างเป็นทางการ “ค่าที่สูงกว่า 0.8 แสดงถึงความเป็นไปได้สูงที่แทร็กนั้นจะถูกเผยแพร่”

เสียงพูด: “เสียงพูดตรวจจับการมีอยู่ของคำพูดในแทร็ก” หากความดังของเพลงสูงกว่า 0.66 แสดงว่าน่าจะเกิดจากคำพูด คะแนนระหว่าง 0.33 ถึง 0.66 เป็นเพลงที่อาจมีทั้งดนตรีและคำร้อง และคะแนนต่ำกว่า 0.33 หมายความว่าเพลงนั้นไม่มีเสียงพูดใดๆ

ความสามารถในการเต้น: “ความสามารถในการเต้นอธิบายถึงความเหมาะสมของเพลงสำหรับการเต้น โดยพิจารณาจากการผสมผสานองค์ประกอบทางดนตรี เช่น จังหวะ ความเสถียรของจังหวะ ความแข็งแกร่งของจังหวะ และความสม่ำเสมอโดยรวม ค่า 0.0 คือค่าที่สามารถเต้นได้น้อยที่สุด และ 1.0 คือค่าที่สามารถเต้นได้มากที่สุด”

*คำอธิบายนี้คัดลอก/วางจาก "เอกสารประกอบ" อย่างเป็นทางการ

การกำหนดจำนวนคลัสเตอร์

เมื่อใช้อัลกอริธึมการทำคลัสเตอร์ตามพาร์ติชัน เช่น k-medoids การค้นหาจำนวนคลัสเตอร์ที่ถูกต้อง หรือที่เรียกว่า “k” ถือเป็นขั้นตอนที่ไม่ชัดเจนและสำคัญมาก ในด้านหนึ่ง ค่า k ที่ต่ำ เช่น k=2 หมายความว่าการสังเกตชุดข้อมูลทั้งหมดจะถูกจัดกลุ่มเป็น 2 กลุ่ม ส่งผลให้มีจำนวนมาก ข้อผิดพลาดและผลลัพธ์การจัดกลุ่มที่น่าจะตีความได้ยากที่สุด ตัวเลือกที่สอง k ที่มากกว่า จะลดข้อผิดพลาดโดยที่การสังเกตทั้งหมดแบ่งออกเป็นหลายกลุ่ม ดังนั้น จำเป็นต้องมีความสมดุล และการอ้างอิง "Wikipedia" "ตัวเลือกที่เหมาะสมที่สุดของ k จะสร้างสมดุลระหว่างการบีบอัดข้อมูลสูงสุดโดยใช้คลัสเตอร์เดียว และความแม่นยำสูงสุดโดยการกำหนดจุดข้อมูลแต่ละจุดให้กับ คลัสเตอร์ของตัวเอง”

ในบรรดาเทคนิคทั้งหมดที่ทราบในการตรวจจับจำนวนคลัสเตอร์ ฉันใช้ ค่าสัมประสิทธิ์ภาพเงา และ สถิติช่องว่าง

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

โครงเรื่องต่อไปนี้แสดงภาพเงาโดยเฉลี่ยเมื่อจัดกลุ่มข้อมูลโดยใช้ k=2 จนถึง k=10

แม้ว่าโครงเรื่องจะแสดงให้เห็นว่า k จาก 4 ทำให้เกิดภาพเงาที่ดีที่สุด แต่ฉันตัดสินใจเลือก k=5 เนื่องจากฉันสนใจที่จะมีคลัสเตอร์จำนวนมากเพื่อวิเคราะห์

สำหรับวิธีที่สองที่ใช้ ซึ่งก็คือสถิติช่องว่าง ชุดข้อมูลจะถูกจัดกลุ่มหลายครั้งโดยใช้ k ที่แตกต่างกัน และแต่ละครั้งจะลบผลรวมภายในคลัสเตอร์ของกำลังสองรอบศูนย์กลางของคลัสเตอร์ออกจากสิ่งที่เรียกว่า ผลรวมกำลังสองภายในคลัสเตอร์ที่คาดหวัง (หากคุณพบว่าคำว่า "คาดหวัง" น่าสับสนหรือคลุมเครือ ไม่ต้องกังวล เนื่องจากคำนั้นต้องใช้คณิตศาสตร์จำนวนมาก และคำอธิบายอยู่นอกขอบเขตของบทความนี้) . ผลลัพธ์ของการลบนี้คือสถิติของช่องว่าง และเมื่อเราได้มันสำหรับทุก ๆ k และพล็อตพวกมัน ซึ่งเป็นอันที่แสดงถึง “ข้อศอก” ของพล็อต สอดคล้องกับ k ที่เหมาะสมที่สุด

โครงเรื่องต่อไปนี้แสดงสถิติช่องว่างทั้งหมดโดยใช้ k=2 จนถึง k =10 เช่นเดียวกับคะแนนภาพเงา ตามช่องว่าง k=3 หรือ k=4 เป็น k ที่ดีที่สุด อย่างไรก็ตาม ฉันตัดสินใจเลือก k=5 อีกครั้ง .

ดังนั้น คำตอบสำหรับคำถามของฉัน “ฉันควรใช้คลัสเตอร์จำนวนใดที่เหมาะสมที่สุด” คือ 5

ตอนนี้เราได้เลือก k แล้ว ขั้นตอนต่อไปคือการจัดกลุ่มข้อมูล

การจัดกลุ่มและการวิเคราะห์

อัลกอริธึมที่ใช้ในการจัดกลุ่มข้อมูลคือ "k-medoids" สำหรับผู้ที่เคยมีประสบการณ์เกี่ยวกับ k-mean มาก่อน และไม่เคยได้ยินหรือใช้ k-medoids มาก่อน ฉันจะบอกว่าความแตกต่างที่สำคัญระหว่างทั้งสองคือ แบบแรกสามารถใช้กับการวัดความคล้ายคลึงใดๆ ก็ได้ แทนที่จะลดระยะห่างกำลังสองให้เหลือน้อยที่สุด เนื่องจากทำใน k-means นอกจากนี้ ใน k-medoids จุดข้อมูลจริงของชุดข้อมูลจะถูกใช้เป็นรายการที่มีศูนย์กลางมากที่สุดของคลัสเตอร์ ซึ่งแตกต่างจาก k-means ซึ่งใช้จุดในพื้นที่คุณลักษณะที่แสดงถึงจุดศูนย์กลางของคลัสเตอร์ ทำให้จุดแรก แข็งแกร่งมากขึ้นต่อค่าผิดปกติ

รูปภาพต่อไปนี้เป็นเอาต์พุตโดยตรงของผลลัพธ์ของการจัดกลุ่ม แต่ละแถวแสดงถึงคลัสเตอร์ และแต่ละคอลัมน์คือข้อมูลหนึ่งชิ้นเกี่ยวกับคลัสเตอร์ เริ่มจากด้านซ้าย คอลัมน์แรก “ขนาด” คือจำนวนการสังเกตต่อคลัสเตอร์ “max_diss” คือความแตกต่างสูงสุด นั่นคือระยะห่างระหว่างจุดข้อมูลที่ อยู่ไกลจากเมดอยด์ของคลัสเตอร์มากที่สุด “av_diss” คือความแตกต่างโดยเฉลี่ย จากนั้นเราก็มี “เส้นผ่านศูนย์กลาง” ซึ่งเป็นความแตกต่างสูงสุดระหว่างจุดสองจุดของกลุ่มเดียวกัน และสุดท้าย , “การแยก” ความแตกต่างขั้นต่ำระหว่างจุดข้อมูลของคลัสเตอร์หนึ่งกับจุดข้อมูลจากอีกจุดหนึ่ง

ในด้านขนาด คลัสเตอร์ที่ 4 เป็นคลัสเตอร์ที่ใหญ่ที่สุดมีทั้งหมด 143 เพลง ในขณะที่คลัสเตอร์ที่สามประกอบด้วย 60 เพลงมีขนาดเล็กที่สุด คลัสเตอร์นี้เป็นคลัสเตอร์ที่แสดงความแตกต่างสูงสุดและความแตกต่างโดยเฉลี่ยสูงสุด สิ่งที่กล่าวก็คือว่าเนื้อหาของกระจุกนี้หากเปรียบเทียบกับกระจุกอื่นๆ จะค่อนข้างแยกออกจากเส้นกลางหรือศูนย์กลางของมัน กระจุกดาวนี้ยังแสดงค่าการแยกที่ยิ่งใหญ่ที่สุด ซึ่งหมายความว่าอยู่ห่างจากกระจุกดาวอื่นๆ มากที่สุด และมีเส้นผ่านศูนย์กลางใหญ่ที่สุดด้วย ทำให้กระจุกดาว "ใหญ่ที่สุด" ในแง่ของระยะทาง ในทางตรงกันข้าม คลัสเตอร์ 4 เป็นคลัสเตอร์ที่มีค่าความแตกต่าง เส้นผ่านศูนย์กลาง และค่าการแยกสูงสุดและเฉลี่ยต่ำสุด

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

ตัวเลขทางด้านขวาของภาพคือภาพเงาโดยเฉลี่ยของแต่ละคลัสเตอร์ คลัสเตอร์ 2 มีภาพเงาที่ต่ำกว่า (0.27) ในขณะที่คลัสเตอร์ 4 มีภาพที่ดีที่สุด (0.55) คลัสเตอร์ 2 ยังเป็นคลัสเตอร์ที่มีการสังเกตการณ์มากที่สุดโดยมีเงาต่ำกว่า 0 และตามทฤษฎีแล้ว หมายความว่ากรณีเหล่านั้นอาจเป็นของกระจุกดาวอื่น

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

การรวมกลุ่มดีอย่างไร?

วิธีที่จะรู้ว่าคลัสเตอร์ดีหรือไม่คือเจาะลึกเข้าไปดูเนื้อหาว่าเกี่ยวข้องกันหรือไม่ และมีรูปแบบ เช่น เพลงในอัลบั้มเดียวกัน ศิลปินเดียวกัน คล้าย ๆ กัน เสียงหรือสไตล์เดียวกัน ในส่วนนี้ ฉันจะนำเสนอเพลงบางเพลงที่รวมอยู่ในคลัสเตอร์ 3 และ 4 และยิ่งกว่านั้น ฉันจะสร้างคลัสเตอร์ใหม่โดยใช้เนื้อหาของคลัสเตอร์ 4 เพื่อพยายามค้นหาความคล้ายคลึงเพิ่มเติม

ในส่วนก่อนหน้านี้ ฉันระบุว่าคลัสเตอร์ 4 ประกอบด้วยการสังเกต 143 ครั้ง ทำให้เป็นกลุ่มที่ใหญ่ที่สุด ในรายการต่อไปนี้ ฉันจะแสดงอัลบั้มบางส่วนที่อยู่ในกลุ่มนี้ จำนวนเพลง และในบางกรณี ฉันจะจดบันทึกเกี่ยวกับอัลบั้ม

  • The Lord Of The Rings — The Return Of The King — The Complete Recordings (Limited Edition): 38 เพลง
  • Interstellar: เพลงประกอบภาพยนตร์ต้นฉบับ (เวอร์ชันดีลักซ์): 12 เพลง
  • Child of Light: 10 เพลง; นี่คือเพลงประกอบของวิดีโอเกม
  • Interstellar: Original Motion Picture Soundtrack (ใช่ ฉันมีอัลบั้มนี้ในเวอร์ชันปกติและดีลักซ์ จึงมีบางเพลงที่ซ้ำกัน): 10 เพลง
  • Mad Max: Fury Road — เพลงประกอบภาพยนตร์ต้นฉบับ: 9 เพลง
  • Distant Worlds II: เพลงเพิ่มเติมจาก Final Fantasy: 7เพลง; วิดีโอเกมอื่น
  • Mass Effect 3: 7 เพลง; วิดีโอเกม.
  • ในขณะที่(1 ‹ 2) โดยDeadmau5: 7 เพลง; ดนตรีอิเล็กทรอนิค.
  • เกิดมาด้วยเลือด: 5; เพลงที่ได้รับแรงบันดาลใจจากวิดีโอเกม Bloodborne
  • ทรานซิสเตอร์: 5เพลง; วิดีโอเกม.

เพลงที่เหลือ ได้แก่ Kanye West, Star Wars, เพลงคัฟเวอร์ของ Interstellar, เพลงจาก Mr. Robot (รายการทีวี), The Martian (ภาพยนตร์), Muse, The Hobbit และอื่นๆ อีกมากมาย

โทนเสียงและสไตล์หลักของเพลงในกลุ่มนี้เป็นเครื่องมือ เพลงที่แทบไม่มีเนื้อร้องเลย ดังที่คุณอาจสังเกตเห็นว่าหลายเรื่องมาจากดนตรีประกอบดั้งเดิมของภาพยนตร์ (Interstellar, Lord of the Rings) และวิดีโอเกม (Final Fantasy , แมสเอฟเฟกต์); แม้แต่เพลง Kanye West ก็ยังถือเป็นเพลงบรรเลงสลับฉากที่ไม่มีเสียงร้อง

มาดูคลัสเตอร์ 3 ซึ่งเป็นคลัสเตอร์ที่เล็กที่สุดกัน ฉันจะแสดงรายการอัลบั้มและจำนวนเพลงอีกครั้ง

  • อะคูสติก โดยAbove & Beyond: 12 เพลง
  • Acoustic II โดยAbove & Beyond: 11 เพลง
  • The Life of Pablo โดย Kanye West: 6เพลง
  • บาสชัน: 4 เพลง; วิดีโอเกม
  • Interstellar: เพลงประกอบภาพยนตร์ต้นฉบับ (เวอร์ชันดีลักซ์): 3 เพลง
  • The Lord Of The Rings — The Return Of The King — The Complete Recordings (Limited Edition): 3 เพลง
  • Interstellar: เพลงประกอบภาพยนตร์ต้นฉบับ: 2 เพลง
  • ทรานซิสเตอร์: 2 เพลง

เมื่อแรกเห็น กลุ่มนี้ดูเหมือนจะมีความหลากหลายมากกว่ากลุ่มก่อนหน้าเล็กน้อย (ซึ่งอาจเป็นสาเหตุว่าทำไมกลุ่มนี้ถึงเป็นกลุ่มที่มีความแตกต่างกันมากที่สุด) มีเพลงในวิดีโอเกม มี Interstellar, Lord of the Rings และฮิปฮอปและแร็พบ้าง แต่จุดเด่นคือมี 23 เพลงจากอัลบั้ม Above & Beyond's Acoustic เพื่อให้เข้าใจง่ายขึ้น สองอัลบั้มนี้เป็นเวอร์ชันอะคูสติกของเพลงที่โด่งดังที่สุดของ Above and Beyond บางเพลง และสิ่งที่ฉันพบว่าน่าสงสัยก็คือ แม้ว่าจะเป็นสองอัลบั้มที่แตกต่างกัน ซึ่งออกในปีที่แยกจากกัน แต่ก็ใช้สไตล์เดียวกันตาม คุณสมบัติด้านเสียงและคลัสเตอร์ สิ่งสำคัญที่ต้องพูดถึงคืออัลบั้มแรกมี 12 เพลงและอัลบั้มที่สองมี 13 เพลง ดังนั้นกลุ่มจึงสามารถบันทึกเพลงได้เกือบทั้งหมด (23 จาก 25 เพลง)

เนื่องจากคลัสเตอร์ 3 มีความหลากหลายเล็กน้อย ฉันจึงจัดกลุ่มเนื้อหาในรูปแบบใหม่เพื่อตรวจสอบว่าอัลกอริทึมสามารถตรวจจับความหลากหลายนั้นได้หรือไม่ โดยเฉพาะอย่างยิ่ง ฉันสนใจที่จะดูว่าเพลงจากอัลบั้ม Acoustics เพลงฮิปฮอปและแร็พ และเพลงจากภาพยนตร์และวิดีโอเกม ได้รับการจัดสรรให้กับกลุ่มต่างๆ หรือไม่ เช่นเดียวกับครั้งก่อน มีการใช้ k-medoids คราวนี้ใช้ k=4

กราฟก่อนหน้าคือแผนภาพเงาของกลุ่มใหม่ ความกว้างของภาพเงาโดยเฉลี่ยคือ 0.29 ซึ่งต่ำกว่าและแย่กว่าครั้งก่อนซึ่งก็คือ 0.40 อีกอย่างคราวนี้มีคลัสเตอร์ห่วยจริงๆ ด้วยคะแนน 0.10 ด้านล่างนี้เป็นบทสรุปของคลัสเตอร์

  • คลัสเตอร์ 1:
    Above & Beyond อัลบั้มอะคูสติก: 6 เพลง
    — แร็พ: 2 เพลง
    — ดนตรีบรรเลง: 3 เพลง
    — เพลงป๊อป ดนตรีอิเล็กทรอนิกส์ เพลงบัลลาดสเปน: 1 เพลงอย่างละเพลง
    — Frank Sinatra (แจ๊ส): < แข็งแกร่ง>1 เพลง
  • คลัสเตอร์ 2:
    Above & Beyond อัลบั้มอะคูสติก: 15 เพลง (16 หากเรานับเพลงซ้ำจากอัลบั้มอื่น)< br /> — เพลง Lord of the Rings พร้อมเสียงร้อง: 1
    — เพลงประกอบภาพยนตร์ Bastion พร้อมเสียงร้อง: 2
    Transistor em> เพลงประกอบพร้อมเสียงร้อง: 1
  • คลัสเตอร์ 3:
    — แร็พ: 6 เพลง
    — อิเล็กทรอนิกส์: 2 เพลง
  • กลุ่มที่ 4:
    Interstellar: 5 เพลง
    Lord of the Rings: 2 เพลง

ฉันพอใจมากกับผลลัพธ์ที่ได้รับในกลุ่มที่สอง สำหรับผู้เริ่มต้น เพลงมากกว่าครึ่งหนึ่งมาจากอัลบั้ม Acoustic และเพลงอื่นๆ มีความคล้ายคลึงกัน (เชื่อฉันเถอะ) ตัวอย่างเช่น เพลงจาก Bastion และ Transistor เป็นเพลงผ่อนคลายที่มีเสียงนุ่มนวลและให้ความรู้สึกแบบอะคูสติกจากกีตาร์ (ทั้งสองอัลบั้มเป็นของศิลปินคนเดียวกัน) เพลงจาก Lord of the Rings ดูร่าเริงกว่าเพลงก่อนๆ เล็กน้อย แต่ฉันจะบอกว่ามันเข้ากับธีม

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

การแสดงภาพ

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

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

โชคดีที่มีกลุ่มอัลกอริธึมที่เรียกว่าการลดขนาดซึ่งมีวัตถุประสงค์เพื่อฉายข้อมูลมิติสูงให้เป็นมิติต่ำเพื่อให้เราทำบางอย่างได้ เช่น การแสดงภาพข้อมูล จากอัลกอริธึมเหล่านี้ ฉันเลือกใช้ t-Distributed Stochastic Neighbor Embedding (t-SNE) และ Principal Component Analysis (PCA) น่าเศร้าที่ฉันจะไม่ลงรายละเอียดเนื่องจากความซับซ้อนของสิ่งเหล่านี้ และโดยสัตย์จริง ฉันยังไม่เข้าใจรายละเอียดเหล่านี้อย่างถ่องแท้ (โดยเฉพาะ t-SNE) ดังนั้นฉันมั่นใจว่าคำอธิบายของฉันจะขาดหายไป (หากใครมีแหล่งข้อมูลที่ดีเกี่ยวกับเรื่องนี้ โปรด เพิ่มไว้ในความคิดเห็น)

สองภาพแรกคือการแสดง t-SNE และ PCA ของคลัสเตอร์หลัก

รูปภาพทั้งสองแสดงให้เห็นว่าคลัสเตอร์มีการกำหนดไว้อย่างดีเพียงใด และการทับซ้อนกันระหว่างคลัสเตอร์เหล่านั้นมีน้อยเพียงใด ยกเว้นเนื้อหาบางส่วนของคลัสเตอร์ 5 ซึ่งดูเหมือนว่าจะอยู่ในคลัสเตอร์ 2 ในส่วนก่อนหน้านี้ มีการกล่าวถึงคลัสเตอร์ 3 คือ อันที่มีเส้นผ่านศูนย์กลางใหญ่กว่า และสิ่งนี้สามารถสังเกตได้ในภาพ โดยเฉพาะใน t-SNE หากมองไปทางขวาสุดของภาพ จะมีจุดหนึ่งของคลัสเตอร์ 3 ที่ชัดเจนอยู่ในคลัสเตอร์ 1 รวมถึงอีกจุดบนสุดของคลัสเตอร์ 4 และอีกจุดหนึ่งในคลัสเตอร์ 2 ดังนั้นคลัสเตอร์ 3 จึงเป็นเช่นนั้นจริงๆ กระจายออกไป เพื่อเป็นโบนัส ฉันจะเพิ่มการแสดง t-SNE ครั้งที่สอง แต่คราวนี้เป็นแบบ 3 มิติ และแม้ว่าจะเข้าใจยากเล็กน้อยในแบบ 2 มิติ แต่ก็อาจช่วยเพิ่มข้อมูลเชิงลึกเพิ่มเติมเกี่ยวกับคลัสเตอร์ได้

เกี่ยวกับการจัดกลุ่มที่ทำกับข้อมูลของคลัสเตอร์ 3 นี่คือลักษณะที่ t-SNE

ข้อสังเกตหลักของกราฟนี้คือการกระจายตัวของข้อมูลในคลัสเตอร์ 3 เป็นอย่างไร เพลง 4 เพลงอยู่เหนือคลัสเตอร์ 2 และส่วนที่เหลืออยู่ใต้นั้น และคุณอาจจำได้จากการสนทนาว่าคลัสเตอร์ 3 มี 4 เพลงจาก ลอร์ดออฟเดอะริงส์ 4 จุดนี่อาจจะเป็นเพลงพวกนั้นเหรอ? อาจจะ. ยิ่งไปกว่านั้น คะแนนภาพเงาโดยเฉลี่ยของกลุ่มนี้ (0.10) เป็นคะแนนที่ต่ำที่สุดในแบบจำลอง (มีคะแนนติดลบหลายคะแนน) ดังนั้นจึงคาดว่าจะสังเกตเห็นความกระจัดกระจายนี้

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

บทสรุป

ในตอนต้นของบทความนี้ ฉันได้แนะนำความอยากรู้อยากเห็นหรือคำถามที่ฉันสงสัยเกี่ยวกับดนตรีของฉัน คำถามดังกล่าวคือ: “เป็นไปได้ไหมที่จะค้นหาเพลงที่คล้ายกันในกลุ่มต่างๆ ตามคุณสมบัติเสียงของพวกเขา” เพื่อตอบคำถามนี้ ฉันแบ่งปัญหาออกเป็น 4 ขั้นตอนที่แตกต่างกัน ขั้นแรก โดยใช้ค่าสัมประสิทธิ์ภาพเงาและสถิติช่องว่าง ฉันสามารถกำหนดค่าที่เหมาะสมเป็น k ได้ ตามด้วยข้อมูลนี้ถูกจัดกลุ่มโดยใช้ k-medoids และผลลัพธ์ของการจัดกลุ่ม เช่น เส้นผ่านศูนย์กลาง การแยก และความแตกต่างของแต่ละคลัสเตอร์ ได้รับการอธิบาย จากนั้น ในบรรดาคลัสเตอร์ทั้งหมด มีสองคลัสเตอร์ที่ได้รับเลือกให้ตรวจสอบเนื้อหาด้วยตนเอง หนึ่งในนั้นส่วนใหญ่ทำจากเพลงจากวิดีโอเกมและเพลงประกอบภาพยนตร์ อันที่สองมีความหลากหลายมากกว่า มีเพลงแร็พ เพลงอะคูสติก เพลงบรรเลง และเพลงจากวิดีโอเกมอีกมากมาย ด้วยการใช้เพลงทั้งหมดจากคลัสเตอร์ที่สองนี้ โมเดลใหม่จึงถูกสร้างขึ้นเพื่อตรวจสอบว่าเป็นไปได้ที่จะมีสไตล์ดนตรีแต่ละสไตล์ที่กล่าวถึงข้างต้นแยกกันในกลุ่มหรือไม่ ผลลัพธ์เป็นบวก เพลงอะคูสติกส่วนใหญ่อยู่ในกลุ่มเดียวกัน ในขณะที่เพลงแร็พอยู่ในกลุ่มอื่น สุดท้ายนี้ มีการแสดงภาพคลัสเตอร์เพื่อให้เราเข้าใจอย่างชัดเจนว่าพวกมันมีลักษณะอย่างไร และนอกจากนี้ ฉันยังสามารถชี้ให้เห็นรูปแบบบางอย่างที่สังเกตได้ในระหว่างส่วนการวิเคราะห์คลัสเตอร์อีกด้วย

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

รหัสที่ใช้สำหรับโปรเจ็กต์นี้ รวมถึงชุดข้อมูลมีอยู่ใน Github ของฉัน: https://github.com/juandes/audio-features-unsupervised-learning

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

ขอบคุณที่อ่าน :)