利用Python进行数据特征处理
1.特征抽取
①字典特征抽取
from sklearn.feature_extraction import DictVectorizer
def dictvec():list=[{'city':'北京','temperature':100},{'city':'上海','temperature':80},{'city':'广州','temperature':20}]dict=DictVectorizer() //这里有个参数 如果不想输出为sparse矩阵可以dict=DictVectorizer(sparse=False)进行输出为数组的形式data=dict.fit_transform(list)print(data)
返回的数据格式:sparse矩阵
就是下面这个数组的描述 有值的描述((0,1)就表示在下面的数组中第0行第1列的值为1表示代表为“北京”)
②文本特征抽取
统计文本出现次数
可以用于文本分类 情感分析
这个对单个字符没有进行统计
对于英文不需要进行数据提前处理,但是**中文需要提前进行分词处理**(jieba分词)
```
from sklearn.feature_extraction.text import CountVectorizer,TfidfVectorizer
def countvec():list=["life is short,i like python","life is too long,i dislike python"]cv=CountVectorizer()data=cv.fit_transform(list)print(cv.get_feature_names())print(data.toarray())
```
中文分词处理
主要是利用jieba
```
import jieba
def cutwords(list1):result=[]for words in list1:word=jieba.cut(words)word_list=list(word)result.append(' '.join(word_list))return result
```
TF-IDF方法
如果一个词在一篇文章中出现频率较高,而在别的文章中出现频率不高 那这些词可以很好的用来分类
tf:term frequency 词的频率
idf:inverse document frequency 逆文档频率 log(总文档数量/该词出现的文档数量)
重要性程度:tf*idf
```
from sklearn.feature_extraction.text import CountVectorizer,TfidfVectorizer
def tfidfvec():list=["我爱场景,是的","这里是华南理工大学外语调频台","我是张海玲代号小饼干","小明硕士毕业于中国科学院计算所,后在日本京都大学深造"]result_list=cutwords(list) # 分词之后的结果# print(result_list)tf = TfidfVectorizer() data = tf.fit_transform(result_list) # 将分词之后的结果输入到transform中print(tf.get_feature_names())print(data.toarray())
```
2.特征预处理
通过一些数学方法将数据转成算法需要的数据
数值型数据:
1.归一化(不太常用)、2.标准化(比较常用)、3.缺失值
**缩放目的:使得一个特征对最终结果不会造成较大的影响**
归一化
通过对原始数据进行变换把数据映射到默认0到1之间
$$
x'=(x-min)/max-min
$$
$$
x''=x'*(mx-mi)+mi
$$
x''为最终归一化的结果,max表示一列中最大的数,min表示一列中最小的数,mx表示想映射的区间的最大值,mi表示想映射区间的最小值
归一化的**目的**:**使得一个特征对最终结果不会造成较大的影响**
比如有一个特征的值都是较大的数,如果直接用原始数据进行算法计算的话,会造成这些较大的数对最终结果产生较大的影响
缺点:在特定场景下最大值和最小值是变化的,而且最大值和最小值很容易受**异常点**的影响。鲁棒性较差,只适合传统精确小数据场景
```
from sklearn.preprocessing import MinMaxScaler
'''
归一化处理
这里输入的数据是二维数组
多个特征的数据
'''
def mn():mn=MinMaxScaler()data=mn.fit_transform([[90,2,10,40],[60,4,15,45],[75,3,13,46]])print(data)
```
标准化
通过对原始数据进行变换将数据变换到均值为0,标准差为1的范围内:(转换后的数据 每个特征的平均值都为0,标准差都为1)
$$
x'=(x-mean)/\sigma
$$
mean为平均值
$$
\sigma为标准差,var为方差 var=\frac{(x1-mean)^2+(x2-mean)^2+....}{n(每个特征的样本数)}
$$
异常点对平均值影响不大(具有一定的数据量,少量的异常点对平均值影响不大)
方差考量数据的稳定性(如果数据比较集中 方差比较小;如果数据比较分散,方差比较大)
``` from sklearn.preprocessing import StandardScaler def stand():stand=StandardScaler()data = stand.fit_transform([[90, 2, 10, 40], [60, 4, 15, 45], [75, 3, 13, 46]])print(data) ```
缺失值
删除:当缺失值过多建议直接放弃整行或者整列
插补 :可以通过缺失值每行或没列的平均值、中位数进行填充
利用Python进行数据特征处理相关推荐
- python画曲线图-利用python绘制数据曲线图的实现
"在举国上下万众一心.众志成城做好新冠肺炎疫情防控工作的特殊时刻,我们不能亲临主战场,但我们能坚持在大战中坚定信心.不负韶华." 1.爬取新闻保存为json文件,并将绘图所需数据保 ...
- 实战教程!利用Python获取数据,并在地图上批量标注
我们想要在地图上批量标注某一类的大量点位,该怎么操作呢?没有它的坐标数据,就没有办法批量标注.今天给大家介绍下,来自图新地球用户王泽的原创教程--利用Python获取数据,并在地图上批量标注的方法! ...
- 利用python进行数据分析学习笔记
利用python进行数据分析 numpy:数组与向量化计算 pandas pandas读取和写入数据集及文件格式 数据清洗与准备 数据规整:连接.联合和重排列 绘图与可视化 数据聚合与分组操作 时间序 ...
- python运行excel高级筛选怎么用_懂点EXCEL就行!教你利用Python做数据筛选(上)...
前言 Python的数据清洗功能有多厉害,相信不用我说大家都知道了,寥寥几行代码便可以把一份杂乱无章的表格给处理的干干净净.但是python也是不容易入门的,毕竟编程语言要理解和精通也是要花不少功夫的 ...
- python数据处理可以做什么菜_厌倦了EXCEL想玩点新花样?教你利用Python做数据筛选(下)...
前言 回顾一下上次的案例模型,我们知道了只要写3行代码,就可以利用python对EXCEL数据做简单的筛选,说明了python是一门非常简单和实用的数据分析工具.前面学过的这几句简单的语言,不知道你们 ...
- python excel筛选统计_懂点EXCEL就行!教你利用Python做数据筛选(上)
前言 Python的数据清洗功能有多厉害,相信不用我说大家都知道了,寥寥几行代码便可以把一份杂乱无章的表格给处理的干干净净.但是python也是不容易入门的,毕竟编程语言要理解和精通也是要花不少功夫的 ...
- python做excel数据条件_懂点EXCEL就行!教你利用Python做数据筛选(上)
前言 Python的数据清洗功能有多厉害,相信不用我说大家都知道了,寥寥几行代码便可以把一份杂乱无章的表格给处理的干干净净.但是python也是不容易入门的,毕竟编程语言要理解和精通也是要花不少功夫的 ...
- python数据逆透视_利用Python实现数据逆透视
Hello大家好,欢迎来到[统计GO],本公众号定期分享一些好用的数据分析工具,帮助大家花更少的时间学更多的知识. 如果本期内容(使用Python实现逆透视)对您有所帮助,记得及时关注. 背景介绍 今 ...
- python怎样显示表格数据匹配_利用Python实现数据匹配(vlookup)
平时我们经常会制作周报.月报这种Excel操作相同的报表,我们可以使用python的pandas库对其进行自动化.这篇文章就演示了利用python实现使用Excel中的vlookup函数,并将其脚本封 ...
最新文章
- 大数据实战项目之海量人脸特征检索解决方案演进
- silverlight 跨域文件位置
- 字节流练习:图片复制
- 轻量级RTSP服务存在的意义
- android 上传头像工具类,Android开发中如何实现头像的更换与上传
- 7的整除特征 三位一截_茅台酒的合格证有哪些特征和鉴别要点?
- 学生成绩管理系统源码
- 论文《基于FPGA 的CFAR 设计与实现》复现
- display:weston:desktop xdg-shell
- Python生成器教程
- october cms_October CMS静态页面入门
- 基于深度学习的单视图三维重建算法学习路线
- JVM内存管理及垃圾回收
- 小学计算机课后作业,小学信息技术课后作业设计研究
- 五年级上册计算机工作总结,五年级上册信息技术教学工作总结
- java异常捕获_java之异常捕获
- 关于setTimeout多次点击会多次执行方法导致运行速度加快的问题
- Media Player Classic - HC 源代码分析 14:PIN连接过程中推模式和拉模式区别
- element日历组件只显示月和日,把年份隐藏掉
- 6种提高客户满意度的方法
热门文章
- 定位mp4文件没有声音或杂音问题的分析与总结
- 互斥锁的使用(CreateMutex等使用)
- Qt笔记(五十六)之网页调用Activate控件
- java 封装表单数据类型_ActionForm封装字段的数据类型 | 学步园
- Bash read命令
- 排序(Sort)知识点归纳
- php开发mac 系统好吗,做web前后端开发,Mac苹果电脑,是最佳装备吗
- LinearLayout(线性布局)的基本使用
- 重装战姬显示未连接到服务器,《重装战姬》常见问题FAQ大全 公测常见问题汇总解答...
- 使用Hisi图像调试工具