2021年算法工作总结
2021年5月10日,我轉(zhuǎn)行到互聯(lián)網(wǎng)做算法工作,離開了工作接近8年的機械設(shè)計工作,還是要在這里感謝軍哥對我的幫助和指點!
換工作后,陸續(xù)學(xué)了《流暢的python》,FastAPI框架學(xué)了點皮毛,python web 編程學(xué)了點,LeetCode的算法題還在寫,新年還是要抽時間多學(xué)習(xí)新的知識。
下面對自己的算法工作做一些總結(jié):
-
如果沒有標(biāo)注數(shù)據(jù),一開始需要自己先標(biāo)注少量的數(shù)據(jù),對數(shù)據(jù)的特點進行大致的歸類
-
能用簡單規(guī)則去解決相當(dāng)一部分的問題(就是一個簡單的手寫決策樹:if - else)
-
需要抽樣估計一下有多少 case 漏召回,可以將算法中的一些規(guī)則放松一些,看看有多少例子被召回,此時召回率會上升,準(zhǔn)確率會有所下降,用這樣的方法去看看,算法有沒有漏掉很多問題,盡量把這個規(guī)則算法的召回率做高,準(zhǔn)確率保證在20%-30%以上都可以
-
根據(jù)規(guī)則算法把召回來的case自己進行標(biāo)注,注意各類樣本的比例是否合適,避免后面標(biāo)注人員的無效工作,注意什么標(biāo)注方法比較合理,或者編寫標(biāo)注工具,需要和業(yè)務(wù)方就標(biāo)注標(biāo)準(zhǔn)達(dá)成共識
-
拿到標(biāo)注結(jié)果后,抽樣檢查標(biāo)注結(jié)果一致性如何,確定是否要進行二次標(biāo)注或修改
-
數(shù)據(jù)準(zhǔn)備好之后,會發(fā)現(xiàn)規(guī)則算法越寫越復(fù)雜,解決了一部分問題,另一些問題又沖突不對了,準(zhǔn)確率和召回率的蹺蹺板來回倒騰,可以使用GBDT等樹模型進行機器學(xué)習(xí),抽取一些特征,如是否有疑問詞,是否有?,編輯距離是多少(參考加州房價項目),一種特征的one-hot維數(shù)比較大,可以考慮分桶降維,不斷的加入特征,提高準(zhǔn)確率,可以用sklearn搜索參數(shù),看看比較重要的特征是哪些
-
如果到這步效果已經(jīng)可以了(業(yè)務(wù)認(rèn)可業(yè)務(wù)場景下的效果,注意不要拿算法研發(fā)的中間結(jié)果說明問題),那就可以收斂了,畢竟機器學(xué)習(xí)的計算成本還是比較小的
-
如果還不能滿意,考慮深度學(xué)習(xí)算法,使用BERT,ERNIE等大模型進行學(xué)習(xí)
-
出來一版算法的結(jié)果時,去分析混淆矩陣中的 badcase,發(fā)現(xiàn) badcase 的共同特征,把這個特征加入到模型當(dāng)中,通過分析還可能發(fā)現(xiàn) 有的 case 就是人漏標(biāo)了,有的 case 就是人標(biāo)錯了,匯總各類問題的分布比例是如何,找準(zhǔn)問題的大頭去努力解決
-
如果需要的話,還可組合更復(fù)雜的模型,比如底層用多個深度學(xué)習(xí)模型,預(yù)測的結(jié)果作為上層模型的特征,另外再添加一些其他的特征,一起提供給上層的模型(可以是機器學(xué)習(xí)模型或者深度學(xué)習(xí)模型),需要注意標(biāo)注的數(shù)據(jù)量是否足夠多能滿足模型這么多參數(shù)的學(xué)習(xí)
總結(jié)
以上是生活随笔為你收集整理的2021年算法工作总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 6060. 找到最接近
- 下一篇: fastapi 请求体 - 多个参数 /