Reference: Hands-on Machine Learning with Scikit-Learn and Tensorflow
1. 確定需求和問題:
- 項(xiàng)目目標(biāo)是什么磅崭?
- 在產(chǎn)品中如何實(shí)現(xiàn)踪少?
- 是否有現(xiàn)行的模型或方法性含,如果有的話,是什么肥荔,效果怎么樣?
- 要求是batch-learning還是online learning污尉?
- 用哪些指標(biāo)來衡量模型好壞示弓?指標(biāo)合理嗎?
- 模型的最差結(jié)果應(yīng)該比什么好(eg.現(xiàn)有的行冰、盲猜等)
- 是否有可以遷移學(xué)習(xí)的模型溺蕉?(之前碰到過NLP相關(guān)的,那doc2vec是否可以利用原先train好的)
- 列一下assumptions? 確認(rèn)這些assumption是否正確
2. 數(shù)據(jù)提鹊孔觥:
- 確定需要什么數(shù)據(jù)(一般需要一些行業(yè)經(jīng)驗(yàn)做支撐)疯特,確認(rèn)這些數(shù)據(jù)是否都可以拿到(數(shù)據(jù)庫中是否有這些變量,是否有權(quán)限得到這些數(shù)據(jù)肛走,數(shù)據(jù)庫中的這些變量是否可信)
- 確認(rèn)用戶敏感數(shù)據(jù)做了加密處理
- 確認(rèn)數(shù)據(jù)量
- 確認(rèn)建模環(huán)境
- 把數(shù)據(jù)進(jìn)行一些格式上的整理(例如時(shí)間漓雅、空間變量的格式轉(zhuǎn)變)
3. 數(shù)據(jù)探索:
- 如果數(shù)據(jù)量很大的話,sample一部分進(jìn)行數(shù)據(jù)探索(尤其是畫圖的時(shí)候)
- Data Exploration的結(jié)果最好可以保留朽色,跟建模的碼分開放
- 數(shù)據(jù)質(zhì)量檢查:
- 變量類型:numeric/categorical/order/text or other unstructured data...
- 缺失值:是否有缺失值邻吞?缺失值占比多少?導(dǎo)致數(shù)據(jù)缺失的原因有哪些葫男?
- 異常值: 是否有明顯的outlier(例如違背了行業(yè)邏輯的值)
- 畫變量的distribution,看大概像什么分布
- 如果是有監(jiān)督學(xué)習(xí)抱冷,確認(rèn)target variable
- 對(duì)連續(xù)變量做相關(guān)性分析 ->(新想到的是是否可以用互信息代替相關(guān)性分析,因?yàn)榛バ畔⒌脑拰?duì)discrete的變量也能做梢褐,只是個(gè)人想法)
- Visualizetion 探究變量和target variable之間的關(guān)系
- 確定需不需要進(jìn)行transformation
4. 數(shù)據(jù)準(zhǔn)備:
- 數(shù)據(jù)清洗:異常值處理旺遮、缺失值處理(缺失量小的話可以drop,或者用mean/median代替盈咳,離散變量的話也可新建一個(gè)類別叫unk
- Feature Selection:
- Feature Engineering:
- 離散化連續(xù)變量
- transformation
- feature整合
- Feature Scaling: 標(biāo)準(zhǔn)化/中心化
5. 確定一些待用模型(此步驟不調(diào)參):
- 嘗試一些不同的模型趣效,確定每個(gè)模型的待調(diào)參數(shù)有哪些
- 用CV來評(píng)估不同模型的優(yōu)劣性, 分析每個(gè)模型中最重要的變量有哪些猪贪?
- 分析模型為什么會(huì)犯錯(cuò)跷敬,然后進(jìn)行模型的調(diào)整
- 根據(jù)以上結(jié)果再做feature selection 和 feature engineering
- 循環(huán)以上步驟,確定3個(gè)比較好的模型
6.確認(rèn)模型:
- 用CV對(duì)模型進(jìn)行調(diào)參,用randomgridsearch
- 嘗試一些emsemble
- 確定模型后進(jìn)行評(píng)估
7. Presentation: