机器学习入门学习笔记

一、机器学习概述

1.机器学习是人工智能学的一个实现途径,深度学习是机器学习的一个方法发展来的
2.机器学习的数据来源:数据集
3.数据集的构成:特征值 + 目标值
注:有些数据集可以没有目标值,比如社会上的各个职业,刚开始分班的每一名同学等,他们一开始都不具备目标值,但机器学习中有特殊的算法根据日常的经验或特征去为他们分群,从而生成目标值。
4.机器学习算法分类:
监督学习:(有目标值)
(1)目标值:类别 —— 分类问题
(2)目标值:连续性的数据 —— 回归问题
无监督学习:(无目标值)
(3)目标值:无 —— 无监督学习
5.运用算法的几个例子:
(1)预测明天的气温——回归
(2)预测明天的天气——分类
(3)人脸年龄预测——回归/分类(数据中的多个样本都有具体的年龄,则采用回归算法;数据中的样本只有老、幼等没有具体年龄的,则采用分类算法)
(4)人脸识别——分类
6.具体算法分类
(1)分类:k-近邻算法、贝叶斯分类、决策树与随机森林、逻辑回归
(2)回归:线性回归、岭回归
(3)聚类(无监督学习):k-means
7.机器学习开发流程
(1)获取数据
(2)数据处理(初步处理)
(3)特征工程(进一步处理数据,尤其是处理成方便使用的特征值)
(4)机器学习算法训练 - 模型
(5)模型评估(效果好则继续以下步骤,效果不好则返回第2步,不断循环,直到模型效果好为止)
(6)应用
8.机器学习的框架
(1)算法是核心,数据与计算是基础
(2)步骤:
①入门
②看一些实战类书籍
③深入研究原理的书籍:机器学习 - “西瓜书” - 周志华 统计学习方法 - 李航 深度学习 - “花书”
(3)怎么做:
①学会分析问题,使用机器学习算法的目的,想要算法完成何种任务
②掌握算法的基本思想,学会对问题用相应的算法解决,学会利用库或者框架解决问题
③当前最重要的是掌握一些机器学习算法等技巧从某个业务领域切入解决问题
9.常见的一些机器学习库与框架
(1)传统的机器学习算法:scikit learn(sklearn)
(2)深度学习框架:Tensorflow(常用)、Pyrorch、Caffe2、Chainer、theano

二、特征工程

