机器学习基础篇_1/2

2022-07-25 16:49:24 浏览数 (1)

概述

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

数据集的构成

存储类型:文件格式(如csv)

  1. 可用的数
  • scikit-learn
  • Kaggle
  • UCI
  1. 常用数据集数据的结构组成 结构:特征值 目标值 处理:
  • pandas:一个数据读取非常方便以及基本的处理格式的工具
  • sklearn: 对于特征的处理提供了强大的接口

特征工程

概念

将原始数据转换为更好地代表预测模型的潜在问题的特征的过程,从而提高了对位置数据的预测准确性

意义

直接影响预测结果

工具

scikit-learn 库

安装:pip3 install Scikit-learn (需安装pandas)

特征抽取

字典特征抽取
  • 文字 –> 提取数据
  • 方法:
代码语言:javascript复制
from sklearn.feature_extraction import DictVectorizer
d = DictVectorizer(sparse=True)
  1. DictVectorizer.fit_transform(x)
  • X: 字典或者包含字典的迭代器
  • 返回值:返回sparse矩阵 返回的字典中包含:对于非数字的字段以’字段名=字段值’的形式 ​ 对于数字的字段以’字段名’的形式
  1. DictVectorizer.inverse_tranform(x)
  • X: array数组或者sparse矩阵
  • 返回值:转换之前数据格式(即就是字典类型的列表)
  1. DictVectorizer.get_feature_names()
  • 返回类别名称
  1. DictVectorizer.transform(x)
  • 按照原先的标准转换
文本特征抽取

文本分类

数据的处理方式

  • 数值型:标准的缩放
    • 归一化
    • 标准化
    • 缺失值
  • 类别型:one-hot编码
  • 时间型:时间的切分

归一化

特点

通过对原始数据进行变换把数据映射到(默认为[0, 1])之间。

在多个特征同等重要时使用。因为在这中情况下,在计算过程中,如果某一项的值特别大,则对于结果的影响也 会特别大,从而使得各个特征之间达不到同等重要的效果,因此需要归一化到统一级别下进行计算,这样才能达到多个特征同等重要的效果。

公式

X’ = frac{x-min}{max-min}
X” = X’ * (mx-mi) mi

其中:作用于每一列,max为一列的最大值,min为一列的最小值,那么X’‘ 为最终结果,mx,mi分别为指定区间值,默认为mx=1,mi = 0。

API

类:sklearn.preprocessing.MinMaxScaler

用法: mms = MinMaxScalar9feature_range={0, 1})

函数:fit_transform(X) 其中X为numpy

array格式的数据[n_samples, n_features],是二维数组 。返回值为转换后的形状

异常点

影响:max、min

标准化

特点

通过对原始数据进行交换吧数据交换到均值为0, 标准差为1范围内

公式

x’ = frac{(x-mean)}{sigma}

注:作用于每一行,mean为平均值,var为方差,

var=frac{(x1-mean)^2 (x2-mean)^2 ..}{n}
sigma = sqrt var

方差考量的是数据的稳定性。

异常点

影响:平均值的影响并不大,从而方差改变较小。

API

类:scikit-learn.preprocessing.StandarScaler 处理之后每列来说所有数据都聚集在均值0附近,标准差为1。

函数:

  • StandardScaler.fit_transform(X)
    • X: numpy array 格式的数据[n_samples, n_features]
    • 返回值:转换后的形状相同的array
  • StandardScaler.mean_ 原始数据中每列特征的平均值
  • StandardScaler.std_ 原始数据每列特征的方差

特征选择

数据降维:维度是指特征的数量。

概念

是单纯地从提取到的所有特征中选择部分特征作为训练集特征,特征在选择前和选择后可以改变值、也不改变值,但是选择后的特征维数肯定比选择前小,毕竟我们值选择了其中的一部分特征。

方法

Filter

0 人点赞