从一个菜鸟开始学习机器学习
2015-05-03 11:34
162 查看
今晨看了一篇文章,说是2025年十大最有前途的技术,当然有“移动互联网”,而其间也有一个是“自动化知识处理”,这其中的关键技术是机器学习。机器学习是一个交叉学科,它与科学计算有很密切的关系,但不完全是数学,它与程序设计很多关联,但却也不是完全的传统意义上之程序设计,因此,它应当是一个独立的学科,既不像想象中那么神秘,却需要相对高一些的门槛,需要时间长一些的积累,需要心不要太急,需要水滴石穿的功夫,需要真的喜欢这个东西,真希望通过博客这个平台找到在漫漫前进道路上共勉的同志。
我想从《机器学习系统设计》(Building Machine Learning Systems with Python, Turing, Packt )开始,先从代码学习开始。以下是书中第一个例子的代码(Page23,中文版),通过不同的属性组合二维显示样本数据分布。
保存的图像为:
从图中可以看到,红色样本是较容易从其他两类样本中区分出来的,绿色和蓝色的样本不太容易能够分出来,书中给出的方法是:
输出的图是:
其实是用眼睛来看,找出一个切割的地方,在图中就是1.75,然后画出这个切线来。
我想从《机器学习系统设计》(Building Machine Learning Systems with Python, Turing, Packt )开始,先从代码学习开始。以下是书中第一个例子的代码(Page23,中文版),通过不同的属性组合二维显示样本数据分布。
# figure1.py import numpy as np from sklearn.datasets import load_iris from matplotlib import pyplot as plt from CodeWarrior.CodeWarrior_suite import target 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) for t,marker,c in zip(range(3), ">ox", "rgb"): # zip()是Python的一个内建函数,它接受一系列可迭代的对象作为参数, # 将对象中对应的元素打包成一个个tuple(元组), # 然后返回由这些tuples组成的list(列表)。 plt.scatter(features[target == t,p0], features[target == t,p1], marker = marker, c = c) plt.xlabel(feature_names[p0]) plt.ylabel(feature_names[p1]) plt.xticks([]) plt.yticks([]) plt.savefig('../1400_2_01.png')
保存的图像为:
从图中可以看到,红色样本是较容易从其他两类样本中区分出来的,绿色和蓝色的样本不太容易能够分出来,书中给出的方法是:
COLOUR_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') features = features[~setosa] species = species[~setosa] virginica = species == 'virginica' t = 1.75 p0,p1 = 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] 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) 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')
输出的图是:
其实是用眼睛来看,找出一个切割的地方,在图中就是1.75,然后画出这个切线来。
相关文章推荐
- 开始学习机器学习
- 开始学习ASP.NET,菜鸟级别,请各位大侠照顾
- 新闻上的文本分类:机器学习大乱斗 王岳王院长 王岳王院长 5 个月前 目标 从头开始实践中文短文本分类,记录一下实验流程与遇到的坑 运用多种机器学习(深度学习 + 传统机器学习)方法比较短文本分类处
- 【菜鸟数据库学习日记】从头开始学MySQL(1)
- PHP菜鸟如何开始学习PHP语言
- 【菜鸟数据库学习日记】从头开始学MySQL(4)
- 从一点儿不会开始——Unity3D游戏开发学习(一)
- 学习机器学习从数据挖掘开始
- 在什么情况需要对特征使用归一化处理?--从机器学习项目中开始学习
- 写在开始学习机器学习之前
- 做为一个菜鸟,打算从今天开始系统的学习freebsd
- 菜鸟开始学习SSH框架--框架材料
- 连菜鸟都算不上的代码小萌妹的学习之路开始了
- 第一天开始学习机器学习 慢慢进步
- 【菜鸟数据库学习日记】从头开始学MySQL(3)
- 我是菜鸟,开始学习计划
- 深入浅出学习struts框架(五)--正式进入struts框架学习,从一个实例开始 .
- 开始机器学习,深度学习之旅
- 今天开始学习模式识别与机器学习Pattern Recognition and Machine Learning (PRML),章节5.1,Neural Networks神经网络-前向网络。