资讯专栏INFORMATION COLUMN

机器学习系统第二章代码详解

crossoverJie / 1111人阅读

摘要:指的是四个参数的摆列组合画一个大图包含若干个小图,第一个参数代表行数,第二个参数代表列数,带三个参数代表每个图的用于创造元组,然后给,,遍历指的是形状,指的是颜色选取参数和花的样子进行绘图轴标签轴的长度范围存储图像返回的是一坨和之前选择出来

figure1.py
pythonimport numpy as np
from sklearn.datasets import load_iris
from matplotlib import pyplot as plt

data = load_iris()
features = data["data"]
feature_names = data["feature_names"]
target = data["target"]

pairs = [(0,1),(0,2),(0,3),(1,2),(1,3),(2,3)] #指的是四个参数的摆列组合
for i,(p0,p1) in enumerate(pairs):
    plt.subplot(2,3,i+1) #画一个大图包含若干个小图,第一个参数代表行数,第二个参数代表列数,带三个参数代表每个图的id
    for t,marker,c in zip(range(3),">ox","rgb"): #zip用于创造元组,然后给t,marker,c遍历
         plt.scatter(features[target == t,p0], features[target == t,p1], marker=marker, c=c) #marker指的是形状,c指的是颜色 选取参数和花的样子进行绘图
    plt.xlabel(feature_names[p0]) #x轴标签
    plt.ylabel(feature_names[p1])
    plt.xticks([]) #x轴的长度范围
    plt.yticks([])
plt.savefig("../1400_02_01.png") #存储图像
figure2.py
pythonCOLOUR_FIGURE = False

from matplotlib import pyplot as plt
from sklearn.datasets import load_iris
data = load_iris()
features = data["data"]
feature_names = data["feature_names"]
species = data["target_names"][data["target"]]

setosa = (species == "setosa") #返回的是一坨true和false
features = features[~setosa]
species = species[~setosa]
virginica = species == "virginica"

t = 1.75 #之前选择出来的阀值用于区分
p0,p1 = 3,2 #四个参数中的3和2这两个参数

if COLOUR_FIGURE:
    area1c = (1.,.8,.8)
    area2c = (.8,.8,1.)
else:
    area1c = (1.,1,1)
    area2c = (.7,.7,.7)

x0,x1 =[features[:,p0].min()*.9,features[:,p0].max()*1.1] 
#乘以0.9 和 1.1 的目的在于让坐标轴比实际的数据大一点
y0,y1 =[features[:,p1].min()*.9,features[:,p1].max()*1.1]

plt.fill_between([t,x1],[y0,y0],[y1,y1],color=area2c)
plt.fill_between([x0,t],[y0,y0],[y1,y1],color=area1c)
#fill_between的后面两个坐标参数y1和y2不太好理解,大概指的是填充的y1是下界,y2是上界,这里是一条直线来表示的其它的图片可以是sin和cos之类的玩意
plt.plot([t,t],[y0,y1],"k--",lw=2)
plt.plot([t-.1,t-.1],[y0,y1],"k:",lw=2)
#这两行代码的作用是画两条分界线用的
plt.scatter(features[virginica,p0], features[virginica,p1], c="b", marker="o")
plt.scatter(features[~virginica,p0], features[~virginica,p1], c="r", marker="x")
plt.ylim(y0,y1)
plt.xlim(x0,x1)
plt.xlabel(feature_names[p0])
plt.ylabel(feature_names[p1])
plt.savefig("../1400_02_02.png")

未完待续

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/18088.html

相关文章

  • AI学习路线

    摘要:针对公司样本不足,采用小样本技术和深度学习技术结合,是项目落地的解决方案。深度学习作为当前机器学习领域最热门的技术之一,已经在图像处理领域获得了应用,并且展现出巨大的前景。旨在帮助同学们快速上手如何使用库来完整机器学习案例。 阶段一、人工智能基础 - 高等数学必知必会 本阶段主要从数据分析、概率论和线性代数及矩阵和凸优化这四大块讲解基础,旨在训练大家逻辑能力,分析能力。拥有良好的数学基...

    xuweijian 评论0 收藏0
  • 慕课网_《Java定时任务调度工具详解之Timer篇》学习总结

    时间:2017年05月24日星期三说明:本文部分内容均来自慕课网。@慕课网:http://www.imooc.com教学示例源码:无个人学习源码:https://github.com/zccodere/s... 第一章:课程介绍 1-1 课程介绍 什么是定时任务调度 基于给定的时间点,给定的时间间隔或者给定的执行次数自动执行的任务 在Java中的定时调度工具 Timer:小弟,能实现日常60%的定...

    wind5o 评论0 收藏0
  • 详解区块链——从本质到实现原理

    摘要:区块链技术比传统互联网技术好在哪里它的实现原理优是什么呢笔者希望通过本文,解答大家心中的疑问。也就是说区块链记账机器完成记账功能的基本原理是状态机。总结区块链技术的本质是通过公开的加密的不可篡改的技术手段,为解决多方信任问题提供了一个方案。 随着比特币、以太坊等数字货币的暴涨,数字货币的底层技术,区块链技术,开始进入大众的视野。姚劲波说:区块链有可能和互联网一样伟大。区块链技术比传统互...

    thursday 评论0 收藏0
  • 机器学习之One-Hot Encoding详解

    摘要:例如自然状态码为独热编码为可以这样理解,对于每一个特征,如果它有个可能值,那么经过独热编码后,就变成了个二元特征。 看到One-Hot-Encoding发现网上大多数说明都是来自于同一个例子,最后结果感觉出的好突兀,因此这里总结一下。 很多机器学习任务中,特征并不总是连续值,有可能是分类值。 考虑以下三个特征: [male, female] [from Europe, from US...

    keithxiaoy 评论0 收藏0
  • 我是如何零基础自学转行人工智能的(附十问十答)

    摘要:我的决定是学人工智能,当时对这个比较感兴趣。从机器学习学到深度学习再学回机器学习。面试,成功地去公司从事机器学习深度学习方面的基础工作。这个系列不仅仅以学习为目的,目的是为了达到机器学习的工作入门标准。 每个字都是经验所得,都是站在一个零基础的人的角度写的,纯手打+网上优秀资源整合,希望大家能每个字都认真看。 接下来文章会侧重在以下几方面 1、零基础如何进行人工智能的自学(以找工作为目...

    IamDLY 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<