数据结构论坛

首页 » 分类 » 常识 » 教你学Python47机器学习14天入
TUhjnbcbe - 2025/2/9 16:41:00

Python是应用机器学习发展最快的平台之一。

DaveYoung的Python机器学习迷你课程

可帮助您入门并提高使用Python进行机器学习的效率:

第1天:下载并安装Python和SciPy生态系统。第2天:深入了解Python,NumPy,Matplotlib和Pandas。第3天:从CSV加载数据。第4天:了解具有描述性统计信息的数据。第5天:通过可视化了解数据。第6天:通过预处理数据准备建模。第7天:使用重采样方法进行算法评估。第8天:算法评估指标。第9天:现场检查算法。第10天:模型比较和选择。第11天:通过算法调整提高准确性。第12天:利用集合预测提高准确性。第13天:完成并保存模型。第14天:HelloWorld端到端项目。

第1天:下载并安装Python和SciPy

您必须先访问平台才能开始使用Python进行机器学习。

今天的课程很简单,您必须在计算机上下载并安装Python3.6平台。

访问Python主页并下载适用于您的操作系统(Linux,OSX或Windows)的Python。在计算机上安装Python。您可能需要使用特定于平台的软件包管理器,例如OSX上的macports或RedHatLinux上的yum。

您还需要安装SciPy平台和scikit-learn库。我建议使用与安装Python相同的方法。

您可以使用Anaconda一次安装所有内容(更加容易)。推荐给初学者。

通过在命令行中键入“python”来首次启动Python。

使用以下代码检查所有您需要的版本:

如何使用Anaconda设置用于机器学习和深度学习的Python环境第2天:深入了解Python,NumPy,Matplotlib和Pandas。

您需要能够读写基本的Python脚本。