1.可用数据集及其特点(学习阶段)(备注:点击即可跳转至相应网站)
(1)sklearn:数据量小,方便学习
(2)Kaggle:大数据竞赛平台,众多科学家,真实数据,数据量巨大
(3)UCI:众多数据集(不断更新),覆盖科学、生活、经济等领域,数据量巨大
2.sklearn工具介绍
(1)python语言的机器学习工具
(2)包含许多知名的机器学习算法的实现
(3)文档完善,容易上手,丰富的API
3.sklearn包含的内容
(1)分类、回归、聚类
(2)特征工程
(3)模型选择、调优
4.sklearn数据集API介绍
(1)sklearn.datasets:加载获取流行数据集
(2)datasets.load_():获取小规模数据集,数据包含在datasets里(星号可以替换成数据集的名字,数据集的名字可以在以上的网站中查询)
eg:sklearn.datasets.load_iris()——加载并返回鸢尾花数据集
sklearn.datasets.load_boston()——加载并返回波士顿房价数据集
(3)datasets.fetch_
(data_home=None):获取大规模数据集,需要从网络上下载,函数的第一个参数是data_home,表示数据集下载的目录,如果等于None,则默认是~/scikit_learn_data/
eg:sklearn.datasets.fetch_20newgroups(data_home=None, subset=‘train’)
补充:subset有三种取值情况——
①’train’——加载训练集
②’test’——加载测试集
③’all’——加载两者的全部
5.数据集的返回值
(1)以上两个加载函数返回值类型为datasets.base.Bunch(继承字典)
(2)由以下组成:
data:特征数据数组,是 [n_samples * n_features] 的二维 numpy.ndarray 数组
target:标签数组,是 n_samples 的一维 numpy.ndarray 数组
DESCR:数据描述
feature_names:特征名,新闻数据,手写数字、回归数据集没有
target_names:标签名
(3)获取值的方法(源于字典取值的用法)
①dict[“key”] = values
②bunch.key = values
(4)运行代码例子(任意的python环境平台都可)
机器学习入门学习笔记_第1张图片
补充:
(1)表有几列就有几个特征值
(2)print(iris.data.shape)能够输出特征值表的行列数
6.拿到的数据不能全部用于训练模型,需要对数据集进行划分,一部分用于训练,一部分用于测试,其中测试集一般占比20%~30%
7.数据集的划分
(1)sklearn.model_selection.train_test_split(arrays, *options)
eg:train_test_split(iris.data, iris.target, test_size = 0.2)
补充:
x 数据集的特征值
y 数据集的标签值
test_size 测试集的大小,一般为float,不加则默认为0.25
random_state 随机数种子,不同的种子会造成不同的随机采样结果。相同的种子采样结果相同。
return 训练集特征值,测试集特征值,训练集目标值,测试集目标值,训练标签,测试标签(默认随机取)
如:x_train, x_test, y_train, y_test
(2)运行代码例子
机器学习入门学习笔记_第2张图片
机器学习入门学习笔记_第3张图片
8.特征工程的作用:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。
9.特征工程包含:
①特征抽取
②特征预处理
③特征降维
10.特征提取
(1) 将任意类型数据(如文本或图像)转换为可用于机器学习的数字特征
(2)特征值化是为了计算机更好的去理解数据
(3)可分为字典、文本、图像的特征提取
11.字典特征提取
(1)sklearn.feature_extraction.DictVectorizer(sparse=True,…)
补充:vector——向量(一维数组) 多个向量(样本)构成矩阵(二维数组)
DictVectorizer.fit_transform(X) X:字典或者包含字典的迭代器返回值:返回sparse矩阵(稀疏矩阵:将非0值按位置表示出来,具有节省内存、提高加载效率的好处;如果等于True,则会输出稀疏矩阵,等于False则输出普通矩阵)
DictVectorizer.inverse_transform(X) X:array数组或者sparse矩阵 返回值:转换之前数据格式
DictVectorizer.get_feature_names() 返回类别名称
(2)相当于把类别转化为one-hot编码(多个类别各对应多位数字,是为1,否为0)
eg:这里城市有3类,则在特征提取后的矩阵中对应3列
机器学习入门学习笔记_第4张图片
(3)运行代码例子
机器学习入门学习笔记_第5张图片
(4)应用场景
①数据集当中类别特征较多
将数据集的特征转换为字典类型,再做字典特征提取
机器学习入门学习笔记_第6张图片
②本身就是字典类型,则直接字典特征提取

12.文本特征提取(局限:无法提取中文文本!!!除非事先用空格将句子中的词语分隔开,但其实是不符合大部分的实际情况的)
(1)“单词”作为特征
(2)方法
机器学习入门学习笔记_第7张图片
备注:stop_words=[]部分表示停用词,传入的作为函数参数的列表中的单词将不会被计入特征值
机器学习入门学习笔记_第8张图片
(3)代码运行实例
机器学习入门学习笔记_第9张图片
运行结果:
机器学习入门学习笔记_第10张图片

13.中文文本特征提取(自动分词)
(1)方法(jieba库需要安装)
在这里插入图片描述
备注:需要使用其中的词语时需要强制转换成其他类型的数据,如:
①列表类型:在整个函数外面加上list()即可
②多个词语字符串类型:在列表类型数据外面加上" ".join()(双引号内有空格,表示字符串中的词语用空格隔开)
(2)代码运行实例
机器学习入门学习笔记_第11张图片
机器学习入门学习笔记_第12张图片
运行结果:
机器学习入门学习笔记_第13张图片

你可能感兴趣的:(机器学习,机器学习)