归一化



from sklearn.preprocessing import MinMaxScaler
def mm(): # 归一化处理mm = MinMaxScaler()data = mm.fit_transform([[90,2,10,40],[60,4,15,45],[75,3,13,46]])print(data)if __name__=='__main__':mm()

标准化


from sklearn.preprocessing import StandardScalerdef stand():# 标准化缩放std = StandardScaler()data = std.fit_transform([[1.,-1.,3.],[2.,4.,2.],[4.,6.,-1.]])print(data)
if __name__=='__main__':stand()



import numpy as np
from sklearn.preprocessing import Imputerdef im():# 缺失值处理im = Imputer(missing_values="nan",strategy="mean",axis=0)data = im.fit_transform([[1,2],[np.nan,3],[7,6]])print(data)
if __name__=='__main__':im()

特征处理

特征处理是什么:通过特定的统计方法(数学方式)将数据转换成算法要求的数据。
降维:把特征的数量减少叫做降维

特征的选择:特征选择就是单纯地从提取到的所有特征中选择部分特征作为训练集特征,特征在选择前和选择后可以改变值,也不改变值,但是选择后的特征维度肯定比之前小,毕竟我们只选择了其中的一部分特征。
主要方法(工具):
filter(过滤式):VarianceThreshold
Embedded(嵌入式):正则化,决策树
Wrapper(包裹式)

降维过滤式:从方差大小来考虑所有样本这个特征的数据情况

def var():# 特征选择-删除低方差的特征var = VarianceThreshold(threshold=0.0)# 根据实际情况取值data = var.fit_transform([[0,2,0,3],[0,1,4,3],[0,1,1,3]])print(data)if __name__=='__main__':var()

降维主成分分析


PCA:当特征数量达到上百的时候—考虑数据的简化



n_components 小数 0-1 90% 一般保留特征(90%-95%)
整数:减少到的特征数量 一般使用小数

from sklearn.decomposition import PCAdef pca():# 主成分分析进行特征降维pca = PCA(n_components=0.9)data = pca.fit_transform([[2,8,4,5],[6,3,0,8],[5,4,9,1]])print(data)if __name__=='__main__':pca()


案例:

数据来源:https://www.kaggle.com/c/instacart-market-basket-analysis/data?select=order_products__prior.csv.zip
文件详情截图





1,合并各张表到一张表当中
pd.merge()

import pandas as pd
from sklearn.decomposition import PCA# 读取4张表数据
prior = pd.read_csv("./analysis/order_products__prior.csv")
products = pd.read_csv("./analysis/products.csv")
aisles = pd.read_csv("./analysis/aisles.csv")
orders = pd.read_csv("./analysis/orders.csv")# 合并四张表到一张表中(用户-物品类别。。。)
_mg = pd.merge(prior,products,on=["product_id","product_id"])
_mg = pd.merge(_mg,orders,on=["order_id","order_id"])
mt = pd.merge(_mg,aisles,on=["aisle_id","aisle_id"])print(mt.head(10))# 2,建立一个类似行,列的数据  交叉表(特殊的分组表)如: 用户1--商品参数
cross = pd.crosstab(mt["user_id"],mt["aisle"])
print(cross.head(10))
# 3, 进行主成分分析
pca = PCA(n_components=0.9)
data = pca.fit_transform(cross)
print(data)
print(data.shape)




其他降维方法:线性判别分析LDA

机器学习基础
1,机器学习开发流程


2,机器学习算法分类

明确几点问题:
(1)算法是机器学习的核心,数据和计算是基础
(2)找准定位
- 分析很多的数据
- 分析具体的业务
- 应用常见的算法
- 特征工程,掉参数,优化
(3)学会分析问题,使用机器学习算法的目的,想要算法完成何种任务
(4)掌握算法的基本思想,学会对问题用响应的算法解决
(5)学会利用库或者框架解决问题


监督学习(重点):有特征值+目标值

  • 分类:目标值离散型 回归:目标值连续性




  • 输入数据有特征有标签,即有标准答案

非监督学习:只有特征值

  • 输入数据有特征无标签,即无标准答案

3,机器学习模型
算法+数据=模型

