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

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

 介绍

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

[[418006]]

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

imbalanced-learn

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

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

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

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

  1. pip install imbalanced-learn 

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

  1. from sklearn.datasets import load_breast_cancer 
  2. import pandas as pddata = load_breast_cancer() 
  3. df = pd.DataFrame(data.data, columns=[data.feature_names]) 
  4. df[‘target’] = data[‘target’] 
  5. df.head() 

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

 下面看目标变量的分布。 

  1. df.target.value_counts()  
python中三个不常见但是非常有用的数据科学库

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

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

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

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

statsmodels

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

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

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

  1. from sklearn.datasets import load_boston 
  2. import pandas as pd 
  3. data = load_boston() 
  4. df = pd.DataFrame(data.data, columns=[data.feature_names]) 
  5. df[‘target’] = data[‘target’] 
  6. df.head()  
python中三个不常见但是非常有用的数据科学库

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

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

  1. pip install statsmodels 

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

  1. import statsmodels.api as sm 
  2. X = sm.add_constant(df.drop(columns=[‘target’])) # adding a constant 
  3. model = sm.OLS(df.target, X).fit() 
  4. predictions = model.predict(X) 
  5. print_model = model.summary() 
  6. print(print_model)   
python中三个不常见但是非常有用的数据科学库

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

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

missingno

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

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

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

  1. pip install missingno 

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

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

  1. import pandas as pd 
  2. import missingno as msno 
  3. df = pd.read_csv(‘Life Expectancy Data.csv’) 
  4. msno.matrix(df) 
python中三个不常见但是非常有用的数据科学库

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

总结

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

 

责任编辑:华轩 来源: 今日头条
相关推荐

2021-10-21 22:03:00

PythonNumpy函数

2010-07-30 09:07:12

PHP函数

2011-07-05 11:24:52

SQL语句索引

2009-03-24 14:23:59

PHP类库PHP开发PHP

2020-10-29 10:00:55

Python函数文件

2021-07-06 11:25:20

Chrome前端代码

2021-10-30 18:59:15

Python

2019-10-18 09:25:45

Python苹果公司算法

2022-06-27 19:01:04

Python应用程序数据

2012-04-17 09:44:08

JavaScript

2011-07-07 17:16:43

PHP

2017-08-02 13:32:18

编程Java程序片段

2023-02-19 15:22:22

React技巧

2016-12-14 19:19:19

Linuxgcc命令行

2016-12-14 20:53:04

Linuxgcc命令行

2012-05-25 14:20:08

JavaScript

2020-08-27 10:10:46

NodeJs 软件Express

2022-09-02 23:08:04

JavaScript技巧开发

2018-08-03 10:02:05

Linux命令

2023-06-13 15:15:02

JavaScript前端编程语言
点赞
收藏

51CTO技术栈公众号