Scikit学习–使用Python进行机器学习 二维码
73
在此文中,我们将讨论python中的scikit-learn。 在谈论Scikit learn之前,必须先了解机器学习的概念,并且必须知道如何将Python用于数据科学。 借助机器学习,您无需手动收集见解。 您只需要一个算法,机器就会为您完成剩下的工作! 这不令人兴奋吗? Scikit学习是我们可以使用Python实现机器学习的吸引力之一。 它是一个免费的机器学习库,其中包含用于数据分析和挖掘目的的简单有效的工具。 什么是机器学习? 机器学习是一种人工智能,可以让软件应用程序从数据中学习,并在无需人工干预的情况下更准确地预测结果。 但是那是怎么发生的呢? 为此,需要对机器进行一些数据训练,并基于此数据,它将检测模式以创建模型。 从数据中获取知识并提供有力见解的过程全都与机器学习有关。 请参考下图,以更好地了解其工作原理: 系统使用数据来学习算法,然后使用它来构建预测模型。 稍后,我们调整模型或使用反馈数据提高模型的准确性。 使用此反馈数据,我们可以调整模型并预测对新数据集的操作。 我们将讨论一种算法方法的用例,其中我们将训练和测试数据,这将帮助您更好地了解它是否适合您的特定问题。 Scikit Learn概述 Scikit learning是用于在Python中执行机器学习的库。 Scikit Learn是一个开放源代码库,已获得BSD许可,并且可以在各种情况下重用,鼓励学术和商业用途。 它在Python中提供了一系列有监督和无监督的学习算法。 Scikit学习包括流行的算法和库。 除此之外,它还包含以下软件包:
要实现Scikit learn,我们首先需要导入上述软件包。 您可以使用命令行下载这两个软件包,或者如果您使用的是PyCharm,则可以直接进行安装,方法与其他软件包相同。scikit-learn更多了解 接下来,必须以类似的方式导入Sklearn。 Scikit学习是基于SciPy(科学Python)构建的,必须先安装SciPy(科学Python),然后才能使用Scikit-learn。另外,安装Scipy和wheel软件包(如果不存在),您可以输入以下命令: pip install scipy 我已经下载并安装了它,如果有任何混淆,可以参考下面的屏幕截图。 导入上述库后,让我们更深入地了解Scikit learn的用法。 Scikit learning提供了示例数据集,例如iris和digits。 您可以导入数据集并使用它们。 之后,您必须导入SVM,它代表支持向量机。 SVM是机器学习的一种形式,用于分析数据。 让我们举个例子,我们将提取数字数据集,它将为我们对数字进行分类,例如-0 1 2 3 4 5 6 7 8 9.请参考以下代码:
输出
在这里,我们刚刚导入了库,SVM,数据集并打印了数据。 它是一长串数字数据,用于存储数据。 它可以访问可用于对数字样本进行分类的功能。 接下来,您还可以尝试其他一些操作,例如目标,图像等。请考虑以下示例:
输出
从上面可以看到,目标数字和数字图像被打印。 digits.target给出数字数据集的基本事实,即与每个数字图像相对应的数字。 接下来,数据始终是具有形状(n_samples,n_features)的2D数组,尽管原始数据可能具有不同的形状。 但是对于数字,每个原始样本都是形状为(8,8)的图像,可以使用digits.image进行访问。 学习与预测 接下来,在Scikit学习中,我们使用了数据集(10个可能的类的样本,数字从零到九),并且在给出图像时需要预测数字。 要预测类别,我们需要一个估计器,该估计器有助于预测看不见的样本所属的类别。scikit-learn更多了解。在Scikit学习中,我们有一个用于分类的估计器,它是一个实现fit(x,y)和predict(T)的python对象。 让我们考虑以下示例:
输出 1796 Prediction: [8] 在上面的示例中,我们首先找到了长度,并加载了1796个示例。 接下来,我们已将此数据用作学习数据,我们需要在其中测试最后一个元素和第一个否定元素。 另外,我们需要检查机器是否预测了正确的数据。 为此,我们使用了Matplotlib来显示数字图像。 因此,总而言之,您有数字数据,有了目标,就可以预测目标,因此很高兴! 真的很容易,不是吗? 您还可以使用图像形象化目标标签,只需参考以下代码即可:
输出 如您在上面的代码中看到的,我们已经使用“ zip”功能将图像和目标标签连接到列表中,然后将其保存到变量中,例如images_and_labels。 之后,我们在每个位置的2 x 4网格中索引了前八个元素。 之后,我们刚刚在Matplotlib的帮助下显示了图像,并将标题添加为“ training”。 用例-使用Logistic回归进行预测 问题陈述–一家汽车公司在市场上发布了新的SUV。他们希望使用以前有关SUV销量的数据来预测可能对此感兴趣的人群。 为此,让我们看一个数据集,其中有UserId,性别,年龄,估计薪水和购买的列。 这只是一个示例数据集。 一旦我们将数据导入pyCharm中,它看起来就会像这样。 现在让我们了解这些数据。 正如您在上面的数据集中看到的那样,我们具有ID,性别,年龄等类别。现在基于这些类别,我们将训练我们的机器并预测购买数量。 因此,在这里,我们有“年龄”,“预期工资”的自变量和“已购买”的因变量。 现在,我们将应用监督学习,即逻辑回归算法,以使用现有数据找出购买数量。 首先,让我们大致了解逻辑回归。scikit-learn更多了解 逻辑回归– 逻辑回归以二进制格式生成结果,该结果用于预测分类因变量的结果。 当因变量为二进制(即可用类别的数量为两个)时,使用最为广泛,例如,逻辑回归的通常输出为–
现在从代码开始,我们将首先导入这些库-Numpy,Matplotlib和Pandas。遵循以下步骤,很容易在Pycharm中导入pandas: Settings -> Add Package -> Pandas -> Install 之后,我们将通过以下方式导入数据集并分离因变量(购买的)和自变量(年龄,薪水):
下一步将是训练和测试数据。 一种常见的策略是将所有标记的数据分成训练和测试子集,通常以训练子集的70-80%和测试子集的20-30%的比例进行获取。 因此,我们使用cross_validation创建了训练和测试集。
我们还可以使用StandarScaler缩放输入值以获得更好的性能,如下所示:
现在,我们将创建我们的逻辑回归模型。scikit-learn更多了解
我们可以使用它来预测测试集的结果。
现在,我们可以检查有多少预测是准确的,有多少没有使用混淆矩阵。让我们将Y定义为正实例,将N定义为负实例。四个结果以2 * 2混淆矩阵表示,如下所示:
输出
接下来,基于我们的混淆矩阵,我们可以计算准确性。因此,在我们上面的示例中,准确性为: = TP + TN / FN + FP = 65+24 / 65 +3+ 8 + 24 =89% 我们已经手动完成了!现在让我们看看机器如何为我们计算出相同的值,因为我们有一个内置函数“ accuracy_score”,该函数可以计算精度并进行打印,如下所示:
输出 89.0 很棒!我们已经使用Scikit学习成功实现了逻辑回归,准确度为89%。 |