在机器学习领域,数据预处理对于我们之后的数据训练起着非常关键的作用,Feature Selections 作为数据预处理中非常重要的一个步骤,可以说他起着决定性的作用,那么今天我们就来探究一下几种数据预处理的方法(我们选取Python语言以及他的Sklearn机器机器学习库,以及Penrose_Hourly AggregateData_Jan2016Dec2020(这个数据是2020年空气PM2.5含量的数据,我们能够对PM2.5的含量进行回归预测根据其他的属性和指标),作为我们的测试数据,我们来进行演示)。

首先我们能够使用Pandas为我们封装好的corr方法进行数据相关性的排序,然后对数据进行选择,pandas的corr提供三种方法计算数据相关性,分别是:

        pearson, kendall,spearman

Pearson:公式自行百度,我这里主要介绍怎么用以及计算出来的结果是什么。

import pandas as pd
import numpy as nppath = '../data/Penrose_Hourly AggregateData_Jan2016Dec2020 (1).csv'
air_data = pd.read_csv(path)
#handler na
air_datas = air_data.dropna()
#features selection use spearman or pearson
corr = air_datas.corr()

使用以上的代码,我们就能够从pandas中读取数据,调用corr方法,计算相关度,当我们默认什么也不传的时候直接调用的就是Pearson相关性方法对数据进行相关性计算,计算出来的结果如下:

如上图所示就是计算出来的记过,其中我们会发现,我画红线的地方,每行每列对应一个数据,他是一个二位矩阵,每一个数字代表的意思就是这列和这行的相关性,比如(Air Temp,Air Temp)就是代表的Air Temp和Air Temp的相关性,因为air temp和自己的相关性是1 所以计算的没有毛病。比如说第二个(Air Temp,Relative Humidity)就代表Air Temp和Relative Humidity的相关性,同时我们还可以发现他是一个对称的矩阵,我们也可以只用一个上三角矩阵来表示它,或者只用一个下三角矩阵去表示它。

air_data = pd.read_csv(path)
#handler na
air_datas = air_data.dropna()
#features selection use spearman or pearson
corr = air_datas.corr('spearman')

同时我们还能用,spearman方法计算相关性,只需要后面填入spearman就可以了。他的结果和Pearson的结果一样,都是一个对称矩阵。

以上就是两个Pandas为我们提供的计算方法,同时Sklearn里面也封装这两个方法,我们只需要调用相关的函数和pandas的结果差不多,都是一个对称矩阵。

下面介绍Sklearn的SelectKBest这个类也为我们封装了很多的计算相关性的方法,这些方法也能用于Feature Selection,以下代码:

from sklearn.feature_selection import SelectKBest
from sklearn.feature_selection import chi2,f_regression# columns =  [i for i in air_datas]
#带预测的值 是PM2.5 所以我们把PM2.5作为y放入
y = air_datas["PM2.5"]
#提取"PM2.5","Timestamp (UTC+12:00)" 一个是带预测的值,一个是时间没有相关性。
X = air_datas.drop(["PM2.5","Timestamp (UTC+12:00)"],axis=1)# apply SelectKBest class to extract top 10 best features
bestfeatures = SelectKBest(score_func=f_regression, k=5)
fit = bestfeatures.fit(X,y)
dfscores = pd.DataFrame(fit.scores_)
dfcolumns = pd.DataFrame(X.columns)
featureScores = pd.concat([dfcolumns,dfscores],axis=1)
featureScores.columns = ['Specs','Score']
# print(featureScores.nlargest(5,'Score'))dict_feature_selected = featureScores.nlargest(5,'Score').to_dict()
specs_names_dict = dict_feature_selected["Specs"]
specs_names = [specs_names_dict[i] for i in specs_names_dict]

这个代码借助Sklearn的SelectKBest去进行Feature Selection,同时他的第一个参数就是我们设置的评估函数,我们能够设置:chi2,f_regression,chi2,f_oneway这几个函数作为我们的评估函数,对数据进行评估。

