黑马程序员---三天快速入门Python机器学习(第一天)(上)

简介: 黑马程序员---三天快速入门Python机器学习(第一天)

一、机器学习概述


1.1 人工智能概述


1.1.1 机器学习与人工智能、深度学习



  • 机器学习是人工智能的一个实现途径


  • 深度学习是机器学习的一种方法


1.1.2 机器学习、深度学习能做什么


  • 传统预测:店铺销量预测、量化投资、广告推荐、企业客户分类、SQL语句安全检测分类


  • 图像识别:街道交通标志检测、人脸识别


  • 自然语言处理:文本分类、情感分析、自动聊天、文本检测


1.1.3 人工智能阶段课程安排



1.2 什么是机器学习


1.2.1 定义


机器学习是从数据中自动分析获得模型,并利用模型对未知数据进行预测


1.2.2 解释



对经验归纳总结,对未知事物预测


1.2.3 数据集构成


结构:特征值+目标值



注:


  • 对于每一行数据我们可以称为样本


  • 有些数据集可以没有目标值



1.3 机器学习算法分类


第一种:



识别猫和狗:


特征值:图片


目标值:猫/狗**-类别**


分类问题


第二种:



房屋价格预测:


特征值:房屋的各个属性信息


目标值:房屋价格**-连续型的数据**


回归问题


第三种



特征值:人物的各个属性信息


目标值:无


无监督学习


1.3.1 总结



1.3.2 练习


说一下他们具体问题分类:


1、预测明天的天气是多少度? 回归


2、依存明天是阴天还是晴天还是雨天?分类


3、人脸年龄预测?分类或回归


4、人脸识别?分类


1.3.3 机器学习算法分类


监督学习:预测


  • 定义:输入数据是由输入特征和目标值所组成,函数的输出可以是一个连续的值,称为回归;也可以是一个离散的值,称为分类


  • 分类:k-近邻算法、贝叶斯分类、决策树与随机森林、逻辑回归


  • 回归:线性回归、岭回归


无监督学习


  • 定义:输入数据是由输入特征值组成


  • 聚类:k-means


1.4 机器学习开发流程



流程:


1)获取数据


2)数据处理


3)特征工程


4)机器学习算法训练-得到模型


5)模型评估


6)应用


1.5 学习框架和资料介绍


大部分复杂模型的算法设计都是算法工程师在做,而我们


  • 分析很多的数据


  • 分析具体的业务


  • 应用常见的算法


  • 特征工程、调参、优化


1.5.1 机器学习库与框架



1.5.2 书籍资料



1.5.3 提深内功



二、特征工程


2.1 数据集


目标


  • 知道数据集分为训练集和测试集


  • 会使用sklearn的数据集


2.1.1 可用数据集


Kaggle网址:https://www.kaggle.com/datasets


UCI数据集网址: http://archive.ics.uci.edu/ml/


scikit-learn网址: http://scikit-learn.org/stable/datasets/index.html#datasets


https://scikit-learn.org.cn/


scikit-learn特点:


  • 1、数据量小


  • 2、方便学习


UCI特点:


  • 1、收录了360个数据集


  • 2、覆盖科学、生活、经济等领域


  • 3、数据集几十万


Kaggle特点:


  • 1、大数据竞赛平台


  • 2、80万科学家


  • 3、数据量巨大


1 Scikit-learn工具介绍



  • Python语言的机器学习工具


  • Scikit-learn包括许多知名的机器学习算法的实现


  • Scikit-learn文档完善,容易上手,丰富的API


  • 目前稳定版本0.19.1


2 安装


pip install Scikit-learn -i https://pypi.douban.com/simple


安装好之后可以通过以下命令查看是否安装成功


import sklearn



注:安装scikit-learn需要Numpy,Scipy等库


3 Scikit-learn包含的内容



2.1.2 sklearn数据集