作为开发人员,您可以很快选择新的编程语言。Python区分大小写,使用哈希(#)进行注释,并使用空格指示代码块(空格很重要)。

今天的任务是在Python交互环境中练习Python编程语言的基本语法和重要的SciPy数据结构。

练习作业,在Python中使用列表和流程控制。练习使用NumPy数组。练习在Matplotlib中创建简单图。练习使用PandasSeries和DataFrames。例如,以下是创建PandasDataFrame的简单示例。

第3天:从CSV加载数据

机器学习算法需要数据。您可以从CSV文件加载自己的数据,但是当您开始使用Python进行机器学习时,应该在标准机器学习数据集上进行练习。

今天课程的任务是让您轻松地将数据加载到Python中并查找和加载标准的机器学习数据集。

您可以在UCI机器学习存储库上下载和练习许多CSV格式的出色标准机器学习数据集。

练习使用标准库中的CSV.reader()将CSV文件加载到Python中。练习使用NumPy和numpy.loadtxt()函数加载CSV文件。练习使用Pandas和pandas.read_csv()函数加载CSV文件。为了让您入门,下面是一个片段,该片段将直接从UCI机器学习存储库中使用Pandas来加载PimaIndians糖尿病数据集。

到现在为止做得很好!等一下

到目前为止有什么问题吗?在评论中提问。

第4天:使用描述性统计数据理解数据

将数据加载到Python之后,您需要能够理解它。

您越了解数据,可以构建的模型就越精确。了解数据的第一步是使用描述性统计数据。

今天,您的课程是学习如何使用描述性统计信息来理解您的数据。我建议使用PandasDataFrame上提供的帮助程序功能。

使用head()函数了解您的数据以查看前几行。使用shape属性查看数据的维度。使用dtypes属性查看每个属性的数据类型。使用describe()函数查看数据的分布。使用corr()函数计算变量之间的成对相关性。以下示例加载了皮马印第安人糖尿病发病数据集,并总结了每个属性的分布。

试试看!

第5天:通过可视化了解数据

从昨天的课程继续,您必须花一些时间更好地了解您的数据。

增进对数据理解的第二种方法是使用数据可视化技术(例如,绘图)。

今天,您的课程是学习如何在Python中使用绘图来单独理解属性及其相互作用。再次,我建议使用PandasDataFrame上提供的帮助程序功能。

使用hist()函数创建每个属性的直方图。使用plot(kind=box)函数创建每个属性的箱须图。使用pandas.scatter_matrix()函数创建所有属性的成对散点图。例如,下面的代码片段将加载糖尿病数据集并创建数据集的散点图矩阵。

样本散点图矩阵

第6天:通过预处理数据准备建模

您的原始数据可能未设置为最佳建模形式。

有时您需要对数据进行预处理,以便最好地将问题的固有结构呈现给建模算法。在今天的课程中,您将使用scikit-learn提供的预处理功能。

scikit-learn库提供了两个用于转换数据的标准习语。每种变换在不同的情况下都非常有用:拟合和多重变换以及组合的拟合与变换。

您可以使用多种技术来准备数据以进行建模。例如,尝试以下一些方法

使用比例和中心选项将数值数据标准化(例如,平均值为0,标准偏差为1)。使用范围选项将数值数据标准化(例如,范围为0-1)。探索更高级的功能工程,例如Binarizing。例如,下面的代码段加载了PimaIndians糖尿病发病数据集,计算了标准化数据所需的参数,然后创建了输入数据的标准化副本。

第7天:使用重采样方法进行算法评估

用于训练机器学习算法的数据集称为训练数据集。用于训练算法的数据集不能用于为您提供有关新数据的模型准确性的可靠估计。这是一个大问题,因为创建模型的整个思路是对新数据进行预测。

您可以使用称为重采样方法的统计方法将训练数据集划分为子集,一些方法用于训练模型,而另一些则被保留,并用于估计看不见的数据的模型准确性。

今天课程的目标是练习使用scikit-learn中可用的不同重采样方法,例如:

将数据集分为训练集和测试集。使用k倍交叉验证来估计算法的准确性。使用留一法交叉验证来估计算法的准确性。下面的代码段使用scikit-learn通过10倍交叉验证来评估PimaIndians糖尿病发作的Logistic回归算法的准确性。

您获得了什么精度?在评论中让我知道。

您是否意识到这是中间点?做得好!

第8天:算法评估指标

您可以使用许多不同的指标来评估数据集上机器学习算法的技能。

您可以通过cross_validation.cross_val_score()函数在scikit-learn中指定用于测试工具的度量,默认值可用于回归和分类问题。今天课程的目标是练习使用scikit-learn软件包中可用的不同算法性能指标。

在分类问题上练习使用“准确性”和“LogLoss”度量。练习生成混淆矩阵和分类报告。在回归问题上练习使用RMSE和RSquared指标。下面的代码段演示了根据PimaIndians糖尿病发病数据计算LogLoss指标。

您得到了什么日志损失?在评论中让我知道。

第9天:抽查算法

您可能无法事先知道哪种算法对您的数据效果最好。

您必须使用反复试验的过程来发现它。我称之为现场检查算法。scikit-learn库提供了许多机器学习算法和工具的接口,以比较这些算法的估计准确性。

在本课程中,您必须练习抽查不同的机器学习算法。

对数据集进行抽查线性算法(例如线性回归,逻辑回归和线性判别分析)。抽查数据集上的一些非线性算法(例如KNN,SVM和CART)。抽查数据集上一些复杂的集成算法(例如随机森林和随机梯度增强)。例如,下面的代码片段对BostonHousePrice数据集上的K最近邻居算法进行了抽查。

第10天:模型比较和选择

既然您知道了如何在数据集中检查机器学习算法,那么您需要知道如何比较不同算法的估计性能并选择最佳模型。

在今天的课程中,您将练习比较Python和scikit-learn中的机器学习算法的准确性。

在数据集上相互比较线性算法。在数据集上相互比较非线性算法。相互比较同一算法的不同配置。创建比较算法的结果图。下面的示例在皮马印第安人发病的糖尿病数据集中将Logistic回归和线性判别分析进行了比较。

哪种算法效果更好?你能做得更好吗?在评论中让我知道。

第11天:通过算法调整提高准确性

一旦找到一种或两种在数据集上表现良好的算法,您可能希望提高这些模型的性能。

提高算法性能的一种方法是将其参数调整为特定的数据集。

scikit-learn库提供了两种方法来搜索机器学习算法的参数组合。在今天的课程中,您的目标是练习每个。

使用您指定的网格搜索来调整算法的参数。使用随机搜索调整算法的参数。下面使用的代码段是一个示例,该示例使用网格搜索在PimaIndians糖尿病发病数据集上的Ridge回归算法。

哪些参数取得最佳效果?你能做得更好吗?在评论中让我知道。

第12天:利用集合预测提高准确性

您可以提高模型性能的另一种方法是组合来自多个模型的预测。

一些模型提供了内置的此功能,例如用于装袋的随机森林和用于增强的随机梯度增强。可以使用另一种称为投票的合奏将来自多个不同模型的预测组合在一起。

在今天的课程中,您将练习使用合奏方法。

使用随机森林和多余树木算法练习装袋。使用梯度增强机和AdaBoost算法练习增强合奏。通过将来自多个模型的预测组合在一起来练习投票合奏。下面的代码段演示了如何在PimaIndians糖尿病发病数据集上使用随机森林算法(袋装决策树集合)。

你能设计出更好的合奏吗?在评论中让我知道。

第13天:完成并保存模型

找到有关机器学习问题的良好模型后,您需要完成该模型。

在今天的课程中,您将练习与完成模型有关的任务。

练习使用模型对新数据(在训练和测试过程中看不到的数据)进行预测。

练习将经过训练的模型保存到文件中,然后再次加载。

例如,下面的代码片段显示了如何创建Logistic回归模型,将其保存到文件中,之后再加载它以及对看不见的数据进行预测。

第14天:HelloWorld端到端项目

您现在知道如何完成预测建模机器学习问题的每个任务。

在今天的课程中,您需要练习将各个部分组合在一起,并通过端到端的标准机器学习数据集进行操作。

端到端遍历虹膜数据集(机器学习的世界)

这包括以下步骤:

使用描述性统计数据和可视化了解您的数据。预处理数据以最好地揭示问题的结构。使用您自己的测试工具抽查多种算法。使用算法参数调整来改善结果。使用集成方法改善结果。最终确定模型以备将来使用。慢慢进行,并记录结果。

不要轻描淡写,您在短时间内就取得了长足的进步。

这只是您使用Python进行机器学习的起点。继续练习和发展自己的技能。

喜欢点下

1
查看完整版本: 教你学Python47机器学习14天入