数据预处理之特征选择(Feature Selections Methods)相关推荐

  1. 数据预处理和特征选择

    背景介绍 结合网上一些相关资料,我们整理输出了这篇文章,本文说明了数据的重要性以及数据在各个环节和领域地位.更重要的是,这篇文章会详尽的讲解数据预处理和特征选择的原理及方法细节. 数据是什么? 通过观 ...

  2. 机器学习过程中的数据预处理和特征选择方法

    1.数据清洗 数据清洗(data cleaning)是在机器学习过程中一个不可缺少的环节,其数据的清洗结果直接关系到模型效果以及最终的结论.在实际的工作中,数据清洗通常占开发过程的50%-80%左右的 ...

  3. 机器学习-第三方库(工具包):scikit-learn【用于特征工程(主要分为三部分:数据预处理、特征选择、降维)】【Sklearn模块中包含常用的算法】

    sklearn是Python语言的机器学习工具 sklearn是做特征工程(做模型调算法)最常用也是最好用的工具没有之一. Scikit-learn包括许多知名的机器学习算法的实现(算法原理一定要懂) ...

  4. 负数如何归一化处理_机器学习之数据预处理

    第一节:前言 数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已.由此可见,特征工程在机器学习中占有相当重要的地位. 特征工程:利用数据领域的相关知识来创建能够使机器学习算法达到最佳性能 ...

  5. 数据预处理与特征工程—12.常见的数据预处理与特征工程手段总结

    文章目录 引言 1.数据预处理 1.1 数据清洗 1.1.1 异常值处理 1.1.2 缺失值处理 1.2 特征预处理 1.2.1 数值型特征无量纲化 1.2.2 连续数值型特征分箱 1.2.2.1 无 ...

  6. 机器学习数据预处理代码汇总(最新更新20年3月1日)

    这篇博客用一个pandas的DataFrame类型的数据为例,字段名为了不与任何第三方库混淆,我们叫他 dataframe 这篇博客没有长篇大论,就是希望能够让大家直接复制代码,然后把datafram ...

  7. 数据预处理Part4——数据离散化

    文章目录 离散化,对数据做逻辑分层 1. 什么是数据离散化? 2. 为什么要将数据离散化 3. 如何将数据离散化? 3.1 时间数据离散化 3.2 多值离散数据离散化 3.3 连续数据离散化 3.4 ...

  8. 数据预处理Part2——数据标准化

    文章目录 数据标准化 1. 实现归一化的Max-Min 2. 实现中心化和正态分布的Z-Score 3. 用于稀疏数据的MaxAbs 4. 针对离群点的RobustScaler 5. 标准化后数据可视 ...

  9. 数据预处理Part9——数据降维

    文章目录 1. 什么是数据降维? 2. 为什么要进行数据降维? 3. 降维是如何实现的? 4. sklearn中的降维算法 4.1 主成分分析PCA 4.2 因子分析FA 4.3 独立成分分析ICA ...

最新文章

  1. 数据挖掘之聚类k-means
  2. selenium学习笔记(一)
  3. 招不到电子工程师,这锅谁来背?
  4. C++基础知识(一)—— C++程序结构
  5. 《ArcGIS Runtime SDK for Android开发笔记》——问题集:.geodatabase创建,创建时内容缺失问题总结...
  6. C# 套接字编程:Scoket,我用Scoket做的C# Windows应用程序如下:
  7. 虚拟机管理解决方案逐个看:微软篇
  8. Linux CentOS 重置root密码
  9. 《特征工程入门与实践》读书笔记一
  10. 相机标定中的四个坐标系
  11. 弓形锯床主传动及工作机构设计
  12. 段码屏配套的背光源怎么设计?
  13. Android RGB与int型颜色互转
  14. 计算机双代号网络图,双代号网络图计算机自动绘制研究.pdf
  15. 一张图看懂在北京买房不同贷款方式的差别
  16. 灰度共生矩阵的原理及实现(特征提取)-OpenCV
  17. ipvs命令~创建VS/NAT模式集群
  18. c语言简单的字符串处理
  19. 什么是计算机器语言?
  20. Oracle配置服务

热门文章

  1. C++ 对OPENCV rect矩形进行颜色填充
  2. Android 跑马灯的方法
  3. hexo博客如何绑定个人域名
  4. User Interface Process(UIP) Application Block 2.0 研究总结
  5. 对于木马的一些介绍(预防木马)
  6. 硬盘初始化分区选择GPT还是MBR?
  7. 在线计算机长度,长度单位在线换算器
  8. DXP封装中如何实现开孔
  9. 【darknet源码解析-24】shortcut_layer.h 和 shortcut_layer.c 解析
  10. 信号调理(信号调理)