Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
rictjo
impetuous
提交
10afb4a5
I
impetuous
项目概览
rictjo
/
impetuous
大约 1 年 前同步成功
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
I
impetuous
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
10afb4a5
编写于
8月 17, 2021
作者:
rictjo
提交者:
GitHub
8月 17, 2021
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update DBSCAN
上级
a726d8a3
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
16 addition
and
5 deletion
+16
-5
src/impetuous/clustering.py
src/impetuous/clustering.py
+16
-5
未找到文件。
src/impetuous/clustering.py
浏览文件 @
10afb4a5
...
...
@@ -550,11 +550,11 @@ def backprojection_clustering ( analyte_df , bRanked=False , n_dimensions=2 ,
return
(
cluster_coords_f
,
cluster_coords_s
)
def
dbscan
(
data_frame
=
None
,
distance_matrix
=
None
,
eps
=
0.11
,
minPts
=
1
)
:
eps
=
None
,
minPts
=
None
)
:
#
# FOR A DESCRIPTION OF THE CONNECTIVITY READ PAGE 30 (16 INTERNAL NUMBERING) of:
# https://kth.diva-portal.org/smash/get/diva2:748464/FULLTEXT01.pdf
from
impetuous.clustering
import
connectivity
,
absolute_coordinates_to_distance_matrix
from
impetuous.clustering
import
absolute_coordinates_to_distance_matrix
import
operator
if
not
operator
.
xor
(
data_frame
is
None
,
distance_matrix
is
None
)
:
print
(
"ONLY SUPPLY A SINGE DATA FRAME OR A DISTANCE MATRIX"
)
...
...
@@ -564,17 +564,28 @@ def dbscan ( data_frame = None , distance_matrix = None ,
if
not
data_frame
is
None
:
if
not
'pandas'
in
str
(
type
(
data_frame
))
:
print
(
"ONLY SUPPLY A SINGE DATA FRAME WITH ABSOLUTE COORDINATES"
)
print
(
"DATA MATRICES NEEDS TO BE SPECIFIED WITH
\"
d
istance_matrix
= ...
\"
"
)
print
(
"DATA MATRICES NEEDS TO BE SPECIFIED WITH
\"
d
ata_frame
= ...
\"
"
)
print
(
"dbscan FAILED"
)
exit
(
1
)
if
bVerbose
:
print
(
data_frame
)
if
not
(
'float'
in
str
(
type
(
eps
)).
lower
()
and
'int'
in
str
(
type
(
minPts
)).
lower
()
)
:
print
(
"TO CALL THE dbscan PLEASE SPECIFY AT LEAST A DATA FRAME OR"
)
print
(
"ITS CORRESPONDING DISTANCE MATRIX AS WELL AS THE DISTANCE CUTOFF PARAMETER"
)
print
(
"AND THE MINIMAL AMOUNT OF NEIGHBOUR POINTS TO CONSIDER IT A CLUSTER"
)
print
(
"dbscan ( data_frame = None , distance_matrix = None , eps = None, minPts = None )"
)
distance_matrix
=
absolute_coordinates_to_distance_matrix
(
data_frame
.
values
)
clustercontent
,
clustercontacts
=
connectivity
(
distance_matrix
,
eps
)
isNoise
=
np
.
sum
(
distance_matrix
<
eps
,
0
)
-
1
<
minPts
i_
=
0
for
ib
in
isNoise
:
if
ib
:
distance_matrix
[
i_
]
=
(
1
+
eps
)
*
10.0
distance_matrix
.
T
[
i_
]
=
(
1
+
eps
)
*
10.0
distance_matrix
[
i_
][
i_
]
=
0.
i_
=
i_
+
1
clustercontent
,
clustercontacts
=
connectivity
(
distance_matrix
,
eps
)
return
(
{
'cluster content'
:
clustercontent
,
'clusterid-particleid'
:
clustercontacts
,
'is noise'
:
isNoise
}
)
if
__name__
==
'__main__'
:
if
False
:
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录