图形化你的数据

scikit  learn 是个强大的机器学习工具,我们可以用它现成的包,直接运行机器学习的各种模型,分类和回归。

本文介绍如何用scikit learn 去处理数据集,达到你要的数据分布效果。 对于阐述数据分类问题很有帮助。

下行是引入内置的数据集

from sklearn.datasets import make_moons

引入不平衡算法。

from imblearn.datasets import make_imbalance

决定画几个图,本文画了一个图,所以是一行一列。

f, ax2 = plt.subplots(1, 1)

multiplier 0.1 小类的数据比例,越小,小类数据实例越少。

X_, y_ = make_imbalance(X, y, ratio=ratio_func,**{"multiplier": 0.1,"minority_class": 1})

此-3是决定了图像大小,越是负数图像越大。

plt.tight_layout(-3)


整个代码如下

import matplotlib.pyplot as plt

from collections import Counter

from sklearn.datasets import make_moons

from imblearn.datasets import make_imbalance

print(__doc__)

def plot_decoration(ax):

    ax.spines['top'].set_visible(False)

    ax.spines['right'].set_visible(False)

    ax.get_xaxis().tick_bottom()

    ax.get_yaxis().tick_left()

    ax.spines['left'].set_position(('outward', 10))

    ax.spines['bottom'].set_position(('outward', 10))

    ax.set_xlim([-3, 3])

# Generate the dataset

X, y = make_moons(n_samples=380, shuffle=True, noise=0.8, random_state=10)

f, ax2 = plt.subplots(1, 1)

def ratio_func(y, multiplier, minority_class):

    target_stats = Counter(y)

    return {minority_class: int(multiplier * target_stats[minority_class])}

ax=ax2

X_, y_ = make_imbalance(X, y, ratio=ratio_func,**{"multiplier": 0.1,"minority_class": 1})

ax.scatter(X_[y_ == 0, 0], X_[y_ == 0, 1], label="Class #0", alpha=0.5)

ax.scatter(X_[y_ == 1, 0], X_[y_ == 1, 1], label="Class #1", alpha=0.5)

ax.set_title('ratio = {}'.format(0.1))

plot_decoration(ax)

plt.tight_layout(-3)

plt.show()

注意python连数据行的对齐都很有要求,如果有的数据行没有对齐,变量声明不会被识别。

这是最后画出来的图。


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,442评论 19 139
  • 公公中风住院1个月,最终医院还是给出了半个月前就下好的结论,好生接回家照顾他余生!老公家里人悻悻的将公公接...
    半米与坤爷阅读 6,607评论 0 1
  • 学习目标: 1、通过观看视频,初步了解刘禹锡诗歌创作的整体风格。 2、通过诵读,整体把握诗歌的情感。 3、通过小组...
    彭丹0910阅读 3,468评论 0 2
  • 七八岁时,我们几个小男孩,曾跟一个叫刘万明的老爷爷学了很多游戏,有两种玩法很有趣,至今不忘,现写出来。 ...
    林木成荫阅读 2,299评论 4 14