使用Python的机器学习简介

机器学习是一种人工智能(AI),它为计算机提供了无需显式编程即可学习的能力。机器学习关注的是计算机程序的开发,这些程序在接触到新数据时会发生变化。在本文中,我们将看到机器学习的基础知识,以及使用python实现一个简单的机器学习算法。

null

建立环境

Python社区开发了许多模块来帮助程序员实现机器学习。在本文中,我们将使用numpy、scipy和scikit学习模块。我们可以使用cmd命令安装它们:

pip install numpy scipy scikit-learn 

更好的选择是下载python的miniconda或anaconda软件包,这些软件包与这些软件包预先捆绑在一起。遵循给出的说明 在这里 使用水蟒。

机器学习概述

机器学习涉及使用给定数据集对计算机进行训练,并使用这种训练来预测给定新数据的属性。例如,我们可以训练一台计算机,给它输入1000张猫的图像和1000多张不是猫的图像,并每次告诉计算机一张图片是不是猫。然后,如果我们向计算机显示一个新图像,那么通过上述训练,计算机应该能够判断这个新图像是否是猫。 训练和预测的过程包括使用专门的算法。我们将训练数据提供给一个算法,该算法使用这些训练数据对新的测试数据进行预测。其中一种算法是 K-最近邻 分类(KNN分类)。它获取一个测试数据,并从测试数据集中找到与该数据最接近的k个数据值。然后选择最大频率的邻居并给出其属性作为预测结果。例如,如果训练集是:

花瓣大小 花型
1. A.
2. B
1. A.
2. B
3. C
4. D
3. C
2. B
5. A.

现在我们要预测2.5厘米大小花瓣的花型。所以如果我们决定邻域的数量(K)=3,我们会看到2.5的3个最近邻分别是1、2和3。它们的频率分别为2、3和2。因此,最大频率的邻居是2,对应的花型是b。因此,对于大小为2.5的花瓣,预测将是花型b。

在虹膜数据集上用Python实现KNN分类算法

下面是一个演示knn分类算法的python脚本。在这里,我们使用著名的虹膜花数据集来训练计算机,然后给计算机一个新的值来进行预测。该数据集由三种鸢尾(刚毛鸢尾、弗吉尼亚鸢尾和花色鸢尾)各50个样本组成。每个样本有四个特征:萼片和花瓣的长度和宽度,单位为厘米。 我们使用这个数据集来训练我们的程序,然后使用这个训练来预测具有给定测量值的鸢尾花的种类。 请注意,这个程序可能不会在Geeksforgeks IDE上运行,但它可以在本地python解释器上轻松运行,前提是您已经安装了所需的库。

python

# Python program to demonstrate
# KNN classification algorithm
# on IRIS dataset
from sklearn.datasets import load_iris
from sklearn.neighbors import KNeighborsClassifier
import numpy as np
from sklearn.model_selection import train_test_split
iris_dataset = load_iris()
X_train, X_test, y_train, y_test = train_test_split(iris_dataset[ "data" ], iris_dataset[ "target" ], random_state = 0 )
kn = KNeighborsClassifier(n_neighbors = 1 )
kn.fit(X_train, y_train)
x_new = np.array([[ 5 , 2.9 , 1 , 0.2 ]])
prediction = kn.predict(x_new)
print ( "Predicted target value: {}" . format (prediction))
print ( "Predicted feature name: {}" . format
(iris_dataset[ "target_names" ][prediction]))
print ( "Test score: {:.2f}" . format (kn.score(X_test, y_test)))


输出:

Predicted target name: [0]Predicted feature name: ['setosa']Test score: 0.97

节目说明:

训练数据集

  • 第一行导入已在sklearn模块中预定义的iris数据集。Iris数据集基本上是一个表格,其中包含各种鸢尾花的信息。
  • 我们从sklearn和numpy模块中导入Kneighbors分类器算法,并训练_test_split类用于本程序。
  • 然后我们将load_iris()方法封装在iris_数据集变量中。进一步,我们使用训练-测试-分割方法将数据集划分为训练数据和测试数据。变量中的X前缀表示特征值(如花瓣长度等),y前缀表示目标值(如0表示刚毛,1表示维吉尼亚,2表示花色)。
  • 该方法将数据集按75:25的比例随机分成训练数据和测试数据。然后我们将KNeighborsClassifier方法封装在kn变量中,同时保持k=1。该方法包含K近邻算法。
  • 在下一行中,我们将训练数据拟合到这个算法中,这样计算机就可以使用这些数据进行训练。现在培训部分已经完成。

测试数据集

  • 现在我们有了一种花的尺寸,在一个叫做x_new的小数组中,我们想要预测这种花的种类。我们使用预测方法来实现这一点,该方法将该数组作为输入,并将预测的目标值作为输出。
  • 所以预测的目标值是0,代表setosa。所以这种花很有可能是刚毛植物。
  • 最后,我们找到了测试分数,它是发现正确的预测数与总预测数的比率。我们使用计分法来实现这一点,计分法基本上将测试集的实际值与预测值进行比较。

因此,我们了解了机器学习的工作原理,并开发了一个基本程序,使用python中的scikit学习模块来实现它。 本文由 Tkkhaarree .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 写极客。组织 或者把你的文章寄去评论-team@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享