因为辅修专业,这学期在学习机器学习这门课。
      使用的语言为Python,因为Python涉及到库的安装、pip升级等,经常因为源、版本不对等问题导致报错,以前没有做笔记的习惯,遇到问题就上网搜,虽然能解决,但花费不少时间,故首次尝试写下学习笔记,记录学习过程的一些知识及中完成作业的过程中遇到的麻烦,方便个人以后及时找到解决方法,如恰好能帮到你,实属我之荣幸,如有错误,欢迎斧正。

任务安排

1、机器学习导论        8、核方法
2、KNN及其实现        9、稀疏表示
3、K-means聚类       10、高斯混合模型
4、主成分分析           11、嵌入学习
5、线性判别分析       12、强化学习
6、贝叶斯方法           13、PageRank
7、逻辑回归               14、深度学习

机器学习导论

人工智能核心课程——机器学习
机器学习顶会——国际机器学习大会 ICML
因为我们才第二届,不够成熟,没有配套课本,老师的推荐书籍是《模式识别》——张学工

1956年,达特茅斯会议的举办,标志人工智能学科的诞生,而机器学习,则起源于人工智能,从第一阶段推理期,研究者们意识到机器仅有逻辑推理能力是远远不够的,到第二阶段知识期,研究者们受困于总结出大量知识再教给系统,后到第三阶段学习期,20世纪90年代中后期,人们淹没在数据海洋中喘息不得,意识到发展自动数据分析技术——机器学习迫在眉睫,机器学习作为“突破知识工程瓶颈”之利器应运而生。
      再到如今,机器学习已大量应用于我们生活的方方面面,游戏制作、生物信息学、搜索引擎、入侵检测、无人驾驶、火星机器人、决策助手…

Ⅰ机器学习定义

对于某类任务 T 和性能度量 P,如果一个计算机程序在 T 上以 P 衡量的性能随着经验 E 而自我完善,那么我们称这个计算机程序在从经验 E 中学习

简单点说,就是给定一组输入数据集,经过模型训练后,得到相应输出数据集

Ⅱ 机器学习分支

监督学习 Supervised Learning
       分类 Classification (离散)——KNN、贝叶斯方法、逻辑回归……
       回归 Regression (连续)——线性回归……
       降维 Dimensionality Reduction——LDA……
   无监督学习 Unsupervised Learning
       密度估计 Density Estimation
       聚类 Clustering——K-means……
       降维 Dimensionality Reduction——PCA……
       图像分割 Image Segmentation

   弱监督学习 Weakly-supervised Learning
       半监督学习 Semi-supervised (介于监督学习与无监督学习之间使用大量的未标记数据,以及同时使用标记数据,来进行模式识别工作)

偏监督学习 Partially-supervised
   增强学习 Reinforcement Learning
       Q-learning

Ⅲ 性能度量

loss(Y,f(X))loss(Y, f(X))loss(Y,f(X)) —— 衡量真实标签Y和预测标签 f(X)f(X)f(X) 之间的距离(X是抽取的数据)
      不仅仅是考虑某一个测试数据的标签,而是数据集中任意一个数据
      给定一个从所有细胞图片中随机抽取的细胞图片,预测器的平均性能有多好?
RiskR(f)≡Exy[loss(Y,f(X))]Risk R(f)≡E_{xy}[loss(Y,f(X))]RiskR(f)≡Exy​[loss(Y,f(X))](R(f)R(f)R(f)越小即预测性能越好)
      不同情况有不同具体公式,下图仅举例

下面到了重中之重的环节!!!今日作业与过程问题解决!!!
(没想到第一节导论课都能布置作业,感觉才刚认识“机器学习”这个词)

今日任务

1、安装软件 Python 和工具包 sklearn
2、生成数据 make_circles 和 make_moons,并显示 X=400×2X=400×2X=400×2,Y={0,1}400^{400}400,画图:

3、思考:高维数据如何可视化?
4、上 机器学习数据库下载并显示至少一个图像或文档数据集。

任务解决

1、果不其然,①pip又更新了,使用以下代码搞定(会自动安装与已装Python所相符的版本,有时一次没法成功,多跑几次就可以了,具体原因暂时不知道,可能是版本、路径、网络之类的问题,有知道的同学欢迎指教!)

python -m pip install --upgrade pip

②下面是配置 sklearn
      sklearnsklearnsklearn 是 scikit−learnscikit-learnscikit−learn 的简称,是一个基于 PythonPythonPython 的第三方模块。sklearnsklearnsklearn 库集成了一些常用的机器学习方法,在进行机器学习任务时,并不需要实现算法,只需要简单的调用 sklearnsklearnsklearn 库中提供的模块就能完成大多数的机器学习任务(用 PythonPythonPython 这种高级语言就是好啊,站在巨人的肩膀上)。
      由于它有好几个依赖库,一个一个提前安装挺麻烦的,笔者从别的大佬那找到的一个比较方便的代码(笔者是用 pycharmpycharmpycharm,有的同学说用 anacondaanacondaanaconda 直接有自带 sklearnsklearnsklearn)

