从零开始机器学习 第1篇 一个感知机的实现

0. 训练数据集:Iris dataset (鸢尾花数据集),获取网址https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data

如下图所示,鸢尾花数据集中每行数据前四列为特征值分别是花瓣长/宽、花萼长/宽,鸢尾花分三类:Setosa,Versicolor,Virginica

可以用如下示例代码保存数据集并显示最后5行

1 import pandas as pd
2 df = pd.read_csv(‘https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data‘, header=None)
3 df.tail()

通过对数据集中的鸢尾花四个特征值,对数据集分类,确定属于哪一类的鸢尾花,这里选取前100个数据分析,示例代码如下:

 1 import matplotlib.pyplot as plt
 2 import numpy as np
 3 import pandas as pd
 4
 5 df = pd.read_csv(‘https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data‘, header=None)
 6  7
 8 # select setosa and versicolor
 9 y = df.iloc[0:100, 4].values
10 y = np.where(y == ‘Iris-setosa‘, -1, 1)
11
12 # extract sepal length and petal length
13 X = df.iloc[0:100, [0, 2]].values
14
15 # plot data
16 plt.scatter(X[:50, 0], X[:50, 1],
17             color=‘red‘, marker=‘o‘, label=‘setosa‘)
18 plt.scatter(X[50:100, 0], X[50:100, 1],
19             color=‘blue‘, marker=‘x‘, label=‘versicolor‘)
20
21 plt.xlabel(‘sepal length [cm]‘)
22 plt.ylabel(‘petal length [cm]‘)
23 plt.legend(loc=‘upper left‘)
24
25 plt.tight_layout()
26
27 plt.show()

输出结果如下:

通过对四个特征中两个(花瓣长,花萼长)的统计,可以看到蓝色和红色有了明显的界限,实现了分类。

时间: 2024-10-22 12:39:34

从零开始机器学习 第1篇 一个感知机的实现的相关文章

从零开始学Sketch——进阶篇

本文转自 http://www.jianshu.com/p/ff70b5f35c8f 从零开始学Sketch——进阶篇 Sketch是一款矢量绘图应用,而矢量绘图无疑是目前进行网页.图标以及界面设计的最好方式. 在初识了Sketch的界面布局和基础工具之后,我们就可以开始进入高阶的Sketch工具篇学习了.这篇文章主要会涉及Sketch模板.插件的使用,以及Sketch在具体使用过程中的一些技巧分享. 如果你曾接触过PS.AI.Axure等软件,那么接下来的内容你应该不会陌生,因为所有的设计软件

从零开始学Sketch——进阶篇-b

从零开始学Sketch——进阶篇 Sketch是一款矢量绘图应用,而矢量绘图无疑是目前进行网页.图标以及界面设计的最好方式. 在初识了Sketch的界面布局和基础工具之后,我们就可以开始进入高阶的Sketch工具篇学习了.这篇文章主要会涉及Sketch模板.插件的使用,以及Sketch在具体使用过程中的一些技巧分享. 如果你曾接触过PS.AI.Axure等软件,那么接下来的内容你应该不会陌生,因为所有的设计软件学习的路径都是相似的,都是从认识基本功能框架到外部资源整合运用,最终形成个人风格的一个

机器学习之理论篇—线性模型

机器学习之理论篇-线性模型 2016-05-02 雷厉风行 机器学习与大数据算法 线性模型是机器学习中的最基本模型,其形式简单.易于建模.线性回归模型虽然简单,但却非常的实用,许多非线性模型也都是建立在线性模型的基础之上的. 线性模型定义为由n个属性x=(x1,x2-xn),其中xi为x在第i个属性上的取值,线性模型通过这些属性的线性组合来建立预测函数: f(x)=β0+β1X1+β2X2+-βnXn 写成向量形式为:f(x)=βX 因为估计我们想让f(x)尽可能的接近其真实值yi,所以求β向量

从零开始做运营进阶篇 PDF

<从零开始做运营进阶篇> PDF 只需一元 链接:https://pan.baidu.com/s/1ewmI3scRoUaGWQK0mT5wdw 密码:5as8 原文地址:https://www.cnblogs.com/luoshuifusheng/p/9305166.html

秒杀多线程第四篇 一个经典的多线程同步问题

上一篇<秒杀多线程第三篇原子操作 Interlocked系列函数>中介绍了原子操作在多进程中的作用,如今来个复杂点的.这个问题涉及到线程的同步和相互排斥,是一道很有代表性的多线程同步问题,假设能将这个问题搞清楚,那么对多线程同步也就打下了良好的基础. 程序描写叙述: 主线程启动10个子线程并将表示子线程序号的变量地址作为參数传递给子线程.子线程接收參数 -> sleep(50) -> 全局变量++ -> sleep(0) -> 输出參数和全局变量. 要求: 1.子线程输

机器学习之Javascript篇: 近邻(k-nearest-neighbor) 算法介绍

原文:http://burakkanber.com/blog/machine-learning-in-js-k-nearest-neighbor-part-1/ 翻译:王维强 我的目的是使用一门通用语言来教授机器学习,内容涵盖基础概念与高级应用.Javascript是一个非常好的选择,最明显的优点就是对运行环境没有特殊要求.另外,因为该语言缺乏与机器学习相关的类库,也能迫使我们从基础编码写起. 先看一个实例. 今天我们将要开始近邻(k-nearest-neighbor)算法的学习,该算法在文章中

机器学习之Javascript篇::遗传算法介绍

作者:Burak Kanber 翻译:王维强 原文:http://burakkanber.com/blog/machine-learning-in-other-languages-introduction/ 遗传算法应该是我接触到的机器学习算法中的最后一个,但是我喜欢把它作为这个系列文章的开始,因为这个算法非常适合介绍“价值函数”或称“误差函数”,还有就是局部和全局最优概念,二者都是机器学习中的重要概念. 遗传算法的发明受自然界和进化论的启发,这对我来说非常酷.这并不奇怪,即使是人工神经网络(N

转--秒杀多线程第四篇 一个经典的多线程同步问题

上一篇<秒杀多线程第三篇原子操作 Interlocked系列函数>中介绍了原子操作在多进程中的作用,现在来个复杂点的.这个问题涉及到线程的同步和互斥,是一道非常有代表性的多线程同步问题,如果能将这个问题搞清楚,那么对多线程同步也就打下了良好的基础. 程序描述: 主线程启动10个子线程并将表示子线程序号的变量地址作为参数传递给子线程.子线程接收参数 -> sleep(50) -> 全局变量++ -> sleep(0) -> 输出参数和全局变量. 要求: 1.子线程输出的线

斯坦福CS229机器学习课程笔记三:感知机、Softmax回归

为了给课程的前四讲画上一个句号,这里补充两个前四讲中Andrew大神提到过的模型. The perceptron learning algorithm 感知机 模型:从模型上来看感知机与逻辑回归十分相似,只不过逻辑回归的g函数是逻辑函数(又称sigmoid函数),它是一条从y值0到1的连续曲线.当z→∞,g(z)→1:当z → −∞,g(z)→0.g(z) = 1/(1+e-z)而感知机的g函数是分段函数,只输出0和1.虽然和逻辑回归形式上相近,但是很难为感知机的预测加上概率解释,也很难说感知机