一、机器学习概述
1.1 机器学习 人工智能 深度学习 三者之间的关系
机器学习是人工智能的实现途径;深度学习是机器学习的一个方法发展而来
1.2什么是机器学习
机器学习是从数据中分析训练并获得模型后,再去预测未知数据的可能趋势的一种方法
三个关键词:数据 模型 预测
数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限。其中算法是机器学习的核心,数据与计算是基础。
如何快速入门: 从实际的例子进行入门,先了解框架再进行实战再研究算法是如何实现。
1.3数据集的构成
特征值 目标值 样本
注:有些数据集中无样本
1.4机器学习算法的分类
通过目标值来进行分类
监督学习(分类问题;回归问题)
无监督学习(聚类问题)
1.5机器学习的开发流程
1》获取数据集 2》数据处理 3》特征工程
4》机器学习算法训练>模型 5》模型评估 6》应用
二、特征工程
2.1数据集
2.1.1获取数据集的两种方法:
sklearn datasets
(1)获取小数据集:load_* *为所要获取数据集的名字
sklearn datasets.load_iris()
(2)获取大数据集:fetch_* *为所要获取数据集的名字
sklearn dataset.fetch_20newgroups()
(3)数据集的返回值
datasets.base.bunch (继承自字典格式)
dict['key'] = value
bunch.key = value
2.1.2数据集的划分
数据集可分为:训练集 ;验证集 ;测试集 其中验证集是从训练集中又划分出来的一部分。
划分原则:训练集要大于测试集,这样更有利于训练出一个好的数据模型来进行数据的预测。训练集:测试集 80:20 或者 70:30
API : sklearn.model_selection.train_test_split
x_train, x_test, y_train, y_test = train_test_split(a.data, a.target, test_size=0.2, random_state=22)
2.2特征工程
2.2.1为什么要做特征工程?
防止某些特征值大吃小的现象,使得更好的能够考虑到该有的特征值对该数据集的影响。
2.2.2特征提取
将原有数据(文本或者图像等数据)转换成可用于机器学习的数字特征。特征化是为了计算机更好的去理解数据。
包括:
1) 字典特征提取(特征离散化) ;
2) 文本特征提取 ;
3) 图像特征提取(深度学习)
API :sklearn.feature_extraction
(1)字典特征提取(特征离散化):sklearn.feature_extraction.DictVectorizer(sparse=True,…)
返回spare矩阵 既稀疏矩阵
vector 数学:向量 物理:矢量
矩阵 matrix 二维数组 向量 vector 一维数组 (矩阵与向量在计算机中如何进行表示)
其父类是:转换器类(transfer)
返回sparse矩阵 sparse稀疏 将非零值 按位置表示出来 节省内存 - 提高加载效率
(2)独热编码 one-hot编码 :保证每个特征都仅有一种形式表现出现。类别
transfer = DictVectorizer() transfer是一个转换器类,将数据准换成二维矩阵,能够让计算机更好的处理数据。
new_data = transfer.fit_transform(data)
矩阵中每一列数据所表示的特征意义:transfer.get_feature_names:()
2.2.3特征预处理
(1)数值型数据的无量纲化 ——减少异常点的影响
归一化:把原始数据映射到(默认大小为[0,1])之间;其作用就是减小大吃小的现象。
作用于每一列;Mx 与Mi 为指点区间[0,1]
sklearn.preprocessing.MinMaxScaler(feature_range=(0,1))
标准化:把原来数据进行变换,变换到均值为0,标准差为1的范围之间,使得其更加集中分布。其标准化公式作用于每一列数据。
sklearn.preprocessing.StandardScaler()
(2)特征降维
降低特征的个数,使得数据处理更加高效。其效果是特征与特征之间不相关。
降维的两种方式:1) 特征选择法 ;
2)主成分分析法 PCA ;
1) 特征选择法:
sklearn.feature_selection
数据中包含冗余或相关变量(或称特征、属性、指标等),旨在从原有特征中找出主要特征。
Filter过滤式:主要探究特征本身特点,特征与特征和目标之间关联
方差选择法: 低方差法:低方差特征过滤
sklearn.feature_selection.VarianceThreshold(threshold=0.0)
注:Variance方差 ; Threshold临界值 且低于threshold的特征值将被删除
相关系数:皮尔逊相关系数 ;反应变量之间相关系数密切程度的统计指标。
指标范围 : 0.4 低度相关 ; 0.7 显著相关 ; 1 高度相关
求数据集中“A" 和”B“的皮尔逊相关系数的实现:
from scipy.stats import pearsonr
r1 = pearsonr(["A"] , ["B"])
print("相关系数:\n", r1)
当特征与特征之间的相关系数很高时 :(1)选择其中的一个特征(2)加权求和(3)主成分分析
2) 主成分分析法 PCA:
定义:高维数据转化为低维数据的过程,在此过程中可能会舍弃原有效数据,创造新的变量。
作用:使数据维数压缩,尽可能降低原数据的维数(复杂度),损失少量信息。
应用:回归分析或者聚类分析
sklearn.decomposition.PCA(n_components=None)
实例化: from sklearn.decomposition import PCA
transfer = PCA(n_component= 一个数)
new_data = transfer.fit_transform(data)
Embeded嵌入式:算法自动选择特征(特征与目标值之间的关联)
决策树:信息熵;信息增益 。
正则化:L1 ; L2
深度学习:卷积
后续内容待更新。。。。。。。。