特征向量及算法

数据挖掘流程

  • 加载数据

    • 把需要的模型数据先计算出来
  • 特征工程 提取数据特征,对特征数据进行清洗转化

    • 数据的筛选和清洗
    • 数据转化 类型转为 性别 男,女 ----> 1,0
    • 特征交叉 性别/职业/收入 —> 新特这 优质男性程序员 将多个特征值组合在一起
    • 特征筛选 筛选和计算需求强关联的特征
    • 特征清洗 空值处理,重复值处理
    • 数据经过特征处理后会转为向量数据
  • 模型训练

    • 将特征工程的数据传递算法训练
    • 模型评估
      • 数据划分 100万 80万 训练 20万 评估
        • 样本数据 训练模型
        • 测试数据 评估模型
  • 模型的上线部署

    • 模型评估没有问题就可以上线部署

    spark实现机器学习

from pyspark.ml
  • 各类算法
    • 分类算法,聚类,协调过滤…
  • 特征处理方法
    • 特征抽取,转化,选择…
  • 管道
    • 传递数据方法
  • 持久化
    • 保存数据

特征工程

安装numpy模块

pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple

将字符串数据转为数值,在算法模型训练需要用到的是数值
根据需求选择

1、创建df数据

# 机器学习模块使用
from pyspark.sql import SparkSession
# 导入特征工程方法
from pyspark.ml.feature import StringIndexer,VectorAssembler, MinMaxScaler

# 创df数据
ss = SparkSession.builder.getOrCreate()
df = ss.createDataFrame([
    [1,'张三',20,'男'],
    [2,'韩梅梅',21,'女'],
    [3,'王五',19,'男'],
    [4,'蔡徐坤',28,'男'],
    [5,'蔡文姬',19,'女'],
    [6,'小乔',22,'女'],
    ],
    schema='id int,name string,age int,gender string'
)
df.show()

2、特征工程处理 StringIndexer方法

# 2- 特征转化 将男转为0 女转为1
# 特征转化  将字符串数据转为数值 StringIndexer
# inputCol指定需要转化的字段
# outputCol 指定输出字段
data_str = StringIndexer(inputCol='gender',outputCol='gender_index')
# fit() 添加df数据
data_fit = data_str.fit(df)
# transform() 转化df数据
df_gender = data_fit.transform(df)
df_gender.show()

特征交叉

3、特征交叉处理 VectorAssembler方法

# 3、特征交叉 将多个特征组合  将性别和年龄组合
# inputCols 指定多个字段
data_vector = VectorAssembler(inputCols=['age','gender_index'],outputCol='age_gender')
# 对上一步的df_gender交叉转化
# 将年龄和性别进行组合,转化成列表的形式
df_age_gender = data_vector.transform(df_gender)
df_age_gender.show()

特征缩放

4、特征缩放(归一处理) MinMaxScaler

# 3、特征缩放
# 多个特征数据量级保持一致,归一化处理(将数据转化为0-1的范围)
min_max = MinMaxScaler(inputCol='age_gender',outputCol='min_age_gender')
# 添加数据
m_fit = min_max.fit(df_age_gender)
# 转换
df_age_gender_min = m_fit.transform(df_age_gender)
df_age_gender_min.show(truncate=False)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值