前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >dython来了!

dython来了!

作者头像
行哥玩Python
发布2021-12-02 15:40:47
2760
发布2021-12-02 15:40:47
举报
文章被收录于专栏:一行数据一行数据

大家好,我是一行

最近看到一个好玩的工具库,叫做dython,乍一看还以为是哪个模仿python的冷门语言

其实是一款数据建模库,原来scikit-learn、statsmodels、seaborn这些库需要十几行代码才能完成的功能,dython只需要一行代码就可以了

具体怎么使用它呢?一行分享在下面

1安装

通过pip即可完成对dython的安装:

代码语言:javascript
复制
pip install dython

2应用

那它有哪些一行代码便可实现的功能呢?下面举两个例子

特征值寻找

只需要给定一个数据集,Dython 将自动找到哪些特征是分类特征,哪些特征是数值特征,计算每个特征之间的相关关联度量,并将其绘制为易于阅读的热图,所有这一切都是用一行完成的

例如入门常用的鸢尾花数据集,绘制它的的关联热图便可以使用dython.nominal.associations 来实现

代码语言:javascript
复制
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() 来进行实现

代码语言:javascript
复制
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/ 来查看它的具体使用情况

好了,这就是今天的分享,技术永不眠,我们下期见~

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-12-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 一行数据 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1安装
  • 2应用
    • 特征值寻找
      • 阈值寻找
      • 3子模块
        • data_utils
          • nominal
            • model_utils
              • sampling
              • 4最后
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档