pip install scikit-learn -i https://pypi.tuna.tsinghua.edu.cn/simple

如果不加后面的清华源,用的外网,速度极其缓慢,载其他的包也是一样的,只需把install和-i之间的包名更改即可
安装好后提示:
可以看到 sklearnsklearnsklearn 有三个依赖库 numpynumpynumpy、joblibjoblibjoblib、scipyscipyscipy
那么,终于算是解决第一题了!
2、参考sklearn之样本生成(有缺少 matplotlibmatplotlibmatplotlib 的用上面的命令行配置)
x[n,:]x[n,:]x[n,:] or x[:,n]x[:,n]x[:,n]是 numpynumpynumpy 中数组的用法 代码注释里稍微解释了一下

from sklearn.datasets import make_circles
from sklearn.datasets import make_moons
import matplotlib.pyplot as plt
import numpy as npfig = plt.figure(1)
x1, y1 = make_circles(n_samples=400, factor=0.5, noise=0.1)
# n_samples:生成样本数,内外平分   noise:异常点的比例   factor:内外圆之间的比例因子 ∈(0,1)
# 举例x1 = np.array([[0,1],[2,3],[4,5],[6,7],[8,9],[10,11],[12,13],[14,15],[16,17],[18,19]])
# x1[:,0]表示取所有坐标的第一维数据   x1[0,:]表示第一个坐标的所有维数据plt.subplot(121)     # 一行两列 当前为1(第一行第一列)
plt.title('make_circles function example')
plt.scatter(x1[:, 0], x1[:, 1], marker='o', c=y1)
# 第一个参数横坐标 第二个参数纵坐标 marker为标志图案 c为颜色(可以是二维行数组)
# x1[:,0]即取x坐标 x1[:,1]即取y坐标plt.subplot(122)
x1, y1 = make_moons(n_samples=400, noise=0.1)
plt.title('make_moons function example')
plt.scatter(x1[:, 0], x1[:, 1], marker='o', c=y1)
plt.show()

效果图

