Python的Distance Weighted Discrimination
项目描述
概述
此软件包实现了距离加权判别(DWD)。关于DWD的详细信息,请参阅(Marron et al 2007,Wang and Zou 2018)。最初由Iain Carmichael在Python中实现。目前由Kitware, Inc维护。
该软件包目前实现了
-
使用二次锥规划(SOCP)解决的原始DWD公式,并使用cvxpy解决。
-
广义DWD(gDWD)和核gDWD使用Wang和Zou,2018年提出的最大化-最小化算法解决。
Marron, James Stephen, Michael J. Todd, and Jeongyoun Ahn. "Distance-weighted discrimination." Journal of the American Statistical Association 102, no. 480 (2007): 1267-1271.
Wang, Boxiang, and Hui Zou. "Another look at distance‐weighted discrimination." Journal of the Royal Statistical Society: Series B (Statistical Methodology) 80, no. 1 (2018): 177-198.
安装
DWD软件包可以通过pip或GitHub安装。该软件包目前仅在python 3.6上进行了测试。
$ pip install dwd
锥形求解器 socp_dwd.DWD
依赖于 cvxpy
,它并非所有平台都可用。请参阅cvxpy
安装说明。如果满足 cvxpy
依赖项,则使用 pip install dwd[socp]
。
Flit用于打包,所有包元数据都存储在pyproject.toml
中。要本地安装或开发此项目,请使用flit install
或使用flit build
构建一个pip可安装的wheel。
示例
from sklearn.datasets import make_blobs
from dwd.socp_dwd import DWD
# sample sythetic training data
X, y = make_blobs(
n_samples=200,
n_features=2,
centers=[[0, 0],
[2, 2]],
)
# fit DWD classifier
dwd = DWD(C='auto').fit(X, y)
# compute training accuracy
dwd.score(X, y) # 0.94
from sklearn.datasets import make_circles
from dwd.gen_kern_dwd import KernGDWD
# sample some non-linear, toy data
X, y = make_circles(n_samples=200, noise=0.2, factor=0.5, random_state=1)
# fit kernel DWD wit gaussian kernel
kdwd = KernGDWD(
lambd=.1, kernel='rbf',
kernel_kws={'gamma': 1},
).fit(X, y)
# compute training accuracy
kdwd.score(X, y) # 0.915
更多示例代码请参阅这些示例笔记本(包括生成上述图表的代码)。如果GitHub上的笔记本无法加载,您可以将笔记本URL复制/粘贴到https://nbviewer.jupyter.org/。
帮助和支持
更多文档、示例和代码修订即将推出。
文档
源代码位于GitHub上:https://github.com/slicersalt/dwd
测试
使用nose
进行测试。
贡献
我们欢迎贡献,以使这个包更强大:数据示例、错误修复、拼写错误、新功能等。
dwd-1.0.5.tar.gz的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 3b93790801dfc5f7002a74a1894bfc2229de3ccbe4a027bf800a99fbfcbc67aa |
|
MD5 | 58f852943ca35ac04af711e04f082380 |
|
BLAKE2b-256 | 4985274e5785a9f02f66195ce2fc025e925ec09685e10aa8ea90d5b51852336e |
dwd-1.0.5-py3-none-any.whl的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | fcd48b77c390ff882a1750ef263971943c44b05071332d9d5d59b87cd1816ad8 |
|
MD5 | d6524373295e27cca5b98b9054ee6c24 |
|
BLAKE2b-256 | 81e92484e01d71982cc8ea7e7c69224e4b6ca872b562b2246642fd1537fe0756 |