机器学习(零)导学和sklearn库

举报
野猪佩奇996 发表于 2022/01/23 01:25:16 2022/01/23
【摘要】 一.机器学习的目标 机器学习是实现人工智能的手段,其主要研究内容是如何利用数据或经验进行学习,改善具体算法的性能 • 多领域交叉,涉及概率论、统计学,算法复杂度理论等多门学科 • 广泛应用于网络搜索、垃圾邮件过滤、推荐系统、广告投放、信用评价、欺诈检测、股票交易和医疗诊断等应用 二.机器学习分类 • 监督学习 (Supervis...

一.机器学习的目标

机器学习是实现人工智能的手段,其主要研究内容是如何利用数据或经验进行学习,改善具体算法的性能
• 多领域交叉,涉及概率论、统计学,算法复杂度理论等多门学科
• 广泛应用于网络搜索、垃圾邮件过滤、推荐系统、广告投放、信用评价、欺诈检测、股票交易和医疗诊断等应用

二.机器学习分类


• 监督学习 (Supervised Learning)
• 无监督学习 (Unsupervised Learning)
• 强化学习(Reinforcement Learning,增强学习)
• 半监督学习( Semi-supervised Learning )
• 深度学习 (Deep Learning)

三.Python Scikit-learn


• http://scikit-learn.org/stable/
• Machine Leaning in Python
• 一组简单有效的工具集
• 依赖Python的NumPy,SciPy和matplotlib库
• 开源、可复用

四.课程目标

• 了解基本的机器学习原理及算法
• 学习利用机器学习算法解决应用问题的能力
• 掌握sklearn库中常用机器学习算法的基本调用方法,避免重复造车

五.资料推荐

《机器学习》-周志华

《PRML》-Bishop

《Machine Learning》- Andrew Ng

《CS231n》- Fei-Fei Li

《Reinforcement Learning》-David Silver(强化学习)

六.sklearn库的简介

sklearn是scikit-learn的简称,是一个基于Python的第三方模块。sklearn库集成了一些常用的机器学习方法,在进行机器学习任务时,并不需要实现算法,只需要简单的调用sklearn库中提供的模块就能完成大多数的机器学习任务。

sklearn库是在Numpy、Scipy和matplotlib的基础上开发而成的,因此在介绍sklearn的安装前,需要先安装这些依赖库(如下)。

Numpy(Numerical Python的缩写)是一个开源的Python科学计算库。在Python中虽然提供了list容器和array模块,但这些结构并不适合于进行数值计算,因此需要借助于Numpy库创建常用的数据结构(如:多维数组,矩阵等)以及进行常用的科学计算(如:矩阵运算)。
Scipy库是sklearn库的基础,它是基于Numpy的一个集成了多种数学算法和函数的Python模块。它的不同子模块有不同的应用,如:积分、插值、优化和信号处理等。
matplotlib是基于Numpy的一套Python工具包,它提供了大量的数据绘图工具,主要用于绘制一些统计图形,将大量的数据转换成更加容易被接受的图表。(注意要先安装numpy再安装matplotlib库)

sklearn库的安装:http://www.lfd.uci.edu/~gohlke/pythonlibs/#

在dos命令行cd到下载的文件路径,使用如下命令(如skearn包)

pip install scikit_learn‑0.22.1‑cp38‑cp38‑win_amd64.whl
 

下载后在IDLE测试:


  
  1. import numpy
  2. import matplotlib
  3. import sklearn

七.sklearn库中的标准数据集

八.sklearn的基本功能

sklearn库的共分为6大部分,分别用于完成分类任务、回归任务、聚类任务、降维任务、模型选择以及数据的预处理。

九.sklearn库中的标准数据集和功能

(1)波士顿放假数据集

使用sklearn.datasets.load_boston即可加载相关数据集
其重要参数为:
• return_X_y:表示是否返回target(即价格),默认为False,只返回data(即属性)。


  
  1. >>> from sklearn.datasets import load_boston
  2. >>> boston=load_boston()
  3. >>> print(boston.data.shape)
  4. (506, 13)
  5. >>> from sklearn.datasets import load_boston
  6. >>> data,target=load_boston(return_X_y=True)
  7. >>> print(data.shape)
  8. (506, 13)
  9. >>> print(target.shape)
  10. (506,)

(2)鸢尾花数据集

使用sklearn.datasets. load_iris即可加载相关数据集
其参数有:
• return_X_y:若为True,则以(data, target)形式返回数据;默认为False,表示以字典形式返回数据全部信息(包括data和target)。


  
  1. >>> from sklearn.datasets import load_iris
  2. >>> iris=load_iris()
  3. >>> print(iris.data.shape)
  4. (150, 4)
  5. >>> print(iris.target.shape)
  6. (150,)
  7. >>> list(iris.target_names)
  8. ['setosa', 'versicolor', 'virginica']

(3)手写数字数据集

手写数字数据集包括1797个0-9的手写数字数据,每个数字由8*8大小的矩阵构成,矩阵中值的范围是0-16,代表颜色的深度。

使用sklearn.datasets.load_digits即可加载相关数据集
其参数包括:
• return_X_y:若为True,则以(data, target)形式返回数据;默认为False,表示以字典形式返回数据全部信息(包括data和target) ;
• n_class:表示返回数据的类别数,如:n_class=5,则返回0到4的数据样本。


  
  1. >>> from sklearn.datasets import load_digits
  2. >>> digits=load_digits()
  3. >>> print(digits.data.shape)
  4. (1797, 64)
  5. >>> print(digits.images.shape)
  6. (1797, 8, 8)
  7. >>> import matplotlib.pyplot as plt
  8. >>> plt.matshow(digits.images[0])
  9. <matplotlib.image.AxesImage object at 0x00000237E47C44F0>
  10. >>> plt.show()


  
  1. >>> from sklearn.datasets import load_digits
  2. >>> digits=load_digits()
  3. >>> print(digits.data.shape)
  4. (1797, 64)
  5. >>> print(digits.images.shape)
  6. (1797, 8, 8)
  7. >>> import matplotlib.pyplot as plt
  8. >>> plt.matshow(digits.images[0])
  9. <matplotlib.image.AxesImage object at 0x00000237E47C44F0>
  10. >>> plt.show()

文章来源: andyguo.blog.csdn.net,作者:山顶夕景,版权归原作者所有,如需转载,请联系作者。

原文链接:andyguo.blog.csdn.net/article/details/104311157

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。