3、高维数据如何可视化?当然是上面提到过的无监督学习里的降维啦,比如人脸识别中用PCA算法降维提取特征脸
4、参考Python把多张图片拼成大图
需要注意的是** PTL 模块封装在 pillow 里**
这里只需更改 IMAGES_PATH 和 IMAGE_SAVE_PATH 即可
注意
(1) IMAGES_PATH 要到照片集的那一目录下(最后需斜杠
(2) IMAGE_SAVE_PATH 最后无斜杠
(3) Python 数据读取路径比较特殊,\有转义的含义,故有三种表示路径方法
①在路径前面+r   ②用一个斜杠替代   ③用两个反斜杠替代
参考自 unicode error

import PIL.Image as Image
import osIMAGES_PATH = 'C:/Users/1233/Desktop/Horse100/Horse100/'  # 图片集地址
# IMAGES_PATH = r'C:/Users/1233/Desktop/Horse100/Horse100/'
IMAGES_FORMAT = ['.jpg']  # 图片格式
IMAGE_SIZE = 256  # 每张小图片的大小
IMAGE_ROW = 10  # 图片间隔,也就是合并成一张图后,一共有几行
IMAGE_COLUMN = 10  # 图片间隔,也就是合并成一张图后,一共有几列
IMAGE_SAVE_PATH = 'C:\\Users\\1233\\Desktop\\Horse100\\Horse100\\final.jpg'  # 图片转换后的地址# 获取图片集地址下的所有图片名称
image_names = [name for name in os.listdir(IMAGES_PATH) for item in IMAGES_FORMAT ifos.path.splitext(name)[1] == item]# 定义图像拼接函数
def image_compose():to_image = Image.new('RGB', (IMAGE_COLUMN * IMAGE_SIZE, IMAGE_ROW * IMAGE_SIZE))  # 创建一个新图# 循环遍历,把每张图片按顺序粘贴到对应位置上for y in range(1, IMAGE_ROW + 1):for x in range(1, IMAGE_COLUMN + 1):from_image = Image.open(IMAGES_PATH + image_names[IMAGE_COLUMN * (y - 1) + x - 1]).resize((IMAGE_SIZE, IMAGE_SIZE), Image.ANTIALIAS)to_image.paste(from_image, ((x - 1) * IMAGE_SIZE, (y - 1) * IMAGE_SIZE))return to_image.save(IMAGE_SAVE_PATH)  # 保存新图image_compose()  # 调用函数

效果图

总结

对于本科的“机器学习”这类较难科目的初学习,我们应该学会站在巨人的肩膀上,先通过做出一些有趣的东西培养兴趣,再兴趣使然,不断深入,以及,感谢前辈们的资源!

机器学习实战笔记1——机器学习导论相关推荐

  1. 机器学习实战笔记(Python实现)-04-Logistic回归

    转自:机器学习实战笔记(Python实现)-04-Logistic回归 转自:简单多元线性回归(梯度下降算法与矩阵法) 转自:人工神经网络(从原理到代码) Step 01 感知器 梯度下降

  2. 《机器学习实战》chap1 机器学习概览

    <机器学习实战>chap1 机器学习概览 Chap1 The Machine Learning Landscape 这本书第三版也已经出版了:https://github.com/ager ...

  3. 机器学习实战笔记(Python实现)-03-朴素贝叶斯

    --------------------------------------------------------------------------------------- 本系列文章为<机器 ...

  4. 机器学习实战笔记(Python实现)-01-机器学习实战

    今天发布一篇图片博客,看一下效果如何,如果效果,以后的博客尽量发图片上来. 机器学习实战 本博客来自于CSDN:http://blog.csdn.net/niuwei22007/article/det ...

  5. python实现线性回归预测_机器学习实战笔记(Python实现)-08-线性回归

    --------------------------------------------------------------------------------------- 本系列文章为<机器 ...

  6. 机器学习实战 基于_机器学习实战:基于Scikit-Learn和TensorFlow—第四章笔记

    机器学习实战:基于Scikit-Learn和TensorFlow---第四章笔记 一.学习目标 之前用了那么多的机器学习的模型,但是它们各自的训练算法在很大程度上还是一个黑匣子,我们对对系统内部的实现 ...

  7. 机器学习实战笔记(Python实现)-02-k近邻算法(kNN)

    k近邻算法(kNN) 本博客来源于CSDN:http://blog.csdn.net/niuwei22007/article/details/49703719 本博客源代码下载地址:CSDN免费下载. ...

  8. 机器学习实战——笔记(第一章)

    机器学习基础 目录 机器学习的简单概述 机器学习的主要任务 算法选择与开发步骤 Python语言的优势 一.机器学习的简单概述 机器学习应用领域十分广泛,如人脸识别.推荐系统.手写数字辨识及垃圾邮件过 ...

  9. 机器学习入门 笔记(二) 机器学习基础概念

    第二章 机器学习基础概念 1.机器的数据 2.机器学习的主要任务 3.监督学习和非监督学习 4.批量.在线学习.参数.非参数学习 5.哲学思考 6.环境的搭建 1.机器的数据 我们以鸢尾花的数据为例. ...

  10. 机器学习实战 | AutoML自动化机器学习建模

    作者:韩信子@ShowMeAI 教程地址:https://www.showmeai.tech/tutorials/41 本文地址:https://www.showmeai.tech/article-d ...

最新文章

  1. [BJDCTF2020]EasySearch
  2. 交换二维数组元素c语言,二维数组中元素替换问题!
  3. SAP Spartacus index.html 里的 occ-backend-base-url 如何被解析的?
  4. 前端学习(325):javascript历史
  5. AI:初学者如何从零学习人工智能?看完你就懂了
  6. hdu2063 二分图的匈牙利匹配
  7. css3中的background的新特性background-origin,background-clip,background-size详解
  8. Android心得1.5--第一次搭建Android环境的心得和第一个应用程序部分代码解析
  9. Linux下JDK和Tomcat安装
  10. VERP是否支持多仓库管理?
  11. WPF入门教程系列一——基础
  12. 好系统重装助手教你win10系统连接XP系统共享打印机的方法
  13. 在外置移动硬盘中安装Win10
  14. 卷积神经网络 c语言代码,【CNN】卷积神经网络(示例代码)
  15. 鸿蒙可能超越安卓吗,华为鸿蒙能超越安卓吗?或一统江湖?任正非已志在必得...
  16. 关于HTML语言img标签图像显示问题解决方法
  17. 软件性能测试方案模板,软件系统 性能设计方案 软件系统设计方案模板
  18. 如何使用SFC / SCANNOW修复Windows系统文件
  19. 苹果刷机有好处和坏处_苹果更新要通电源吗
  20. Adobe欲统一相机RAW格式的格式——DNG数码负片

热门文章

  1. Windows 2000 下载
  2. SqlServer数据库导入 mdf,ldf,ndf 格式文件操作
  3. java messagedigest_Java MessageDigest.getInstance返回的实例非线程安全
  4. 2021年5大最佳3D动画软件
  5. CASS删除分幅后图框内部十字丝
  6. 电脑开机计算机配置,电脑开机显示配置更新怎么办
  7. 关灯游戏java代码_江湖救急!在用JAVA做一个关灯游戏,有些不会的地方
  8. IDEA更换炫酷主题
  9. Python自动化结算工资和统计报表
  10. 网上购物系统设计类图