當前位置:首頁 » 編程語言 » pythoncorrcoef

pythoncorrcoef

發布時間: 2023-07-14 00:17:19

1. python機器學習中可以實現協同過濾嗎

1.背景
協同過濾(collaborative filtering)是推薦系統常用的一種方法。cf的主要思想就是找出物品相似度高的歸為一類進行推薦。cf又分為icf和ucf。icf指的是item collaborative filtering,是將商品進行分析推薦。同理ucf的u指的是user,他是找出知趣相似的人,進行推薦。通常來講icf的准確率可能會高一些,通過這次參加天貓大數據比賽,我覺得只有在數據量非常龐大的時候才適合用cf,如果數據量很小,cf的准確率會非常可憐。博主在比賽s1階段,大概只有幾萬條數據的時候,嘗試了icf,准確率不到百分之一。。。。。
2.常用方法
cf的常用方法有三種,分別是歐式距離法、皮爾遜相關系數法、餘弦相似度法。
測試矩陣,行表示三名用戶,列表示三個品牌,對品牌的喜愛度按照1~5增加。
(1)歐氏距離法
就是計算每兩個點的距離,比如Nike和Sony的相似度。數值越小,表示相似的越高。
[python] view plain print?在CODE上查看代碼片派生到我的代碼片
def OsDistance(vector1, vector2):
sqDiffVector = vector1-vector2
sqDiffVector=sqDiffVector**2
sqDistances = sqDiffVector.sum()
distance = sqDistances**0.5
return distance
(2)皮爾遜相關系數
兩個變數之間的相關系數越高,從一個變數去預測另一個變數的精確度就越高,這是因為相關系數越高,就意味著這兩個變數的共變部分越多,所以從其中一個變數的變化就可越多地獲知另一個變數的變化。如果兩個變數之間的相關系數為1或-1,那麼你完全可由變數X去獲知變數Y的值。
· 當相關系數為0時,X和Y兩變數無關系。
· 當X的值增大,Y也增大,正相關關系,相關系數在0.00與1.00之間
· 當X的值減小,Y也減小,正相關關系,相關系數在0.00與1.00之間
· 當X的值增大,Y減小,負相關關系,相關系數在-1.00與0.00之間
當X的值減小,Y增大,負相關關系,相關系數在-1.00與0.00之間
相關系數的絕對值越大,相關性越強,相關系數越接近於1和-1,相關度越強,相關系數越接近於0,相關度越弱。
clip_image003
在Python中用函數corrcoef實現,具體方法見http//infosec.pku.e.cn/~lz/doc/Numpy_Example_List.htm
(3)餘弦相似度
通過測量兩個向量內積空間的夾角的餘弦值來度量它們之間的相似性。0度角的餘弦值是1,而其他任何角度的
餘弦值都不大於1;並且其最小值是-1。從而兩個向量之間的角度的餘弦值確定兩個向量是否大致指向相同的方向。兩
個向量有相同的指向時,餘弦相似度的值為1;兩個向量夾角為90°時,餘弦相似度的值為0;兩個向量指向完全相
反的方向時,餘弦相似度的值為-1。在比較過程中,向量的規模大小不予考慮,僅僅考慮到向量的指向方向。餘弦相
似度通常用於兩個向量的夾角小於90°之內,因此餘弦相似度的值為0到1之間。
\mathbf{a}\cdot\mathbf{b}=\left\|\mathbf{a}\right\|\left\|\mathbf{b}\right\|\cos\theta
[python] view plain print?在CODE上查看代碼片派生到我的代碼片
def cosSim(inA,inB):
num = float(inA.T*inB)
denom = la.norm(inA)*la.norm(inB)
return 0.5+0.5*(num/denom)

2. python 哪個函數和matlab corrcoef函數功能相同

cov
這個函數是實現這個功能的
另外,對於任意兩個維度之間的相關關系可以用pearsonr來計算
哦,忘了說了,cov是numpy裡面的,pearsonr是scipy.stats裡面的

3. python相關性分析如何生成兩個相關性最強的兩門