机器学习-特征处理/归一化/标准化/降维03相关推荐

  1. 机器学习特征工程--标准化和归一化

    关于归一化和标准化 1.标准化使用条件 (1)不需要对特征进行归一化:基于树模型的方法 举例:  随机森林/bagging/boosting/xgboost 需要标准化的(基于距离的模型):回归分析( ...

  2. 解读:为什么要做特征归一化/标准化?

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:shine-lee,编辑:极市平台 本文解读了一项数据预处理中的重 ...

  3. 机器学习特征工程之特征缩放+无量纲化:数据标准化(StandardScaler)

    机器学习特征工程之特征缩放+无量纲化:数据标准化(StandardScaler) 在Andrew Ng的机器学习课程里面,讲到使用梯度下降的时候应当进行特征缩放(Feature Scaling).进行 ...

  4. 机器学习-特征工程中的特征降维

    对于一个机器学习问题,数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限.由此可见,数据和特征在模型的整个开发过程中是比较重要.特征工程,顾名思义,是对原始数据进行一系列工程处理,将其提炼为 ...

  5. 机器学习——特征工程——数据的标准化(Z-Score,Maxmin,MaxAbs,RobustScaler,Normalizer)

    数据标准化是一个常用的数据预处理操作,目的是处理不同规模和量纲的数据,使其缩放到相同的数据区间和范围,以减少规模.特征.分布差异等对模型的影响. 比如线性回归模型.逻辑回归模型或包含矩阵的模型,它们会 ...

  6. 为什么要做特征归一化/标准化?

    作者:shine-lee 来源:极市平台公众号 链接:https://blog.csdn.net/blogshinelee/article/details/102875044 编辑:王萌(深度学习冲鸭 ...

  7. 特征工程特征预处理归一化与标准化、鸢尾花种类预测代码实现

    一.特征预处理 特征工程目的:把数据转换成机器更容易识别的数据 scikit-learn:提供几个常见的实用程序函数和转换器类,以将原始特征向量更改为更适合下游估计器的表示形式.即通过一些转换函数将特 ...

  8. 关于你不知道的特征归一化/标准化

    目录 1. Feature scaling 的必要性 2. 常用的Feature scaling方法有什么 3. 什么时候需要feature scaling 4. 什么情况不需要Feature 1. ...

  9. 机器学习-特征归一化

    要消除数据特征之间的量钢的影响,要对特征进行归一化处理,使得不同指标之间具有可比性. 对数值类型的特征做归一化可以将所有的特征都统一到一个大致相同的数值区间内.最常用的方法主要有以下两种: 1,线性函 ...

最新文章

  1. 微软沈向洋:写给AI新潮流——人工智能创作的五点建议
  2. 36张图详解网络基础知识
  3. AttributeError: module ‘sys‘ has no attribute ‘maxint‘
  4. [BZOJ1188/Luogu3185][HNOI2007]分裂游戏
  5. [导入]JavaScript 滚动特效代码
  6. 控制层@Value注解取不到值
  7. sql关键字_SQL关键字
  8. red_hat_enterprise_linux
  9. 解决办法:configure后,没有更新Makefile
  10. warning: non-static data member initializers only available with -std=c++11 or -std=gnu++11
  11. html2canvas截长图
  12. 数值分析|二阶三点式Python编程
  13. 基于FPGA的乒乓ram控制系统设计
  14. 信息安全密码学实验四:Diffie-Hellman密钥交换协议的设计与实现
  15. python定义一个dog类 类属性有名字毛色体重_全面了解python中的类,对象,方法,属性...
  16. 输出1000以内能被7整除又能被5整除的数
  17. Android 应用分屏
  18. BZOJ 1778: [Usaco2010 Hol]Dotp 驱逐猪猡 概率与期望+高斯消元
  19. 学会这两招将知网下载的CAJ转成Word形式
  20. vs编写java_vs code编写java

热门文章

  1. linux内核printk调试手段,[Mini2440] 内核调试手段之 printk
  2. Linux7的ftp日志怎么看,centos7打开sftp操作日志
  3. vue 仿二手交易app_项目vue2.0仿外卖APP(七)
  4. java 访问线程_java线程简介(共享对数据的访问)
  5. opencv 叠加两张图_「干货」教你如何用OpenCV快速寻找图像差异处
  6. 【Nginx】截取URL中某个参数Parameter
  7. Apache common包应用集合
  8. 【weblogic】部署jfinal编写的应用
  9. php psr4 控制器调用模型,控制器中调用模型添加数据
  10. java 接口 this参数_Java BiFunction 接口实例