赞
踩
机器学习是一种人工智能(AI),它为计算机提供了学习的能力,而无需明确编程。机器学习侧重于计算机程序的开发,这些程序在暴露于新数据时可能会发生变化。在本文中,我们将看到机器学习的基础知识,以及使用python实现简单的机器学习算法。
Python社区开发了许多模块来帮助程序员实现机器学习。在本文中,我们将使用numpy,scipy和scikit-learn模块。我们可以使用cmd命令安装它们:
pip install numpy scipy scikit-learn
一个更好的选择是下载python的miniconda或anaconda软件包,这些软件包预先捆绑了这些软件包。按照此处给出的说明使用anaconda。
机器学习涉及使用给定数据集训练计算机,并使用该训练来预测给定新数据的属性。例如,我们可以通过喂养1000张猫的图像和1000张不是猫的图像来训练计算机,并且每次都告诉计算机图片是否是猫。然后,如果我们向计算机显示一个新图像,那么从上面的训练中,计算机应该能够判断这个新图像是否是猫。
训练和预测的过程涉及使用专门的算法。我们将训练数据提供给算法,算法使用该训练数据来预测新的测试数据。一种这样的算法是K-Nearest-Neighbor分类(KNN分类)。它接收测试数据,并从测试数据集中找到与该数据最近的k数据值。然后选择最大频率的邻居并将其属性作为预测结果。例如,如果训练集是:
PETAL_SIZE | FLOWER |
---|---|
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。
这是一个演示knn分类算法的python脚本。在这里,我们使用着名的虹膜花数据集来训练计算机,然后为计算机提供新的价值以对其进行预测。该数据集由来自三种鸢尾(Iris setosa,Iris virginica和Iris versicolor)中的每一种的50个样品组成。从每个样本测量四个特征:萼片和花瓣的长度和宽度,以厘米为单位。我们使用该数据集训练我们的程序,然后使用该训练来预测具有给定测量值的鸢尾花的种类。
请注意,此程序可能无法在Geeksforgeeks IDE上运行,但它可以在您的本地python解释器上轻松运行,前提是您已安装所需的库。
# Python program to demonstrate # KNN classification algorithm # on IRIS dataser 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: {}\n".format(prediction)) print("Predicted feature name: {}\n".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
###程序说明:
因此,我们看到了机器学习是如何工作的,并开发了一个基本程序来使用python中的scikit-learn模块来实现它。
注:本文系翻译
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。