機器學習數學|偏度與峰度及其python實現
機器學習中的數學
覺得有用的話,歡迎一起討論相互學習~Follow Me
原創文章,如需轉載請保留出處
本部落格為七月線上鄒博老師機器學習數學課程學習筆記
矩
- 對於隨機變數X,X的K階原點矩為
E(Xk) - X的K階中心矩為
E([X−E(X)]k) - 期望實際上是隨機變數X的1階原點矩,方差實際上是隨機變數X的2階中心矩
- 變異係數(Coefficient of Variation):標準差與均值(期望)的比值稱為變異係數,記為C.V
- 偏度Skewness(三階)
- 峰度Kurtosis(四階)
偏度與峰度
利用matplotlib模擬偏度和峰度
計算期望和方差
import matplotlib.pyplot as plt
import math
import numpy as np
def calc(data):
n=len(data) # 10000個數
niu=0.0 # niu表示平均值,即期望.
niu2=0.0 # niu2表示平方的平均值
niu3=0.0 # niu3表示三次方的平均值
for a in data:
niu += a
niu2 += a**2
niu3 += a**3
niu /= n
niu2 /= n
niu3 /= n
sigma = math.sqrt(niu2 - niu*niu)
return [niu,sigma,niu3]
niu=Xi¯即期望 niu2=∑ni=1X2in niu3=∑ni=1X3in - sigma表示標準差公式為
σ=E(x2)−E(x)2−−−−−−−−−−−−√ 用python語言表示即為sigma=math.sqrt(niu2−niu∗niu) - 返回值為[期望,標準差,
E(x3) ] - PS:我們知道期望E(X)的計算公式為
E(X)=∑i=1np(i)x(i)−−−−−(1) 這裡我們X一個事件p(i)表示事件出現的概率,x(i)表示事件所給予事件的權值. - 我們直接利用
E(x)=Xi¯−−−−(2) 表示期望應當明確
- (2)公式中
Xi是利用numpy中的 - 此時(1)公式中對事件賦予的權值預設為1,即公式的本來面目為
E(x)=(Xi∗1)¯
- (2)公式中
計算偏度和峰度
def calc_stat(data):
[niu, sigma, niu3]=calc(data)
n=len(data)
niu4=0.0 # niu4計算峰度計算公式的分子
for a in data:
a -= niu
niu4 += a**4
niu4 /= n
skew =(niu3 -3*niu*sigma**2-niu**3)/(sigma**3) # 偏度計算公式
kurt=niu4/(sigma**4) # 峰度計算公式:下方為方差的平方即為標準差的四次方
return [niu, sigma,skew,kurt]
利用matplotlib模擬影象
if __name__ == "__main__":
data = list(np.random.randn(10000)) # 滿足高斯分佈的10000個數
data2 = list(2*np.random.randn(10000)) # 將滿足好高斯分佈的10000個數乘以兩倍,方差變成四倍
data3 =[x for x in data if x>-0.5] # 取data中>-0.5的值
data4 = list(np.random.uniform(0,4,10000)) # 取0~4的均勻分佈
[niu, sigma, skew, kurt] = calc_stat(data)
[niu_2, sigma2, skew2, kurt2] = calc_stat(data2)
[niu_3, sigma3, skew3, kurt3] = calc_stat(data3)
[niu_4, sigma4, skew4, kurt4] = calc_stat(data4)
print (niu, sigma, skew, kurt)
print (niu2, sigma2, skew2, kurt2)
print (niu3, sigma3, skew3, kurt3)
print (niu4, sigma4, skew4, kurt4)
info = r'$\mu=%.2f,\ \sigma=%.2f,\ skew=%.2f,\ kurt=%.2f$' %(niu,sigma, skew, kurt) # 標註
info2 = r'$\mu=%.2f,\ \sigma=%.2f,\ skew=%.2f,\ kurt=%.2f$' %(niu_2,sigma2, skew2, kurt2)
info3 = r'$\mu=%.2f,\ \sigma=%.2f,\ skew=%.2f,\ kurt=%.2f$' %(niu_3,sigma3, skew3, kurt3)
plt.text(1,0.38,info,bbox=dict(facecolor='red',alpha=0.25))
plt.text(1,0.35,info2,bbox=dict(facecolor='green',alpha=0.25))
plt.text(1,0.32,info3,bbox=dict(facecolor='blue',alpha=0.25))
plt.hist(data,100,normed=True,facecolor='r',alpha=0.9)
plt.hist(data2,100,normed=True,facecolor='g',alpha=0.8)
plt.hist(data4,100,normed=True,facecolor='b',alpha=0.7)
plt.grid(True)
plt.show()
- 圖形表示的是利用numpy隨機數生成函式生成的隨機數的統計分佈,利用matplotlib.pyplot.hist繪製的直方圖.即是出現數字的分佈統計,並且是歸一化到0~1區間後的結果.
- 即橫軸表示數字,縱軸表示在1000個隨機數中橫軸對應的數出現的百分比.若不使用歸一化橫軸表示數字(normed=False),縱軸表示出現的次數.
- 若不使用歸一化–縱軸表示出現次數
- 關於matplotlib.pyplot.hist函式
n, bins, patches = plt.hist(arr, bins=10, normed=0, facecolor='black', edgecolor='black',alpha=1,histtype='b')
hist的引數非常多,但常用的就這六個,只有第一個是必須的,後面四個可選
arr: 需要計算直方圖的一維陣列
bins: 直方圖的柱數,可選項,預設為10
normed: 是否將得到的直方圖向量歸一化。預設為0
facecolor: 直方圖顏色
edgecolor: 直方圖邊框顏色
alpha: 透明度
histtype: 直方圖型別,‘bar’, ‘barstacked’, ‘step’, ‘stepfilled’
返回值 :
n: 直方圖向量,是否歸一化由引數normed設定
bins: 返回各個bin的區間範圍
patches: 返回每個bin裡面包含的資料,是一個list
相關推薦
機器學習數學|偏度與峰度及其python實現
機器學習中的數學 覺得有用的話,歡迎一起討論相互學習~Follow Me 原創文章,如需轉載請保留出處 本部落格為七月線上鄒博老師機器學習數學課程學習筆記 矩 對於隨機變
偏度與峰度的正態性分佈判斷
當我們應用統計方法對資料進行分析時,會發現許多分析方法如T檢驗、方差分析、相關分析以及線性迴歸等等,都要求資料服從正態分佈或近似正態分佈,正態分佈在機器學習的重要性後期會講述。上一篇文章用Q-Q圖來驗證資料集是否符合正態分佈,本文首先介紹了偏度與峰度的定義,然後用偏度與峰度檢測資料集是否符合正態分
偏度與峰度(附python程式碼)
1 矩 對於隨機變數X,X的K階原點矩為 X的K階中心矩為 期望實際上是隨機變數X的1階原點矩,方差實際上是隨機變數X的2階中心矩 變異係數(Coefficient of Variation):標準差與均值(期望)的比值稱為變異係數,記為C
機器學習中MSE、MAE、RMSE的python實現
target = [1.5, 2.1, 3.3, -4.7, -2.3, 0.75] prediction = [0.5, 1.5, 2.1, -2.2, 0.1, -0.5] error = [] for i in range(len(target)): error.append(
機器學習基石—作業2(16-20題Python實現)
import numpy as np from numpy import random def sign(x):#自定義符號函式,只返回-1,+1 ret=np.ones(x.shape) for i,each in enumerate(x):
NG機器學習總結-(四)邏輯迴歸以及python實現
在第一篇部落格NG機器學習總結一中,我們提到了監督學習通常一般可以分為兩類:迴歸和分類。線性迴歸屬於迴歸問題,例如房價的預測問題。而判斷一封郵件是否是垃圾郵件、腫瘤的判斷(良性還是惡性)、線上交易是否欺詐都是分類問題,當然這些都是二分類的問題。 Email:Spam /
機器學習實踐系列 1 線性代數計算的python實現
在深入學習機器學習,開啟人工智慧演算法設計之前,有許多需要事先掌握的知識,最重要的是數學知識和程式設計能力,而且要把這兩者有機結合起來,以備今後實現各類演算法做好準備。 python是如今廣為傳頌的科學計算程式開發語言,有優勢或缺點在這裡不想追溯,畢竟沒有一種
機器學習-簡單的K最近鄰演算法及python實現
根據前人的成果進行了學習 https://www.cnblogs.com/ahu-lichang/p/7161613.html#commentform 1、演算法介紹 其實k最近鄰演算法算是聚類演算法中最淺顯易懂的一種了,考慮你有一堆二維資料,你想很簡單的把它分開,像下圖這
NG機器學習總結-(三)線性迴歸以及python實現
在前面已經簡單介紹了迴歸問題(預測房價),其實在統計學中,線性迴歸(Linear Regression)是利用被稱為線性迴歸方程的最小平方函式(Cost Function)對一個或多個自變數和因變數之間關係進行建模的一種迴歸分析。這種函式式一個或多個被稱為迴歸係數的模型引數的
機器學習中稀疏矩陣的處理方式和Python實現
在矩陣中,如果數值為0的元素數目遠遠多於非0元素的數目,並且非0元素分佈無規律時,則稱該矩陣為稀疏矩陣;與之相反,若非0元素數目佔大多數時,則稱該矩陣為稠密矩陣。 大的稀疏矩陣在一般情況下是通用的,特別是在應用機器學習中,例如包含計數的資料、對映類別的資料編碼,甚至在機器學
小白學習機器學習---第三章(2):對數機率迴歸python實現
上程式碼~~~~~~~~###梯度下降法實現多元線性迴歸 def loadDataSet(): ###資料匯入函式### dataMatrix=[] #資料矩陣,第一列是w=1.0,第2,3列是特徵 labelMatrix=[] #標籤矩陣
statistic—偏度,峰度,卡方分佈,t分佈,f分佈
from __future__ import print_function, division import numpy as np import pandas as pd import matplotlib.pyplot as plt from scipy.s
多階矩在影象中的含義(方差,偏度,峰度)
設影象共有N點(影象塊則為w*h個畫素點),第i點的灰度值為Xi,其均值為X,則這些特徵的含義如下: 方差(Variance):是一種衡量樣本分佈均勻性的尺度標準。 計算公式為: 偏度(Skew
機器學習分類演算法(一)——餘弦相似度
概述:餘弦相似度是通過測量兩個向量點積空間夾角的餘弦值來判斷相似性。0°角的餘弦值是1,90°為0,餘弦值大小在[-1,1]區間。 數學原理: 向量:空間中有兩個點原點O和點A,OA(O指向A)就是一個向量,向量是有長度有方向的。 點積(內積):
機器學習數學基礎--偏導數
偏導 定義:一個多變數的函式的偏導數是它關於其中一個變數的導數,而保持其他變數恆定(相對於全導數,在其中所有變數都允許變化)。 數學表示:函式關於變數x的偏導數寫為或。偏導數符號是圓體字母,區別於全導數符號的正體。 由定義可求得: 幾何含義:偏導數f'x(x0,y0)
機器學習數學|概率論基礎常見概型分佈期望與方差
機器學習中的數學 覺得有用的話,歡迎一起討論相互學習~Follow Me 原創文章,如需轉載請保留出處 本部落格為七月線上鄒博老師機器學習數學課程學習筆記 概率論 對概率的認識,x表示一個事件,則P(x)表示事件發生的概率,其中不
統計分析:偏度和峰度
偏度 偏度(Skewness): 是對Sample構成的分佈的對稱性狀況的描述。 計算時間序列 xx 的偏度,偏度用於衡量 xx 的對稱性。若偏度為負,則 xx 均值左側的離散度比右側強;若偏度為正,則 xx均值左側的離散度比右側弱。對於正態分佈(或嚴格對稱分佈)偏度
python模擬概率論中偏度和峰度計算
在概率學中我們用偏度和峰度去刻畫分佈的情況: 偏度描述的是分佈的對稱性程度,如上面,右偏表示在u值的右側分佈佔多數,左偏則反向,並且通過陰影的面積去刻畫概率。而峰度是描述分佈的最高值的情況,在常用情況下,減去3的原因在於正態分佈的超值峰度恰好為3。 下面使
數據的偏度和峰度
對稱性 高峰 平臺 偏差 數據 描述 取值 計算公式 比較 偏度(Skewness)是描述某變量取值分布對稱性的統計量。 如果是正太分布的話.偏度是 三階中心距,值為0. ,Skewness=0 分布形態與正態分布偏度相同 Skewness>0 正偏差數值較大,為正偏
機器學習入門 - 1. 介紹與決策樹(decision tree)
recursion machine learning programmming 機器學習(Machine Learning) 介紹與決策樹(Decision Tree)機器學習入門系列 是 個人學習過程中的一些記錄與心得。其主要以要點形式呈現,簡潔明了。1.什麽是機器學習?一個比較概括的理解是: