sklearn的学习笔记

一、sklearn 的数据集和sklearn的API

sklearn数据集加载

sklearn.datasets
   加载数据集
   datasets.load_*()
       获取小规模数据集,数据包含在datasets中
       sklearn.datasets.load_iris() 加载并返回鸢尾花数据集
       sklearn.datasets.load_boston()加载并返回波士顿房价数据集
   datasets.fetch_*(data_home=MNOne)
       获取大规模数据集,需要从网上下载
       data_hone:表示数据集下载的目录,默认是~/sklearn_learn_data/
       subset:'train'或者'test''all',选择加载数据集的某一部分,对应着训练集,测试集,全部
加载数据集的返回值
   data:特征数据数组,是 [n_samples * n_features] 的二维 numpy.ndarray 数组
   target:标签数组,是n_samples 的一维 numpy.ndarray 数组
   DESCR:数据描述
   feature_names:特证名
   target_names:标签名

数据集的划分

训练集:用于训练,构建模型
测试集:模型检验,评估模型

sklearn.model_selection.train_test_split()
   数据集的特征值
   y 数据集的标签值
   test_size 测试集的大小,一般为float
   random_state 随机数种子,不同的种子会造成不同的随机采样结果。相同的种子采样结果相同。
   return 测试集特征训练集特征值值,训练标签,测试标签(默认随机取)

二、特征工程

机器学习领域的大神Andrew Ng(吴恩达)老师说“Coming up with features is difficult, time-consuming, requires expert knowledge. “Applied machine learning” is basically feature engineering. ”

什么是特征工程

特征工程是使用一些方法处理数据,使得特征能在机器学习中发挥更好的作用的过程。
特征工程:

  • 特征抽取
  • 特征预处理
  • 特征降维

特征提取

将数据转换为可用于机器学习的数字特征

  • 字典特征提取
  • 文本特征提取
  • 图像特征提取
sklearn.feature_extraction
字典特征提取
sklearn.feature_extraction.DictVectorizer(sparse=True,...)
DictVectorizer.fit_transform(x):
对数据进行某种统一处理(比如标准化~N(0,1),将数据缩放(映射)到某个固定区间,归一化,正则化等)
	X:字典或者包含字典的迭代器
	返回值:返回sparse矩阵
DictVectorizer.inver_transform(x)
	X:array数据或者sparse矩阵
	返回值:转换之前数据格式
DictVectorizer.get_feature_names()
	返回类别名称
DictVectorizer.transform(X)
	按照原先的标准转换
文本特征提取
sklearn.feature_extraction.text.CountVectorizer(stop_words=[])
    返回词频矩阵
CountVectorizer.fit_transform(X)
    X:文本或者包含文本字符串的可迭代对象 
    返回值:返回sparse矩阵
CountVectorizer.inverse_transform(X) 
    X:array数组或者sparse矩阵
    返回值:转换之前数据格
CountVectorizer.get_feature_names() 
    返回值:单词列表
sklearn.feature_extraction.text.TfidfVectorizer

特征预处理

provides several common utility functions and transformer classes to change raw feature vectors into a representation that is more suitable for the downstream estimators.

  • 归一化
  • 标准化
    特征的单位或者大小相差较大,或者某特征的方差相比其他的特征要大出几个数量级容易影响(支配)目标结果,使得一些算法无法学习到其它的特征。
sklearn.preprocessing
归一化

把原始数据变化映射到[0,1]之间

x' = x-min/max-min
x" = x'*(mx-mi)+mi
sklearn.preprocessing.MinMaxScaler (feature_range=(0,1))
MinMaxScalar.fit_transform(X)
    X:numpy array格式的数据[n_samples,n_features]
    返回值:转换后的形状相同的array
标准化

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

sklearn.preprocessing.StandardScaler( )
处理之后每列来说所有数据都聚集在均值0附近标准差差为1
StandardScaler.fit_transform(X)
     X:numpy array格式的数据[n_samples,n_features]
     返回值:转换后的形状相同的array
  • 对于归一化来说:如果出现异常点,影响了最大值和最小值,那么结果显然会发生改变
  • 对于标准化来说:如果出现异常点,由于具有一定数据量,少量的异常点对于平均值的影响并不大,从而方差改变较小。

4.特征降维

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

正是因为在进行训练的时候,我们都是使用特征进行学习。如果特征本身存在问题或者特征之间相关性较强,对于算法学习预测会影响较大

  • 特征选择
  • 主成分分析
特征选择

数据中一般都会包含冗余的、无关的变量,所以我们要选择出主要特征
方法:
Filter(过滤式):主要探究特征本身特点、特征与特征和目标值之间的关联

  • 方差选择:低方差特征过滤
    删除低方差
    特征方差小:某个特征大多样本的值比较相近
    特征方差大:某个特征很多样本的值都有差别
sklearn.feature_selection.VarianceThreshold(threshold=0.0)
   删除所有低方差特征
   Variance.fit_transform(X)
      X:numpy array格式的数据[n_samples,n_features]
      返回值:训练集差异低于threshold的特征将被删除。 默认值是0.0,即保留所有非零方差特征,删除所有样本中具有相同值的特征

相关系数

皮尔逊相关系数(Pearson Correlation Coefficient):反映变量之间相关关系密切程度的统计指标
特点
​ 相关系数介于-1和1之间

  1. 当r>0,表示正相关,反之负相关

  2. | r| =1 ,表示两变量完全相关,r = 0,表示无相关关系

  3. 0 < | r | <1 ,存在一定相关关系。| r | 越接近1,相关性越强,接近0,相关性越弱

  4. 一般可按三级划分:|r|<0.4为低度相关;0.4≤|r|<0.7为显著性相关;0.7≤|r|<1为高度线性相关

    scipy.stats.pearsonr(x,y)
      x : (N,) array_like
      y : (N,) array_like Returns: (Pearson’s  correlation coefficient, p-value)
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值