# 特征处理
# 特征预处理:通过统计方法将数据转换为算法需要的数据
# 数值型数据:标准缩放
# 规依法,标准化(常用,适用于当前大数据),缺失值处理(删除,填补中位数平均数,通常按照列填补)
# 类别型数据:ont-hot编码
# 时间类型:时间的切分
# 特征处理API sklearn.preprocessing
# ==============================================
# 归一化:对数据变化--->默认[0,1]之间
"""
new = (old-min)/(max-min) max,min 为某列最大值最小值
new2 = new*(mx-mi)+mi mx mi 为指定的区间默认
new2 即为转换后的值
MinScalar(feature_range=(0,1)...) 缩放函数
"""
# 当数据的n个特征同等重要的时候,要进行归一化,
# 使得某一个特征对最终结果不会造成更大的影响(其实主要与算法有关,)
# 容易受异常点影响,容易更改max,min的值
from sklearn.preprocessing import MinMaxScaler
matrix = [
[90,2,10,9000],
[60,4,15,45],
[75,3,13,46],
]
def mm():
"""
归一化处理
:return:
""" mms = MinMaxScaler(feature_range=(2,3))
data = mms.fit_transform(matrix)
print(data)
"""
[[3. 2. 2. 2. ]
[2. 3. 3. 2.83333333]
[2.5 2.5 2.6 3. ]]
"""
# ================================================
# 标准化(常用):使得某一特征不会对结果造成太大影响
# new=(old-平均)/标准差 对每一列来说
# 标准差 = 方差开平方
# 方差:考量数据的稳定性
# 处理后每个特征平均为0,方差为1,标准差为1
from sklearn.preprocessing import StandardScaler
def ss():
s = StandardScaler()
data = s.fit_transform(matrix)
print(data)
# =======================================
from sklearn.preprocessing import Imputer
# 填补NaN, 按照 mean, 列填补
# 数据中的缺失值要为 numpy.nan 类型 若不是 replace() 替换掉
import numpy as np
[[90, 2, 10, 9000],
[np.nan, 4, 15, 45],]
Imputer(missing_values="NaN",strategy="mean",axis=0)
Imputer(missing_values="nan",strategy="mean",axis=0)
# ====================================================== # 数据降维(注意不是数组的行数,列数) 指的是减少特征的数量
# 主要方法:特征选择,主成分分析
# 特征选择的原因:冗余,噪音
# 方式:
# 过滤式(主要过滤方差),例如方差为0的,或很小的 就可以过滤
# 嵌入式(正则化,决策树),
# 包裹式
# 神经网络
from sklearn.feature_selection import VarianceThreshold def var():
vt = VarianceThreshold(threshold=0.0) # threshold 根据情况获取
data = vt.fit_transform([
[0,2,0,3],
[0,1,4,3],
[0,1,1,3],
])
print(data)
"""
[[2 0] # 去掉了方差为0的列
[1 4]
[1 1]]
"""
# 主成分分析
from sklearn.decomposition import PCA
# PCA 分析,简化数据集的技术, 使数据压缩,减少数据维数(特征数量), 损失少量数据
# 特征数量过多的时候,考虑要不要使用使用PCA,(图片可能有上万个特征)
# 特征数量很少的时候,可以不使用
# PCA(n_components=) n_components
# 小数:指定保留的信息量 0-1之间 一般为0.90-0.95之间
# 整数:指定减少的特征数量(但自己通常不知道减少多少,因此不常使用)
def pca():
"""
主成分分析
:return:
"""
pc=PCA(n_components=0.92)
data = pc.fit_transform([
[2,8,4,5],
[6,3,0,8],
[5,4,9,1],
])
print(data)
"""
[[ 1.28620952e-15 3.82970843e+00]
[ 5.74456265e+00 -1.91485422e+00]
[-5.74456265e+00 -1.91485422e+00]]
"""
# =======================================================================
# 数据降维案例:用户对物品类别的喜好程度细分降维
# 数据:https://www.kaggle.com/c/instacart-market-basket-analysis/data
# products.csv:商品信息
# order_products_prior.csv:订单与商品信息
# orders.csv:用户订单信息
# aisles.csv:商品所属具体物品类别
# 首先表合并
import pandas as pd
data = pd.read_csv("E:\data\example\orders.csv")
print(data.head(10))
# data2 = pd.read_csv("")
# new=pd.merge(data2,data2,on=['product_id','product_id']) # 合并 两张表 on 表示以那个键合并
# 可再次合并
# -----------
# 交叉表(特殊的分组工具)
cross = pd.crosstab(data['user_id'],data['type']) # 第一个是行数据,第二个是列数据
# 第一列 为 user_id ,第一行为 物品类型
# 然后是 每个 user 买的各种物品的数量
# 显示了 用户 与他买的物品种类个数之间的关系
# 可使用pca降维 去掉无关项, 然后给算法使用 if __name__=="__main__":pass
# mm()
# ss()
# var()
# pca()

