"学习不是偶然获得的,必须热心寻求并认真学习"-阿比盖尔·亚当斯(Abigail Adams)
![beecd2ae2bfdaf8520a5fb9bbc80a6e2.png](https://i-blog.csdnimg.cn/blog_migrate/fcdd2a1c238555218d7037b67d6d90eb.jpeg)
> Unsplash by Anas Alshanti
我的同事们提出了很多问题,例如" sci-kit learn 中最常用的一些功能是什么,我们可以学会尽快开始构建数据科学项目",这迫使我思考:" 阅读帕累托原理还是什么?"。
我不能告诉您在此类库中学习一些特定功能,因为每个功能都有其用例和重要性。
在本文中,我将讨论sci-kit learn 库的一些技巧,这些技巧在与任何数据相关的项目中工作时都非常有用。
这是我们今天要讨论的内容:
· 将test_train_split()函数与stratify参数一起使用。
· 哪里不使用values()函数。
· SimpleImputer()函数。
· 管道中的特征选择。
· 结合使用K折叠和StratifiedKFold。
· 使用AUC进行分类。
· 监视管道步骤的四种方法。
· CountVectorizer()和make_column_transformer()。
· 处理Joblib function()。
1.将test_train_split()函数与stratify参数一起使用。
我们不能在回归和分类任务中将此函数与相同的参数一起使用。
在分类问题中,我们希望预测一些离散值,对吧? 我们还将意识到,output属性可能具有类不平衡性。 因此,在执行train_test_split操作时,不一定要在训练数据和测试数据中保留其类别比例。
为此,我们使用:分层参数,如下图所示。
范例:
![2322ea2dd539866090f7c6f615dbbc5d.png](https://i-blog.csdnimg.cn/blog_migrate/55b13f450a395ac290c48c220070c93e.jpeg)
> Source: My image gallery
2.哪里不使用values()函数。
在将Series或任何DataFrame传递给sci-kit时,无需使用值函数,因为它知道如何访问基础的numpy数组。
范例:
![5ae7f3b4c6c5c360340379ee5c72f397.png](https://i-blog.csdnimg.cn/blog_migrate/28acce1afd4c83843308c76015e04591.jpeg)
> Source : My image gallery
3. SimpleImputer()函数
很多时候,在进行数据分析时,我们会遇到一些列或行会丢失标注为" nan"的标签。 为了处理此类问题,我们将nan值替换为column的平均值,并有时将其替换为最常用的单词。
对于所有这些任务,我们在sklearn中都有一个功能SimpleImput。
请参阅以下示例,以了解更多信息。
范例:
![0a86133d7f1b29d1634607faa60621af.png](https://i-blog.csdnimg.cn/blog_migrate/ec976cd5f3b7de51fd219e59da4aacd1.jpeg)
> Source: My image gallery
4.管道中的特征选择:
通过以下方法将特征选择添加到管道非常容易:
· 通过使用SelectPercentile函数来保持最高评分功能。
· 在预处理之后但在模型构建之前添加特征选择。
范例:
![9598c51f963a6d395247222361602fa5.png](https://i-blog.csdnimg.cn/blog_migrate/74deef55fd7518ba93bf6619533d5df6.jpeg)
> Source: My image gallery
5.将K-fold和StratifiedKFold与shuffle一起使用。
如果我们正在考虑使用交叉验证,并且我们的数据集不是按任意顺序排列,则可以使用改组获得更好的结果。 有关此处的改组的更多信息。
范例:
![63473b9caaa6fee59927233a27517643.png](https://i-blog.csdnimg.cn/blog_migrate/51bd2ac4ce80518c63948a234b59eba1.jpeg)
> Source: My image gallery
6.使用AUC进行分类
如果我们正在执行类别不平衡的二进制分类,则AUC可以成为一种有效的评估指标。
参见示例:
![a7443ed29d2966dcad86b2e6bd68dec2.png](https://i-blog.csdnimg.cn/blog_migrate/ede3e582eced9fc81032005861df8c42.jpeg)
> Source: My image gallery
6.监视管道步骤的四种方法。
有四种方法可以监视机器学习管道的各个步骤。 请参阅以下示例,以了解更多信息。
范例:
![a77f084dba4573dc1f108a4062eed502.png](https://i-blog.csdnimg.cn/blog_migrate/4ff289f2bb2cc53e5c0178abbca38887.jpeg)
> Source: My image gallery
8. CountVectorizer()和make_column_transformer()
如果我们要向量化两个文本列并一次将它们连接起来,请执行以下步骤。
范例:
![eb256748de92dd71a8ea8c4421613407.png](https://i-blog.csdnimg.cn/blog_migrate/891ac49a99dcc813390b38a5759e4332.jpeg)
> Source: My image gallery
9.处理Joblib function():
为了通过将我们的机器学习模型嵌入到任何实时Web应用程序中来部署它,或者为了保存模型供以后使用,我们使用sklearn中可用的joblib函数。
请参见以下示例:
![aa56f46c6f85f7ac692d256b933a87b3.png](https://i-blog.csdnimg.cn/blog_migrate/3131d27808411b8a69eaa3359d56887b.jpeg)
> Source: My image gallery
我们出发之前
这就是本文的全部内容。 我敢肯定,今天你们所有人都会学到sci-kit学习库的一些新功能。 我没有包括第十和其他内容,因为我将在下一篇文章中对其进行描述。
在此之前,我需要了解您对本文是否有用的答复。 请在下面的评论部分中做评论,并让我知道是否遗漏了一些东西,以便在下一篇文章中进行更正。
请务必跟随Kevin Markham先生,因为他经常发布此类提示和技巧。
谢谢。
(本文翻译自Shobhit Srivastava的文章《Tips and tricks of Sci-kit learn that will amaze you!》,参考:https://towardsdatascience.com/tips-and-tricks-of-sci-kit-learn-that-will-amaze-you-ce791431552e)