2015-11-01 19 views
1

我使用sklearn.neighbors的KernelDensity模塊,但y軸值很奇怪。有誰知道我該如何解決這個問題?我希望y軸對應百分比概率。如何使KernalDensity正常化爲1?

enter image description here

X = data[:, np.newaxis] 
X_plot = np.linspace(0, 20, 1000)[:, np.newaxis] 
kde = KernelDensity(kernel='gaussian', bandwidth=0.15).fit(X) 
log_dens = kde.score_samples(X_plot) 
axis.plot(X_plot[:, 0], np.exp(log_dens), '-', 
      label="kernel = '{0}'".format('pft')) 
+0

'我想y軸對應百分率概率' - 百分率概率是多少? – cel

+0

不知道這是你想要的,但你看過'MinMaxScaler'嗎? http://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.MinMaxScaler.html – Ryan

+0

你想對這個概率做什麼?分類?異常值檢測?請注意,在覈密度估計中,您將估計連續隨機變量的概率密度函數。無法獲得單個浮動值的概率,只能通過在該區間內對密度函數進行積分來獲得該值處於特定區間的概率。 –

回答

2

y軸在曲線以上已經歸一化,並且對應於概率密度(即在曲線下方的積分是統一)。這對於連續變量來說是唯一有意義的歸一化,因爲連續分佈中任何特定值的「百分比概率」恰好爲零。