dython来了!
大家好,我是一行
最近看到一个好玩的工具库,叫做dython,乍一看还以为是哪个模仿python的冷门语言
其实是一款数据建模库,原来scikit-learn、statsmodels、seaborn这些库需要十几行代码才能完成的功能,dython只需要一行代码就可以了
具体怎么使用它呢?一行分享在下面
1安装
通过pip即可完成对dython的安装:
pip install dython
2应用
那它有哪些一行代码便可实现的功能呢?下面举两个例子
特征值寻找
只需要给定一个数据集,Dython 将自动找到哪些特征是分类特征,哪些特征是数值特征,计算每个特征之间的相关关联度量,并将其绘制为易于阅读的热图,所有这一切都是用一行完成的
例如入门常用的鸢尾花数据集,绘制它的的关联热图便可以使用dython.nominal.associations 来实现
import pandas as pd
from sklearn import datasets
from dython.nominal import associations
# Load data
iris = datasets.load_iris()
# Convert int classes to strings to allow associations
# method to automatically recognize categorical columns
target = ['C{}'.format(i) for i in iris.target]
# Prepare data
X = pd.DataFrame(data=iris.data, columns=iris.feature_names)
y = pd.DataFrame(data=target, columns=['target'])
df = pd.concat([X, y], axis=1)
# Plot features associations
associations(df)
阈值寻找
只需要给定机器学习多种模型的预测,使用dython便可以轻松显示每个种模型的 ROC 曲线、AUC 分数并找到模型估计的最佳阈值
在Iris 数据集上绘制 SVM 模型预测示例ROC图,便可以使用dython.model_utils.metric_graph() 来进行实现
import numpy as np
from sklearn import svm, datasets
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import label_binarize
from sklearn.multiclass import OneVsRestClassifier
from dython.model_utils import metric_graph
# Load data
iris = datasets.load_iris()
X = iris.data
y = label_binarize(iris.target, classes=[0, 1, 2])
# Add noisy features
random_state = np.random.RandomState(4)
n_samples, n_features = X.shape
X = np.c_[X, random_state.randn(n_samples, 200 * n_features)]
# Train a model
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=.5, random_state=0)
classifier = OneVsRestClassifier(svm.SVC(kernel='linear', probability=True, random_state=0))
# Predict
y_score = classifier.fit(X_train, y_train).predict_proba(X_test)
# Plot ROC graphs
metric_graph(y_test, y_score, 'roc', class_names=iris.target_names)
3子模块
这个dython一共有4个子模块,分别实现分析、预测、检验、采样等功能
data_utils
data_utils子模块集成了一些基础性的数据探索性分析相关的API
- identify_columns_with_na()可用于快速检查数据集中的缺失值情况
- identify_columns_by_type()可快速选择数据集中具有指定数据类型的字段
- one_hot_encode()可快速对数组进行「独热编码」
- split_hist()则可以快速绘制分组直方图,帮助用户快速探索数据集特征分布
nominal
nominal子模块包含了一些进阶的特征相关性度量功能
- associations()可以自适应由连续型和类别型特征混合的数据集,并自动计算出相应的Pearson、Cramer's V、Theil's U、条件熵等多样化的系数
- cluster_correlations()可以绘制出基于层次聚类的相关系数矩阵图等实用功能
model_utils
model_utils子模块包含了诸多对机器学习模型进行性能评估的工具
- ks_abc() 对二元分类器的正负分布执行 Kolmogorov-Smirnov 检验,然后找到最佳阈值,即能够实现最佳类别分离的阈值。
- metric_graph()绘制预测器结果(包括 AUC 分数)的图表,其中 y_true 和 y_pred 的每一行代表一个示例。
sampling
sampling子模块则包含了boltzmann_sampling()和weighted_sampling()两种数据采样方法,简化数据建模流程。
- boltzmann_sampling()从对提供的数字进行玻尔兹曼采样
- weighted_sampling()从对所提供数字的加权采样
4最后
Dython的主要目的是实现各种功能的简易可读性,但是在性能上面稍有欠缺
大家如果对这个库想深入了解,可以参考网站 http://shakedzy.xyz/dython/ 来查看它的具体使用情况
好了,这就是今天的分享,技术永不眠,我们下期见~
相关文章
- 从本体论开始说起——运营商关系图谱的构建及应用
- 如何成为一名数据科学家?
- 从未见过的堂兄杀了人,你的DNA是关键证据
- 20个安全可靠的免费数据源,各领域数据任你挑
- 20个安全可靠的免费数据源,各领域数据任你挑
- 阿里云李飞飞:All in Cloud时代,云原生数据库优势明显
- 基于Hadoop生态系统的一高性能数据存储格式CarbonData(性能篇)
- 大数据告诉你:10年漫威,到底有多少角色
- TigerGraph:实时图数据库助力金融风控升级
- Splunk利用Splunk Connected Experiences和Splunk Business Flow 扩大数据访问
- 大数据开发常见的9种数据分析手段
- 以免在景区看人,我爬了5W条全国景点门票数据...
- 【实战解析】基于HBase的大数据存储在京东的应用场景
- 数据科学家告诉你哪些计算机科学书籍是你应该看的
- Kafka作为大数据的核心技术,你了解多少?
- Spring Boot 整合 Redis 实现缓存操作
- 大数据学习必须掌握的五大核心技术有哪些?
- 基于Antlr在Apache Flink中实现监控规则DSL化的探索实践
- 甲骨文再次被Gartner评为分析型数据管理解决方案魔力象限领导者
- 爬取吴亦凡微博102118条转发数据,扒一扒流量的真假