python中三个不常见但是非常有用的数据科学库

介绍

如果你从事数据科学研究有一段时间了,那么pandas, scikit-learn seaborn和matplotlib这些库你都应该非常的熟悉。

如果您想要扩展您的视野,学习一些更少见但同样有用的库。在本文中,我将向您展示一些不太为人所知的但是却非常好用的python库。

imbalanced-learn

如果你过去一直在构建一些有监督的机器学习模型,你就会知道目标变量中的类别不平衡可能是一个大问题。这是因为在少数类中没有足够的例子来让算法学习模式。

一个解决方案是创建一些合成样本,通过使用例如SMOTE(合成少数群体过采样技术)来增加少数群体类的学习。

幸运的是,imbalance-learn库将帮助您在任何不平衡数据集上实现这一技术。

您可以通过在终端上执行以下命令来安装imbalance-learn库。

pip install imbalanced-learn

为了演示如何平衡数据集,我们将使用sklearn下载乳腺癌数据集。

from sklearn.datasets import load_breast_cancer
import pandas as pddata = load_breast_cancer()
df = pd.DataFrame(data.data, columns=[data.feature_names])
df['target’] = data['target’]
df.head()

下面看目标变量的分布。

df.target.value_counts()

数据集确实是均匀分布的,尽管它不是非常不平衡:我们有357名乳腺癌患者和212名健康患者。

我们看看能不能让它更平衡一点。我们将使用SMOTE对0类进行过采样。

from imblearn.over_sampling import SMOTE
oversample = SMOTE()
X_oversample, y_oversample = oversample.fit_resample(data.data, data.target)
pd.Series(y_oversample).value_counts()

如你所见,数据集现在已经完全平衡了。每个类有357个实例。作为我们操作的结果,创建了145个人工实例。

statsmodels

这是另一个很棒的库,专门用来建立统计模型。我通常用它来拟合线性回归

它真的很容易使用,你可以马上得到很多关于模型的信息,比如R2 BIC、AIC、置信度和它们相应的p值。当使用scikit-learn的线性回归时,这些信息更难以获取。

让我们看看如何使用这个库来适应线性回归模型。让我们先下载一个波士顿房价数据集。

from sklearn.datasets import load_boston
import pandas as pd
data = load_boston()
df = pd.DataFrame(data.data, columns=[data.feature_names])
df['target’] = data['target’]
df.head()

上面是我们的数据集的前五行。有13个特征,我们可以看到一个目标变量是一个连续的数字。这是一个完美的回归数据集。

现在让我们使用pip安装统计模型库

pip install statsmodels

现在,我们可以使用以下代码尝试将线性回归模型与我们的数据相匹配。

import statsmodels.api as sm
X = sm.add_constant(df.drop(columns=['target’])) # adding a constant
model = sm.OLS(df.target, X).fit()
predictions = model.predict(X)
print_model = model.summary()
print(print_model)

我们刚刚将一个线性回归模型拟合到这个数据集上,并打印出了该模型的详细摘要。您可以很容易地阅读所有重要信息,在必要时重新调整功能,并重新运行模型。

我发现与scikit-learn版本相比,使用statsmodels进行回归更容易,因为我需要的所有信息都在这个简短的报告中。

missingno

missingno是另一个有用的库。它可以帮助您可视化缺失值的分布。

您可能已经习惯使用isnull()函数检查pandas中的缺失值。这可以帮助您获取每列缺失值的数量,但不能帮助您确定它们的位置。这正是missingo变得有用的时候。

你可以使用下面的命令安装库:

pip install missingno

现在,让我们演示如何使用missingo来可视化缺失的数据。为了做到这一点,我们将从Kaggle下载预期寿命数据集。

然后可以使用read_csv()函数加载数据集,然后从missingno库调用matrix()函数。

import pandas as pd
import missingno as msno
df = pd.read_csv('Life Expectancy Data.csv’)
msno.matrix(df)

可以看到缺失值的位置。如果怀疑丢失的值位于某个特定位置或遵循某个特定模式,那么它将非常有用。

总结

以上三个库非常的有用,通过使用它们可以简化我们的操作,提高我们的工作效率。

作者:Magdalena Konkiewicz

(0)

相关推荐

  • 这招可以让Pandas 数据帧处理速度提高400倍!

    数据处理是数据科学模型开发流程的重要组成部分之一.数据科学家需要花费80%的时间准备数据集以使其适合建模.有时,对大型数据集执行数据整理和探索变得繁琐的工作,只有等待很长时间才能完成计算,或者转移到某 ...

  • (2条消息) 数据可视化技术:python数据可视化工具库汇总(共21个)

    Python数据可视化库 在数据分析中最好展示数据的方式就是形象地绘制对应的图像,让人能够更好地理解数据.什么样的数据.什么样的场景用什么样的图表都是有一定的规定的.(这个以后写一篇博客来记录一下.当 ...

  • Prophet: 时间序列预测库

    prophet是facebook开源的python预测库,该库的api设计与sklearn很像,也是分为fit方法和predict方法. prophet库可以帮助我们进行 Saturating For ...

  • Python之sklearn2pmml:sklearn2pmml库函数的简介、安装、使用方法之详细攻略

    Python之sklearn2pmml:sklearn2pmml库函数的简介.安装.使用方法之详细攻略 sklearn2pmml库函数的简介 sklearn2pmml是用于将Scikit学习管道转换为 ...

  • python用支持向量机回归(SVR)模型分析用电量预测电力消费

    原文链接:http://tecdat.cn/?p=23921 本文描述了训练支持向量回归模型的过程,该模型用于预测基于几个天气变量.一天中的某个小时.以及这一天是周末/假日/在家工作日还是普通工作日的 ...

  • 一键数据分析&自动化特征工程!

    创造新的特征是一件十分困难的事情,需要丰富的专业知识和大量的时间.机器学习应用的本质基本上就是特征工程.--Andrew Ng 业内常说数据决定了模型效果上限,而机器学习算法是通过数据特征做出预测的, ...

  • 中文数据可视化你需要知道的一个库

    最近在知乎上看到要想用python做数据分析,最好有实用场景,而最适合长期学习的领域之一就是python量化金融. 因为会有无穷尽的知识等着你去学,有一个说法很生动.在别的领域的理论,只需要3%的理论 ...

  • datatable:比pandas更快的GB量级的库

    虽然pandas是数据分析.机器学习等必备利器,但现在流行的机器学习应用训练模型动辄需要GB级别的数据,很多时候pandas无法快速读取大数据文件或者进行高效运算,甚至可能存在内存溢出等情况. 如果是 ...

  • Python的统计库-statsmodels

    Soory!大邓前段时间忙开题,就一直没怎么更新文章.以后要进入写论文阶段,要用到统计分析之类的东西.这方面大邓比较弱,估计得找同学帮着分析. 谷歌了下发现Python也有统计分析的库-statsmo ...

  • pandas选取特定行和列

    2019-05-23 21:52:13 luguanyou 码龄3年 1.选取指定行的某一列(根据标题)的内容 ​df.loc[i, "high"] 2.数据由pandas读取 d ...