假设我有此代码
_enter_dir() {
local git_root
git_root=$(git rev-parse --show-toplevel 2>/dev/null)
if [[ "$git_root" == "$PREV_PWD" ]]; then
return
elif [[ -n "$git_root" && -f "$git_root/.nvmrc" ]]; then
nvm use
NVM_DIRTY=1
elif [[ "$NVM_DIRTY" == 1 ]]; then
nvm use default
NVM_DIRTY=0
fi
PREV_PWD="$git_root"
}
export PROMPT_COMMAND=_enter_dir
#export PROMPT_COMMAND="$PROMPT_COMMAND;_enter_dir" # use this if PROMPT_COMMAND already defined
和离群值是:
df= rn.read_sql(sql,conn)
data = df.as_matrix(['TOT_CLM_GROSS_AMT','Gross_Amt_per_SRV','TOT_CLM_NET_AMT'])
db = DBSCAN(eps=15, min_samples=200).fit(data)
我可以知道为什么DBSCAN考虑离群值以及它们的标准是什么?我可以通过DBSCAN知道吗?
答案 0 :(得分:1)
DBSCAN算法是基于密度的算法。它查看附近的数据点的密度以确定它们是否属于同一群集。如果某个点与所有其他点相距太远,则将其视为异常值,并为其指定标签-1
。
基本上,您有一个半径和许多邻居。该算法会找到距离半径更近的给定点的所有点,如果它们大于相邻点的数量,则会将其视为与核心点属于同一群集的一部分。如果非核心点群集成员,如果它们比半径更接近核心点,但它们的邻域少于指定的邻居数,则也可以。
该算法随机开始检查数据点上的这些条件,创建聚类,并可能将紧密的聚类合并在一起。
您可以看看wikipedia page on DBSCAN或this blog post。
该算法的另一个变体是HDBSCAN,它是分层版本。您可能想尝试一下hdbscan
软件包中有一个优化的python实现。
这表示您的问题可能更适合ComputerScience StackExchange或与数据科学相关的StackExchange之一。
答案 1 :(得分:0)
噪声与异常值不同。
噪声点是低密度点。形式上,没有相邻点足够密集的点(否则它们将成为边界点)。
与离群值的区别是:离群值应该是稀有 。根据参数,所有点都可能是噪声。