一、定义

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

1.数据集的构成:特征值+目标值

每一行的数据称为样本;有些数据可以没有目标值

二、机器学习算法分类

(一)监督学习

1.特征值:猫和狗的图片   目标值:猫和狗---类别

属于分类问题

2.特征值:房屋的各个属性信息   目标值:房屋价格---连续性数据

属于回归问题

(二)无监督学习

1.目标值:无---无监督学习

三、sklearn数据集

1.可用数据集   

学习阶段可用数据集scikit-clean 安装库pip3 install Scikit-learn==0.19.1

                                 kaggle,UCI

2.sklearn数据集

sklearn.datasets 加载获取流行数据集

    datasets.load_*()  获取小规模数据集

    datasets.fetch_*()  获取大规模数据集

    (1)sklearn小数据集

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

    (2)sklearn大数据集

         sklearn.datasets.fetch_具体数据名字(data_home=None,subset='train')

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

     (3)数据集的返回值

          datasets.base.Bunch(继承自字典)

                 获取键值对方式:dict["key"]=values

                                              bunch.key=values

 3.数据集的划分

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

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

                      测试集:20%--30%

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

                         x_train,             x_test,               y_train,             y_test

四、特征工程介绍

4.1. 特征提取
         将任意数据(如文本或图像)转换为可用于机器学习的数字特征
         注意:特征值化是为了计算机更好的去理解数据

         字典特征提取(特征离散化)

         文本特征提取

        2.特征提取API

              sklearn.feature_extraction
  4.2.字典特征提取

其中sparse=False返回二维数组,sparse=True返回sparse矩阵

字典特征提取——类别——数学公式

父类:转换器类

返回sparse矩阵

      spares  稀疏:将非零值   按位置表示出来,可以节省内存,提高加载效率

应用场景:1)pclass ,sex 数据集当中类别特征比较多时

                        1.将数据集的特征->字典类型

                         2.DictVectorizer转换

                   2)本身拿到的数据就是字典类型


4.3文本特征提取

单词  作为  特征

句子,短语,单词,字母

特征:特征词

方法1:CountVectorizer    :统计每个样本特征词出现的个数    (stop_words [ ] 停用词)

步骤:

1.实例化一个转换器类

2.调用fit_transform

中文文本特征提取:需要使用jieba进行分词。

方法2:TfidfVectorizer  :寻找关键词

4.4Tf-idf 文本特征提取

其主要思想是:如果某个词或者短语在一篇文章中出现的概率高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来做分类。

TF-IDF作用:用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。

4.4.1公式

5.特征预处理
5.1定义

特征与处理是一些转换函数将特征数据转换成更加适合算法模型的特征数据过程。

1 包含内容

数值型数据的无量纲化:

归一化(鲁棒性较差,只适合传统精确小数据场景)

标准化(适合复杂场景)

2 特征预处理API

sklearn.preprocessing

5.2 归一化

举例:以60为例子

步骤:1 实例化一个转换器类 2 调用fit_transform

5.3标准化

标准差:集中程度

对于归一化;如果出现异常点,影响了最大值和最小值,那么结果显然会发生改变。

对于标准化,如果出现异常点,由于具有一定数据量,shaom两点异常点对于平均值的影响并不大,从而方差改变较小。

6.特征降维
6.1降维

定义:降维是指在某些限定条件下,降低随机变量(特征)个数,得到一组“不相关”主变量的过程。(特征与特征不相关)

6.2降维的两种方式

1  特征选择

2 主成分分析(可以理解一种特征提取的方式)

6.3特征选择
6.3.1定义

数据中包含冗余或相关变量(或称特征、属性、指标等),旨在从原有特征中找出主要特征

 6.3.2找出冗余或相关变量的方法

模块:sklearn.feature_selection

6.3.3过滤式

1.低方差特征过滤

2.相关系数

皮尔逊相关系数:反应变量之间相关关系密切程度的统计指标。

6.4主成分分析
6.4.1定义

高维数据转化为低维数据的过程,在此过程中可能会舍弃原有数据、创造新的变量。

6.4.2作用

是数据维数压缩,尽可能降低原数据的维数(复杂度),损失少量信息。

6.4.3应用

回归分析或者聚类分析当中

6.4.4 API

sklearn.decomposition.PCA(n_components=None)

将数据分解为较低维度数空间

n_components:

        小数:表示保留百分之多少的信息

        整数:减少到多少特征

PCA.fit_transform(X) X:numpy array格式的数据

[n_samples.n_features]

返回值:转换后指定维度的array

def pca_demo():
data=[[2,8,4,5],[6,3,0,8],[5,4,9,1]]
#实例化一个转换器类
transfer=PCA(n_components=2)
#调用fit_transform
data_new =transfer.fit_transform(data)
print("data_new:\n",data_new)
return None

总结:

机器学习包括数据,模型,预测

数据:数据集构成——特征值和目标值

机器学习算法分类:监督学习(有目标值)——分类算法(目标值类型是类型),回归算法(目标类型是连续性数值)

                                 无监督学习(没有目标值)——聚类

机器学习开发流程:获取数据——数据处理——特征工程——机器学习算法训练-模型——模型评估——应用

特征工程:数据集——可用数据集

                                     sklearn数据集(load_*小规模数据集;fetch_*大规模数据集。返回Bunch                                         类型数据)

                   特征抽取——字典特征抽取(DictVectorizer;sparse矩阵-节省空间)

                                         文本特征抽取(CountVectorizer;TfidfVectorizern)

                    特征预处理——无量钢化(归一化,容易受到异常值影响;标准化)

                    特征降维——特征选择——过滤式(删除低方差特征;相关系数)

                                          主成分分析

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