人工智能_2_特征处理.py的更多相关文章

  1. Kaggle "Microsoft Malware Classification Challenge"——就是沙箱恶意文件识别,有 Opcode n-gram特征 ASM文件图像纹理特征 还有基于图聚类方法

    使用图聚类方法:Malware Classification using Graph Clustering 见 https://github.com/rahulp0491/Malware-Classi ...

  2. C# 人工智能开源库生物特征

    C# 人工智能开源库生物特征 Machine learning made in a minute http://accord-framework.net/ Accord.NET是AForge.NET框 ...

  3. 人工智能(AI)库TensorFlow 踩坑日记之一

    上次写完粗浅的BP算法 介绍 本来应该继续把 卷积神经网络算法写一下的 但是最近一直在踩 TensorFlow的坑.所以就先跳过算法介绍直接来应用场景,原谅我吧. TensorFlow 介绍 TF是g ...

  4. 05基于python玩转人工智能最火框架之TensorFlow基础知识

    从helloworld开始 mkdir mooc # 新建一个mooc文件夹 cd mooc mkdir 1.helloworld # 新建一个helloworld文件夹 cd 1.helloworl ...

  5. 人工智能(Machine Learning)—— 机器学习

    https://blog.csdn.net/luyao_cxy/article/details/82383091 转载:https://blog.csdn.net/qq_27297393/articl ...

  6. 天池精准医疗大赛——人工智能辅助糖尿病遗传风险预测

    作为天池上的新手,第一次参加天池阿里云线上的比赛,糖尿病预测, 一般的数据挖掘比赛,流程:数据清洗,特征工程(找特征,特征组合),不断的尝试的不同算法,不断调参,也可以考虑将多个模型进行线性组合 大赛 ...

  7. 了解人工智能?-百度AI

    了解人工智能? 什么是人工智能? 由人创造的"智慧能力",同样具备智慧生物的能力 耳朵=倾听=麦克风=语音识别 ASR Automatic Speech Recognition 嘴 ...

  8. 人工智能AI-机器视觉CV-数据挖掘DM-机器学习ML-神经网络-[资料集合贴]

    说明:这个贴用于收集笔者能力范围内收集收藏并认为有用的资料,方便各方参考,免去到处找寻之苦,提升信息的交叉引用价值.仅供参考,不作为必然的推荐倾向.如涉及版权等问题请相关人员联系笔者,谢谢. |博客| ...

  9. DeepMind背后的人工智能:深度学习原理初探

    去年11月,一篇名为<Playing Atari with Deep Reinforcement Learning>的文章被初创人工智能公司DeepMind的员工上传到了arXiv网站.两 ...

随机推荐

  1. Jmeter逻辑控制之if控制器

    一.背景 在实际工作中,当使用Jmeter做性能脚本或者接口脚本时,有可能会遇到需要对不同的条件做不同的操作,基于这种诉求,在Jmeter中可使用if控制器来实现 二.实际操作 逻辑控制器位置: 在线 ...

  2. 关于https的五大误区

    如今,https协议正在被广泛重视和使用.随着今年2月初,谷歌旗下Chrome浏览器宣布将所有http标示为不安全网站,许多网站都争相从http升级到了https.当你打开很多网站时,会发现浏览器左上 ...

  3. Greenplum 查看连接与锁信息数据字典

    查看系统中会话/连接/SQL与锁情况 1.查看当前活动的客户端连接数  SELECT count(*) FROM pg_stat_activity WHERE NOT pid=pg_backend_p ...

  4. 通过 Ajax 调取后台接口将返回的 json 数据绑定在页面上

    第一步: 编写基础的 html 框架内容,并引入 jquery: <!doctype html> <html lang="en"> <head> ...

  5. Elasticsearch-head使用及ES相关概念

    elasticsearch-head安装和介绍已在上一篇讲了. 在浏览器访问http://localhost:9100,可看到如下界面,表示启动成功: 仔细观察,我们会发现客户端默认连接的是我们ela ...

  6. css选择器:first-child与:first-of-type的区别

    :first-child选择器是css2中定义的选择器,从字面意思上来看也很好理解,就是第一个子元素.比如有段代码: <div> <p>第一个子元素</p> < ...

  7. H-Fashion in Berland

    #include <bits/stdc++.h> using namespace std; int a[1005]; int main() { int n; scanf("%d& ...

  8. 经常用到(创建OS)的命令

    1. 将汇编代码编译为二进制模块文件 nasm mbr.asm -o mbr                         nasm loader.asm -o loader 2. 将wirte.c ...

  9. 如何查看Linux cpu核数、版本等信息

    CPU总核数 = 物理CPU个数 * 每颗物理CPU的核数 总逻辑CPU数 = 物理CPU个数 * 每颗物理CPU的核数 * 超线程数 1.查看CPU信息(型号): [root@iZ2ze1rl2qy ...

  10. legend3---lamp.sh常用操作

    legend3---lamp.sh常用操作 一.总结 一句话总结: 1.github上下载代码 2.修改项目数据库配置,修改文件权限等操作:chown -R apache:apache /data/w ...