人工智能_2_特征处理.py
# 特征处理
# 特征预处理:通过统计方法将数据转换为算法需要的数据
# 数值型数据:标准缩放
# 规依法,标准化(常用,适用于当前大数据),缺失值处理(删除,填补中位数平均数,通常按照列填补)
# 类别型数据: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的更多相关文章
- Kaggle "Microsoft Malware Classification Challenge"——就是沙箱恶意文件识别,有 Opcode n-gram特征 ASM文件图像纹理特征 还有基于图聚类方法
使用图聚类方法:Malware Classification using Graph Clustering 见 https://github.com/rahulp0491/Malware-Classi ...
- C# 人工智能开源库生物特征
C# 人工智能开源库生物特征 Machine learning made in a minute http://accord-framework.net/ Accord.NET是AForge.NET框 ...
- 人工智能(AI)库TensorFlow 踩坑日记之一
上次写完粗浅的BP算法 介绍 本来应该继续把 卷积神经网络算法写一下的 但是最近一直在踩 TensorFlow的坑.所以就先跳过算法介绍直接来应用场景,原谅我吧. TensorFlow 介绍 TF是g ...
- 05基于python玩转人工智能最火框架之TensorFlow基础知识
从helloworld开始 mkdir mooc # 新建一个mooc文件夹 cd mooc mkdir 1.helloworld # 新建一个helloworld文件夹 cd 1.helloworl ...
- 人工智能(Machine Learning)—— 机器学习
https://blog.csdn.net/luyao_cxy/article/details/82383091 转载:https://blog.csdn.net/qq_27297393/articl ...
- 天池精准医疗大赛——人工智能辅助糖尿病遗传风险预测
作为天池上的新手,第一次参加天池阿里云线上的比赛,糖尿病预测, 一般的数据挖掘比赛,流程:数据清洗,特征工程(找特征,特征组合),不断的尝试的不同算法,不断调参,也可以考虑将多个模型进行线性组合 大赛 ...
- 了解人工智能?-百度AI
了解人工智能? 什么是人工智能? 由人创造的"智慧能力",同样具备智慧生物的能力 耳朵=倾听=麦克风=语音识别 ASR Automatic Speech Recognition 嘴 ...
- 人工智能AI-机器视觉CV-数据挖掘DM-机器学习ML-神经网络-[资料集合贴]
说明:这个贴用于收集笔者能力范围内收集收藏并认为有用的资料,方便各方参考,免去到处找寻之苦,提升信息的交叉引用价值.仅供参考,不作为必然的推荐倾向.如涉及版权等问题请相关人员联系笔者,谢谢. |博客| ...
- DeepMind背后的人工智能:深度学习原理初探
去年11月,一篇名为<Playing Atari with Deep Reinforcement Learning>的文章被初创人工智能公司DeepMind的员工上传到了arXiv网站.两 ...
随机推荐
- 54、servlet3.0-ServletContainerInitializer
54.servlet3.0-ServletContainerInitializer Shared libraries(共享库) / runtimes pluggability(运行时插件能力) 1.S ...
- DevTool-Network
如图所示,图中蓝线表示DOMContentLoaded事件触发时经过的时间,DOM树构建花费的时间. 图中红线表示onload事件触发时经过的时间,也是所有的资源(图片等)下载处理完成的时间. 图中绿 ...
- 070_Shell 脚本对信号的处理,执行脚本后,按键盘 Ctrl+C 无法终止的脚本
#!/bin/bash#使用 trap 命令可以拦截用户通过键盘或 kill 命令发送过来的信号#使用 kill -l 可以查看 Linux 系统中所有的信号列表,其中 2 代表 Ctrl+C#tra ...
- leetcode解题报告(23):Pascal's Triangle
描述 Given numRows, generate the first numRows of Pascal's triangle. For example, given numRows = 5, R ...
- bzoj 3398
f[i]表示最后一个是公牛的方案数,=sigma(f[j])(j<i-k) 然后前缀和优化即可. #include <cstdio> #include <cstdlib> ...
- tomcat设置gzip
使用tomcat发布3dtiles或terrain数据遇到的gzip问题 问题一 对大于1KB的json请求进行gzip压缩,json为原文件 1.创建原始文件 2.设置 在apache-tomcat ...
- java.lang.IllegalStateException: Method get not annotated with HTTP method type (ex. GET, POST);
明明指定了请求方法类型还报错: 代码: @RequestMapping(value="/enterprise/detail",method = RequestMethod.POST ...
- Arts打卡第8周
Algorithm.主要是为了编程训练和学习. 每周至少做一个 leetcode 的算法题(先从Easy开始,然后再Medium,最后才Hard). 进行编程训练,如果不训练你看再多的算法书,你依然不 ...
- vue elementUI 表单校验(多层嵌套)
<template> <el-form :model="formData" :rules="formRule" ref="formD ...
- hadoop格式化
1.hadoop启动时,namenode没有启动起来 1.删除 namenode产生的临时文件 tmp 2.删除datanode的数据,否则也不行.(如果datanode有数据,请自己备份) ./bi ...