Skip to content

Scorpio408-28/WhaleSignal-music-prediction

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WhaleSignal - Music Popularity Prediction 🎵📊

📌 專案簡介

WhaleSignal 是一個機器學習專案,旨在 預測新上傳至 YouTube 的音樂達到 100 萬觀看次數所需的時間,並進一步分類歌曲是否有潛力成為熱門歌曲。

本專案透過 KworbViewstats 兩個網站獲取數據,並結合 Support Vector Regression (SVR) 進行回歸預測,以及 Random Forest 進行歌曲流行度分類。最終,分類的 準確率達到 70%

🎯 預測目標

  • 回歸任務:預測歌曲達到 100 萬觀看次數 所需的時間(SVR)
  • 分類任務:判斷歌曲是否屬於 高流行度類別(Random Forest)
  • 未來發展:加入 聽眾數據分析,幫助音樂創作者更了解自己的市場定位

🛠 使用技術

類別 技術 & 工具
語言 Python 🐍
數據來源 Kworb, Viewstats 📊
數據下載 yt_dlp (僅用於下載音樂 wav 檔) 🎵
數據分析 Pandas, NumPy, Matplotlib, Librosa 📊
機器學習 Scikit-Learn (SVR, Random Forest) 🤖
Web 應用 Flask

🛠️ 如何運行專案

1️⃣ 安裝環境

請確保你的環境已安裝 Python 3.8+,然後使用以下指令下載並安裝所需套件:

# 下載專案
git clone https://github.com/Scorpio408-28/whalesignal-music-prediction.git
cd whalesignal-music-prediction

# 安裝 Python 依賴套件
pip install -r requirements.txt

2️⃣ 運行 Jupyter Notebook

如果你想要查看數據分析與模型訓練的過程,請執行:

jupyter notebook

然後打開 notebooks/ 目錄,瀏覽 .ipynb 文件。

3️⃣ 運行 Web 應用

如果你希望運行 Flask 網站,請執行:

cd app
python app.py

然後在瀏覽器打開 http://127.0.0.1:5000/ 來查看網站。

📊 數據集與特徵工程

數據來源: 本專案的數據來自 Kworb 和 Viewstats,包含:

  • 影片標題
  • 頻道名稱
  • 觀看趨勢數據
  • 發佈時間

特徵工程

  • 數值特徵:觀看次數增長率
  • 文本特徵:影片標題與描述(使用 NLP 分析)
  • 音訊特徵:透過 Librosa 分析音樂的特徵

🏆 預測成果

分類任務

使用 Random Forest 進行歌曲流行度分類:

  • 準確率(Accuracy):70%

回歸任務

最終選擇使用 SVR(Support Vector Regression) 預測 100 萬觀看次數所需時間:( R 2 為負值) 圖片說明

📈 預測範例

圖片說明

🔮 未來發展

目前專案已能夠 預測 YouTube 歌曲的流行度,但仍有許多可以改進的地方:

  • 整合聽眾數據,幫助音樂創作者更了解自己的市場定位
  • 擴展數據來源,增加不同平台(如 Spotify、Apple Music)進行交叉分析
  • 提升模型效能,使用 LSTM / Transformer 等更強大的模型來捕捉時間序列趨勢

🤝 如何貢獻

如果你有興趣改進這個專案,歡迎 Fork & PR:

git clone https://github.com/Scorpio408-28/whalesignal-music-prediction.git

如果有建議或問題,請開 Issue 討論。

🌐 聯絡方式

作者:Scorpio408-28
如果有任何問題或建議,歡迎開 issue 或聯繫我!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published