1 scikit-learn数据集API介绍


  • sklearn.datasets.load_*():获取小规模数据集,数据包含在datasets里


  • sklearn.datasets.fetch_*(data_home=None):获取大规模数据集,需要从网络上下载,函数的第一个参数是data_home,表示数据集下载的目录,默认是**~/scikit_learn_data/**


2 sklearn小数据集


  • sklearn.datasets.load_iris():加载并返回鸢尾花数据集



  • sklearn.datasets.load_boston():加载并返回波士顿房价数据集



3 sklearn大数据集


sklearn.datasets.fetch_20newsgroups(data=None, subset=‘train’)


  • subset:‘train’或者’test’,‘all’,可选,选择要加载的数据集


  • 训练集的‘训练’,测试集的‘测试’,两者的‘全部’


4 sklearn数据集的使用


sklearn数据集返回值介绍


load和fetch返回的数据类型datasets.base.Bunch字典格式


  • data:特征数据数组,是[n_samples * n_features]的二维numpy.ndarry数组


  • target:标签数组,是n_samples的一维numpy.ndarry数组


  • DESCR:数据描述


  • feature_names:特征名,新闻数据,手写数字、回归数据集没有


  • target_names:标签名


from sklearn.datasets import load_iris
def datasets_demo():
    """
    sklearn数据集使用
    :return:
    """
    # 获取数据集
    iris = load_iris()
    print("鸢尾花数据集:\n", iris)
    print("查看数据集描述:\n", iris["DESCR"])           # 数据集的描述信息
    print("查看特征值的名字:\n", iris.feature_names)
    print("查看特征值:\n", iris.data, iris.data.shape)  # shape:(150,4)
    return None
if __name__ == "__main__":
    datasets_demo()


查看特征值的名字:
 ['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)']


2.1.3 数据集的划分


机器学习一般的数据集会划分为两个部分:


  • 训练数据:用于训练,构建模型


  • 测试数据:在模型检验时使用,用于评估模型是否有效


划分比例:


  • 训练集:70%、80%


  • 测试集:30%、20%


数据集划分api:sklearn.model_selection.train_test_split(arrays, *options)


  • x 数据集的特征值


  • y 数据集的标签值


  • test_size测试集的大小,一般为float


  • random_state随机数种子,不同的种子会造成不同的随机采样结果。相同的种子采样结果相同


  • return训练集特征值,测试集特征值,训练集目标值,测试集目标值


from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
def datasets_demo():
    """
    sklearn数据集使用
    :return:
    """
    # 获取数据集
    iris = load_iris()
    print("鸢尾花数据集:\n", iris)
    print("查看数据集描述:\n", iris["DESCR"])
    print("查看特征值的名字:\n", iris.feature_names)
    print("查看特征值:\n", iris.data, iris.data.shape)  # 150个样本
    # 数据集划分  X为特征 Y为标签
    x_train, x_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.2, random_state=22)
    print("训练集的特征值:\n", x_train, x_train.shape)   # 120个样本
    return None
if __name__ == "__main__":
    datasets_demo()


2.2 特征工程介绍


2.2.1 为什么需要特征工程


数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已


2.2.2 什么是特征工程


特征工程是使用专业背景知识和技巧处理数据,使得特征能在机器学习算法上发挥更好的作用的过程


意义:会直接影响机器学习的效果


2.2.3 特征工程的位置与数据处理的比较


  • pandas:一个数据读取非常方便以及基本的处理格式的工具


  • sklearn:对于特征的处理提供了强大的接口


特征工程包含内容:


  • 特征抽取/特征提取


  • 特征预处理


  • 特征降维


什么是特征提取?


相关文章
|
4天前
|
机器学习/深度学习 人工智能 算法
【昆虫识别系统】图像识别Python+卷积神经网络算法+人工智能+深度学习+机器学习+TensorFlow+ResNet50
昆虫识别系统,使用Python作为主要开发语言。通过TensorFlow搭建ResNet50卷积神经网络算法(CNN)模型。通过对10种常见的昆虫图片数据集('蜜蜂', '甲虫', '蝴蝶', '蝉', '蜻蜓', '蚱蜢', '蛾', '蝎子', '蜗牛', '蜘蛛')进行训练,得到一个识别精度较高的H5格式模型文件,然后使用Django搭建Web网页端可视化操作界面,实现用户上传一张昆虫图片识别其名称。
113 7
【昆虫识别系统】图像识别Python+卷积神经网络算法+人工智能+深度学习+机器学习+TensorFlow+ResNet50
|
1天前
|
人工智能 程序员 Shell
程序员必知:对比python学julia(第二章)
程序员必知:对比python学julia(第二章)
|
2天前
|
机器学习/深度学习 算法 数据挖掘
Python机器学习10大经典算法的讲解和示例
为了展示10个经典的机器学习算法的最简例子,我将为每个算法编写一个小的示例代码。这些算法将包括线性回归、逻辑回归、K-最近邻(KNN)、支持向量机(SVM)、决策树、随机森林、朴素贝叶斯、K-均值聚类、主成分分析(PCA)、和梯度提升(Gradient Boosting)。我将使用常见的机器学习库,如 scikit-learn,numpy 和 pandas 来实现这些算法。
|
8天前
|
机器学习/深度学习 数据采集 算法
【机器学习】Scikit-Learn:Python机器学习的瑞士军刀
【机器学习】Scikit-Learn:Python机器学习的瑞士军刀
25 3
|
8天前
|
机器学习/深度学习 机器人 Python
实践指南,终于有大佬把Python和机器学习讲明白了!
机器学习正在迅速成为数据驱动型世界的一个必备模块。许多不同的领域,如机器人、医学、零售和出版等,都需要依赖这门技术。 机器学习是近年来渐趋热门的一个领域,同时 Python 语言经过一段时间的发展也已逐渐成为主流的编程语言之一。今天给小伙伴们分享的这份手册结合了机器学习和 Python 语言两个热门的领域,通过易于理解的项目详细讲述了如何构建真实的机器学习应用程序。
|
10天前
|
机器学习/深度学习 人工智能 监控
【机器学习】Python与深度学习的完美结合——深度学习在医学影像诊断中的惊人表现
【机器学习】Python与深度学习的完美结合——深度学习在医学影像诊断中的惊人表现
23 3
|
1天前
|
程序员 Python
老程序员分享:python爬取电影网站信息并写入文件
老程序员分享:python爬取电影网站信息并写入文件
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
【Python机器学习】文本特征提取及文本向量化讲解和实战(图文解释 附源码)
【Python机器学习】文本特征提取及文本向量化讲解和实战(图文解释 附源码)
216 0
|
1月前
|
机器学习/深度学习 算法 数据挖掘
【Python机器学习】K-Means对文本聚类和半环形数据聚类实战(附源码和数据集)
【Python机器学习】K-Means对文本聚类和半环形数据聚类实战(附源码和数据集)
101 0
|
19天前
|
机器学习/深度学习 数据采集 API

热门文章

最新文章