一、机器学习简介和概述
1.1什么是机器学习?
机器学习是从数据中自动分析获得规律(模型),并利用规律对未知数据进行预测
1.2为什么需要机器学习?
机器学习可以解放生产力,解决专业问题,提供便利
1.3机器学习应用场景:
自然语言处理,无人驾驶,计算机视觉,推荐系统
二、机器学习中的数据
2.1数据类型:
离散型数据:由记录不同类别个体的数目所得到的数据,又称计数数据,所
有这些数据全部都是整数,而且不能再细分,也不能进一步提高他
们的精确度。
连续型数据:变量可以在某个范围内取任一数,即变量的取值可以是连续的,
如,长度、时间、质量值等,这类整数通常是非整数,含有小数部分。
注意:只要记住一点,离散型是区间内不可分,连续型是区间内可分
2.2可用数据集:
2.3常用数据集数据结构:
三、机器学习中数据的特征工程:
3.1什么是特征工程?
特征工程是将原始数据转换为更好地代表预测模型的潜在问题的特征的过程,
从而提高了对未知数据的模型准确性
3.2 Scikit-learn库:
介绍:Scikit-learn库是Python语言的机器学习工具
Scikit-learn库包括许多知名的机器学习算法的实现
Scikit-learn库文档完善,容易上手,丰富的API,使其在学术界颇受欢迎。
目前稳定版本0.18
安装:pip install Scikit-learn
注意:安装scikit-learn需要Numpy,pandas等库
使用:import sklearn
四、机器学习中数据的特征抽取:
4.1为什么要进行特征抽取?
特征抽取可以对文本进行特征值化,使计算机可以更好地理解数据
4.2利用Scikit-learn库实现特征抽取:
4.2.1字典特征抽取:
类:sklearn.feature_extraction.DictVectorizer
语法:
使用流程:
4.2.2文本特征抽取:
类:sklearn.feature_extraction.text.CountVectorizer
语法:
使用流程:
4.2.3使用jieba分词对中文进行特征值化:
安装:pip install jieba
使用:
4.2.4使用TF-IDF:
TF-IDF的中心思想:如果某个词或短语在一篇文章中出现的概率高,
并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,
适合用来分类。
TF-IDF的作用:用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。
类:sklearn.feature_extraction.text.TfidfVectorizer
语法:
五、机器学习中数据的特征处理:
5.1什么是特征处理:
通过特定的统计方法(数学方法)将数据转换成算法要求的数据
5.2特征处理的分类:
数值型数据:
1、归一化:
特点:通过对原始数据进行变换把数据映射到(默认为[0,1])之间
原理:
使用:
sklearn.preprocessing.MinMaxScaler
流程:
1、实例化MinMaxScalar
2、通过fit_transform转换
总结:注意在特定场景下最大值最小值是变化的,
另外,最大值与最小值非常容易受异常点影响,
所以这种方法鲁棒性较差,只适合传统精确小数据场景。
2、标准化:
特点:通过对原始数据进行变换把数据变换到均值为0,方差为1范围内
原理:
使用:scikit-learn.preprocessing.StandardScaler
语法:
流程:
总结:在已有样本足够多的情况下比较稳定,适合现代嘈杂大数据场景。
3、缺失值
处理方法:
删除:如果每列或者行数据缺失值达到一定的比例,建议放弃整行或者整列
插补:可以通过缺失值每行或者每列的平均值、中位数来填充
使用:sklearn.preprocessing.Imputer
语法:
流程:
类别型数据:one-hot编码
时间类型:时间的切分