方法/步驟

  • 第一步我們首先需要知道相關性主要有兩個方向,一個是正方向一個是負方向,相關性系數是衡量兩個變數之間影響程度,如下圖所示:

4. Python怎麼生成三維數

給個例子看看

5. Python基礎 numpy中的常見函數有哪些

有些Python小白對numpy中的常見函數不太了解,今天小編就整理出來分享給大家。

Numpy是Python的一個科學計算的庫,提供了矩陣運算的功能,其一般與Scipy、matplotlib一起使用。其實,list已經提供了類似於矩陣的表示形式,不過numpy為我們提供了更多的函數。

數組常用函數
1.where()按條件返回數組的索引值
2.take(a,index)從數組a中按照索引index取值
3.linspace(a,b,N)返回一個在(a,b)范圍內均勻分布的數組,元素個數為N個
4.a.fill()將數組的所有元素以指定的值填充
5.diff(a)返回數組a相鄰元素的差值構成的數組
6.sign(a)返回數組a的每個元素的正負符號
7.piecewise(a,[condlist],[funclist])數組a根據布爾型條件condlist返回對應元素結果
8.a.argmax(),a.argmin()返回a最大、最小元素的索引

改變數組維度
a.ravel(),a.flatten():將數組a展平成一維數組
a.shape=(m,n),a.reshape(m,n):將數組a轉換成m*n維數組
a.transpose,a.T轉置數組a

數組組合
1.hstack((a,b)),concatenate((a,b),axis=1)將數組a,b沿水平方向組合
2.vstack((a,b)),concatenate((a,b),axis=0)將數組a,b沿豎直方向組合
3.row_stack((a,b))將數組a,b按行方向組合
4.column_stack((a,b))將數組a,b按列方向組合

數組分割
1.split(a,n,axis=0),vsplit(a,n)將數組a沿垂直方向分割成n個數組
2.split(a,n,axis=1),hsplit(a,n)將數組a沿水平方向分割成n個數組

數組修剪和壓縮
1.a.clip(m,n)設置數組a的范圍為(m,n),數組中大於n的元素設定為n,小於m的元素設定為m
2.a.compress()返回根據給定條件篩選後的數組

數組屬性
1.a.dtype數組a的數據類型
2.a.shape數組a的維度
3.a.ndim數組a的維數
4.a.size數組a所含元素的總個數
5.a.itemsize數組a的元素在內存中所佔的位元組數
6.a.nbytes整個數組a所佔的內存空間7.a.astype(int)轉換a數組的類型為int型

數組計算
1.average(a,weights=v)對數組a以權重v進行加權平均
2.mean(a),max(a),min(a),middle(a),var(a),std(a)數組a的均值、最大值、最小值、中位數、方差、標准差
3.a.prod()數組a的所有元素的乘積
4.a.cumprod()數組a的元素的累積乘積
5.cov(a,b),corrcoef(a,b)數組a和b的協方差、相關系數
6.a.diagonal()查看矩陣a對角線上的元素7.a.trace()計算矩陣a的跡,即對角線元素之和

以上就是numpy中的常見函數。更多Python學習推薦:PyThon學習網教學中心。

熱點內容
光遇花開腳本封號嗎 發布:2025-02-08 18:23:15 瀏覽:532
怎麼弄ld帳號和密碼 發布:2025-02-08 18:11:42 瀏覽:627
新逍客20發動機壓縮比 發布:2025-02-08 17:58:10 瀏覽:115
qq號和密碼我都知道為什麼登不上 發布:2025-02-08 17:52:21 瀏覽:872
寶塔伺服器ip進不去 發布:2025-02-08 17:52:18 瀏覽:382
擔保中介源碼 發布:2025-02-08 17:14:37 瀏覽:413
手機存儲卡速度測試 發布:2025-02-08 17:02:57 瀏覽:26
洪恩編程 發布:2025-02-08 17:02:19 瀏覽:815
linux遠程式控制制 發布:2025-02-08 17:02:16 瀏覽:154
珠心算演算法 發布:2025-02-08 17:00:37 瀏覽:920