大师兄的数据分析学习笔记(十三):特征预处理(四)

2022-06-17  本文已影响0人  superkmi

大师兄的数据分析学习笔记(十二):特征预处理(三)
大师兄的数据分析学习笔记(十四):机器学习与数据建模

五、特征降维

1. 无监督方法
  • 求特征协方差矩阵;
  • 求协方差的特征值和特征向量;
  • 将特征值按照从大到小的顺序排列,选择其中最大的k个;
  • 将样本点投影到选取的特征向量上
2. 监督学习方法
  • 首先计算每个标注下,每个特征的均值:\mu_0 = \frac{1}{n_0}\sum_{x{\in}X_0}x \mu_1 = \frac{1}{n_1}\sum_{x{\in}X_1}x
  • 接下来最大化一个函数,函数变量为参数\omegaJ(\omega) = \frac{||\vec{\omega}_0^T(\vec{X}_0-\mu_0)-\vec{\omega}_1^T(\vec{X}_1-\mu_1)||^2}{\vec{\omega}_0^T(\vec{X}_0-\mu_0)(\vec{X}_0-\mu_0)^T\vec{\omega}_0+ \vec{\omega}_1^T(\vec{X}_1-\mu_1)(\vec{X}_1-\mu_1)^T\vec{\omega}_1}
  • 为了解决两个子矩阵尺寸大小不一致的情况,需要将公式进行等效:maxJ(\omega) = \frac{\omega^TS_b\omega}{\omega^TS_\omega\omega}
  • 计算出\omega后,就确定了新的空间下,分离程度最大的方向:
>>>import os
>>>import pandas as pd
>>>from sklearn.discriminant_analysis import LinearDiscriminantAnalysis

>>>df = pd.read_csv(os.path.join(".", "data", "WA_Fn-UseC_-HR-Employee-Attrition.csv"))
>>>data = pd.concat([df.HourlyRate,df.Education,df.JobSatisfaction],axis=1)
>>>print(data)
      HourlyRate  Education  JobSatisfaction
0             94          2                4
1             61          1                2
2             92          2                3
3             56          4                3
4             40          1                2
          ...        ...              ...
1465          41          2                4
1466          42          1                1
1467          87          3                2
1468          63          3                2
1469          82          3                3
>>>LDA = LinearDiscriminantAnalysis(n_components= 1 ).fit_transform(data,df.HourlyRate)
>>>print(LDA)
[[-0.6015412 ]
 [-1.96727988]
 [-0.80987762]
 ...
 [-0.06914822]
 [-0.06914822]
 [ 0.1391882 ]]

六、特征衍生

  • 加减乘除
  • 求导或高阶求导
  • 人工归纳,也就是引入常识性相关的特征因素。
上一篇 下一篇

猜你喜欢

热点阅读