机器学习1
机器学习主要由监督学习、无监督学习。
监督学习主要用于解决分类和回归问题。
无监督学习主要用于解决聚类问题。
在机器学习过程中主要有以下几个步骤:
- 数据预处理
- 特征工程
- 数据建模
- 结果评估
首先介绍数据预处理,主要包括数据清洗、数据采样以及数据集的拆分三个部分。
在数据清洗过程中主要对各种脏数据进行对应方式的处理,力保数据的完整性、合法性、一致性、唯一性以及权威性。
在数据集的拆分中,主要将数据集拆分为三部分,分别是训练集、预测集、验证数据集。其中验证数据集主要是为了在构建过程中评估模型、提供无偏估计进而调整模型参数。而日常使用中常用的拆分方式为:留出法和k-折交叉验证法。两种方法使用时均需要采用互斥拆分。在使用留出法时需要注意拆分保持前后数据的分布一致,避免划分过程中引入额外偏差导致结果产生影响。k-折交叉验证法将数据分为大小相似的k个互斥子集,并尽量保持每个自己数据分布的一致性,从而可以获取k组训练-测试集。
其次是特征工程的讲解。主要包括特征编码、特征选择、特征降维以及规范化几个方面。
特征编码是对数据集中出现的字符串信息转换为数值形式。one-hot编码采用N位寄存器的方法对N个状态进行编码。例如,性别属性包括男、女两个值,对其进行编码,0代表男生、1代表女生。语义编码是采用词潜入的方式,词嵌入信息可以编码语义信息,生成特征语义表示。使用语义编码可以体现数据间的语音关系。例如,http://www.sohu.com/a/129290647_473283 中TensorFlow自动句子语义编码,谷歌开源机器学习模型 Skip-Thoughts。
特征选择主要包括过滤法、包裹法和嵌入法。
特征降维。特征降维可以减少特征属性的个数,确保特征属性之间是相互独立的。而且过多的特征属性会妨碍模型查找规律。比如一个模型中有多个属性,分别是性别、年龄、名字、收入、婚否等多个属性,但是我们接下来要对数据中的男女进行分类的话,只需要考虑性别即可,其余属性即可剔除,这就是达到了数据降维的目的。机器学习中常用的降维方法为PCA、LDA。
规范化主要是将数据标准化、进行区间缩放或者进行归一化。
数据建模
根据所需解决的问题,进行判断,问题是属于分类问题、回归问题还是聚类问题。判定好问题类型,选择合适的算法来针对问题具体解决。
对于分类问题,主要有以下几个算法:决策树、贝叶斯、支持向量机、逻辑回归和继承学习等
对于回归问题有:线性回归、岭回归等
对于聚类问题有:K-means、高斯混合聚类、层次聚类以及密度聚类等
最后进行结果评估。
评估指标有很多,如果是有监督学习的话,仅仅根据测试机的预测准确率是远不够的,可以参考:https://blog.csdn.net/zk_ken/article/details/82013289
原文地址:https://www.cnblogs.com/qing0228/p/11135514.html
- Spring Cloud第二篇 创建一个Eureka Server
- 数据挖掘实战(一):Kaggle竞赛经典案例剖析
- 华为面试题——单向链表倒转(一次遍历)
- Flask一步步搭建web应用
- (44) 剖析TreeSet / 计算机程序的思维逻辑
- (46) 剖析PriorityQueue / 计算机程序的思维逻辑
- (48) 剖析ArrayDeque / 计算机程序的思维逻辑
- 那些年在win下填过的Django坑
- Python爬虫一步步抓取房产信息
- (47) 堆和PriorityQueue的应用 / 计算机程序的思维逻辑
- 一篇文章完全理解virtualenv
- Python运用蒙特卡洛算法模拟植物生长
- (57) 二进制文件和字节流 / 计算机程序的思维逻辑
- 真正的 Tornado 异步非阻塞
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 在Linux中安装ASPNET.Core3.0运行时的示例代码
- linux Bash脚本判别使用者的身份方法示例
- 配置Linux使用LDAP用户认证的方法
- linux Dig命令使用大全
- Ubuntu虚拟机下使用cutecom进行串口通信的方法
- 虚拟机Linux系统忘记密码修改root或其他用户密码的方法
- 在 RHEL8 /CentOS8 上建立多节点 Elastic stack 集群的方法
- linux 搭建svn服务器的方法步骤
- linux 下隐藏进程的一种方法及遇到的坑
- Ubuntu 18.04中截图工具shutter的编辑按钮不可用的解决办法
- Linux服务器利用防火墙iptables策略进行端口跳转的方法
- Linux下PHP网站服务器安全配置加固防护方法【推荐】
- CentOS8 yum/dnf 配置国内源的方法
- 浅析在 RHEL8 配置静态 IP 地址的不同方法
- ubuntu16.04自动设置行号的步骤详解