WhaleSignal 是一個機器學習專案,旨在 預測新上傳至 YouTube 的音樂達到 100 萬觀看次數所需的時間,並進一步分類歌曲是否有潛力成為熱門歌曲。
本專案透過 Kworb 和 Viewstats 兩個網站獲取數據,並結合 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 |
請確保你的環境已安裝 Python 3.8+,然後使用以下指令下載並安裝所需套件:
# 下載專案
git clone https://github.com/Scorpio408-28/whalesignal-music-prediction.git
cd whalesignal-music-prediction
# 安裝 Python 依賴套件
pip install -r requirements.txt
如果你想要查看數據分析與模型訓練的過程,請執行:
jupyter notebook
然後打開 notebooks/
目錄,瀏覽 .ipynb
文件。
如果你希望運行 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 萬觀看次數所需時間:(
目前專案已能夠 預測 YouTube 歌曲的流行度,但仍有許多可以改進的地方:
- 整合聽眾數據,幫助音樂創作者更了解自己的市場定位
- 擴展數據來源,增加不同平台(如 Spotify、Apple Music)進行交叉分析
- 提升模型效能,使用 LSTM / Transformer 等更強大的模型來捕捉時間序列趨勢
如果你有興趣改進這個專案,歡迎 Fork & PR:
git clone https://github.com/Scorpio408-28/whalesignal-music-prediction.git
如果有建議或問題,請開 Issue 討論。
作者:Scorpio408-28
如果有任何問題或建議,歡迎開 issue 或聯繫我!