Python 30 天 – 第 28 天 – 机器学习和数据科学 II
本文是 30 天 Python 挑战系列的一部分。您可以在此处找到本系列之前所有帖子的链接
今天我探索了Scikit-Learn库并创建了一个笔记本项目来回顾一些基础知识并尝试创建一个机器学习模型。Scikit-Learn 是一个庞大的库,需要大量的练习和探索才能掌握它。我按照一些教程和文章尝试构建一个简单的分类器模型,只是为了弄清楚它是如何工作的。这对我来说看起来有点吓人,但我决定在 Jupyter Notebook 中创建一个基本工作流程,以便在我决定深入研究 ML 和数据科学领域时将其用作参考。
Scikit-Learn 是一个流行的机器学习 Python 库。Scikit-Learn 可以处理提供给它的数据并创建机器学习模型来学习数据中的模式并使用其工具进行预测。
为什么是 Scikit-learn?
- 建立在 numpy 和 matplotlib 库之上
- 有大量的内置机器学习模型
- 许多评估机器学习模型的方法
- 易于理解且设计良好的 API
通常,机器学习可能会有点让人不知所措,因为它涉及复杂的算法和统计数据来分析数据。Scikit-learn 抽象了这种复杂性,使构建模型和训练模型变得容易,而无需了解太多数学和统计学知识。
这是我今天创建的笔记本。Github 存储库的链接在这里。
scikit-learn 库的基础知识
本笔记本涵盖了令人惊叹的 scikit-learn Python 库的一些基础知识。本笔记本中列出了该库的一些重要用例,可用作备忘单以供参考。
涵盖的一些主题是:
- 准备好数据
- 为特定问题选择合适的算法/估计器
- 拟合模型/算法以使用它对数据进行预测
- 评估模型
- 改进模型
- 保存加载训练好的模型
准备好数据
该项目使用的数据将是可从 https://www.kaggle.com/ronitf/heart-disease-uci 获得的心脏病数据集
import pandas as pd
import numpy as np
heart_disease = pd.read_csv('data/heart.csv')
heart_disease.head()
<div class="table-wrapper">
<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>age</th>
<th>sex</th>
<th>cp</th>
<th>trestbps</th>
<th>chol</th>
<th>fbs</th>
<th>restecg</th>
<th>thalach</th>
<th>exang</th>
<th>oldpeak</th>
<th>slope</th>
<th>ca</th>
<th>thal</th>
<th>target</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>63</td>
<td>1</td>
<td>3</td>
<td>145</td>
<td>233</td>
<td>1</td>
<td>0</td>
<td>150</td>
<td>0</td>
<td>2.3</td>
<td>0</td>
<td>0</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<th>1</th>
<td>37</td>
<td>1</td>
<td>2</td>
<td>130</td>
<td>250</td>
<td>0</td>
<td>1</td>
<td>187</td>
<td>0</td>
<td>3.5</td>
<td>0</td>
<td>0</td>
<td>2</td>
<td>1</td>
</tr>
<tr>
<th>2</th>
<td>41</td>
<td>0</td>
<td>1</td>
<td>130</td>
<td>204</td>
<td>0</td>
<td>0</td>
<td>172</td>
<td>0</td>
<td>1.4</td>
<td>2</td>
<td>0</td>
<td>2</td>
<td>1</td>
</tr>
<tr>
<th>3</th>
<td>56</td>
<td>1</td>
<td>1</td>
<td>120</td>
<td>236</td>
<td>0</td>
<td>1</td>
<td>178</td>
<td>0</td>
<td>0.8</td>
<td>2</td>
<td>0</td>
<td>2</td>
<td>1</td>
</tr>
<tr>
<th>4</th>
<td>57</td>
<td>0</td>
<td>0</td>
<td>120</td>
<td>354</td>
<td>0</td>
<td>1</td>
<td>163</td>
<td>1</td>
<td>0.6</td>
<td>2</td>
<td>0</td>
<td>2</td>
<td>1</td>
</tr>
</tbody>
</table>
</div>
目的是根据上述数据预测患者是否患有心脏病。目标列确定结果,其他列称为特征。
常见问题FAQ
- 程序仅供学习研究,请勿用于非法用途,不得违反国家法律,否则后果自负,一切法律责任与本站无关。
- 请仔细阅读以上条款再购买,拍下即代表同意条款并遵守约定,谢谢大家支持理解!