0912_Collective Intelligence Programming Reading Notes


讀了兩天的機器學習方面的書,一般都覺得太高大上了,這次仔細翻開入門書,才頓覺之前大學必修課程——數值代數計算的重要性;當然還有之前參加美賽時候學習的matlab的曲線擬合不僅僅只是在建立模型時有用,在日常生活中同樣適用。

才翻了近20頁的書,不算特別多,不過還是蠻有感觸的。

姑且不談前幾頁談的人工智能的作用之類,我們從實際算法開始說起。

根據都評價了的影片進行相似度評價:(比較兩人的已作相同電影的評價相似度)

1. 歐幾里得距離 similarity-distance

sim_distance = 1 / ( 1 + sqrt ( Σ (a - b)² ) )

2. 皮爾遜相關系數 similarity-pearson(解決歐幾里得距離不能解決的用戶起評分數不同,但是評價相同的問題)

sim_pearson = ( Σ ( a * b ) -  Σ ( a ) * Σ ( b )  / n )  / sqrt ( ( Σ ( a² ) - Σ ² ( a ) / n ) * ( Σ( b² ) - Σ ² ( b ) / n ) )

以已看的電影所作出的評價為依據,找出評價最為相似的群體(個人),為用戶推薦其他電影。

ranking = Σ ( sim_distance * grade ) / Σ ( sim_distance )

ranking = Σ ( sim_pearson * grade ) / Σ ( sim_pearson )

為了解決某些用戶可能對部分電影特別青睞導致推薦有誤,采用對不同相似度的用戶進行加權操作,結果顯示不論是皮爾遜相關系數亦或是歐幾里得距離,最終的算法得到的結果是大抵相同的。

那么就足以解決相似度推薦的問題。

算法大多是使用python寫的,且大量使用了python特有的字典(類似json數組或者是map容器)和列表,對於列表推導式,之前學習python基本語法時真的比較少接觸,還是比較習慣寫java/c++/php中的foreach、while操作。

今天就先整理這么多吧!


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com