【机器学习】快速入门特征工程

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 【机器学习】快速入门特征工程

f89b721e1f38c0c029a6c8da3a5fccbd.jpg

目录

  • 数据集
  • 可用数据集
  • sklearn数据集
  • 特征提取
  • 字典
  • 文本
  • 特征预处理
  • 归一化
  • 标准化
  • 无量纲化
  • 特征降维
  • 特征选择
  • 主成分分析(PCA降维)


数据集

下面列举了一些示例来说明哪些内容能算作数据集:

  • 包含某些数据的表格或 CSV 文件
  • 组织有序的表格集合
  • 采用专有格式的文件,其中包含数据
  • 可共同构成某个有意义数据集的一组文件
  • 包含其他格式的数据的结构化对象,您可能希望将其加载到特殊工具中进行处理
  • 捕获数据的图像
  • 与机器学习相关的文件,如经过训练的参数或神经网络结构定义
  • 任何看来像数据集的内容

sklearn是一个Python第三方提供的非常强力的机器学习库,它包含了从数据预处理到训练模型的各个方面。在实战使用scikit-learn中可以极大的节省我们编写代码的时间以及减少我们的代码量,使我们有更多的精力去分析数据分布,调整模型和修改超参。(sklearn为包名)


特征提取

目标

  • 应用DictVectorizer实现对类别特征进行数值化、离散化
  • 应用CountVectorizer实现对文本特征进行数值化
  • 应用TfidfVectorizer实现对文本特征进行数值化
  • 说出两种文本特征提取的方式区别


定义定义

特征提取是将任意数据(如文本或图像)转换为可用于机器学习的数字特征

注:特征值化是为了计算机更好的去理解数据

  • 字典特征提取(特征离散化)
  • 文本特征提取
  • 图像特征提取(深度学习)


特征提取API特征提取API

sklearn.feature_extraction


字典特征提取

作用:对字典数据进行特征值化

  • sklearn.feature_extraction.DictVectorizer(sparse=True,…)
  • DictVectorizer.fit_transform(X) X:字典或者包含字典的迭代器,返回值:返回sparse矩阵
  • DictVectorizer.inverse_transform(X) X:array数组或者sparse矩阵 返回值:转换之前数据格式
  • DictVectorizer.get_feature_names() 返回类别名称


应用应用

对以下数据进行特征提取

data = [{'city': '北京', 'temperature': 100}, {'city': '上海', 'temperature': 60}, {'city': '深圳', 'temperature': 30}]


流程分析流程分析

  • 实例化类DictVectorizer
  • 调用fit_transform方法输入数据并转换(注意返回格式)
def dict_demo():
    """
    字典特征值提取
    :return:
    """
    data = [{'city': '北京', 'temperature': 100}, {'city': '上海', 'temperature': 60}, {'city': '深圳', 'temperature': 30}]
    # 1. 实例化一个转换器   默认返回 sparse矩阵  将非0值按位置表示出来 以节省内存 提高加载效率
    transfer = DictVectorizer(sparse=False)
    # 应用场景:数据集中类别特征值较多;将数据集的特征-》字典类型;DictVectorizer转换;本身拿到的就是字典
    # 2. 调用fit_transform()
    data_new = transfer.fit_transform(data)
    print("data_new:\n", data_new)
    print("特征名字:\n", transfer.get_feature_names())
    return None

07ee5e98e4848687d83f8118e197a468.png

注意观察没有加上sparse=False参数的结果

f0bcafe8b481da3830584a22b4ba63c6.png

这个结果并不是想要看到的,所以加上参数,得到想要的结果,在这里把这个处理数据的技巧用专业的称呼"one-hot"编码。


总结总结

对于特征当中存在类别信息的都会做one-hot编码处理


文本特征提取

作用:对文本数据进行特征值化

  • sklearn.feature_extraction.text.CountVectorizer(stop_words=[])
  • 返回词频矩阵
  • CountVectorizer.fit_transform(X) X:文本或者包含文本字符串的可迭代对象 返回值:返回sparse矩阵
  • CountVectorizer.inverse_transform(X) X:array数组或者sparse矩阵 返回值:转换之前数据格
  • CountVectorizer.get_feature_names() 返回值:单词列表
  • sklearn.feature_extraction.text.TfidfVectorizer


应用

对以下数据进行特征提取

data = ["life is short, i like python", "life is too long i dislike python"]


流程分析程分析

  • 实例化类CountVectorizer
  • 调用fit_transform方法输入数据并转换 (注意返回格式,利用toarray()进行sparse矩阵转换array数组)
def count_demo():
    """
    文本特征值抽取
    :return:
    """
    data = ["life is short, i like python", "life is too long i dislike python"]
    # 1、实例化一个转换器类
    transfer = CountVectorizer()
    # 演示停用词
    # transfer = CountVectorizer(stop_words=["is", "too"])
    data_new = transfer.fit_transform(data)
    print("data_new:\n", data_new.toarray())
    print("特征名字:\n", transfer.get_feature_names())
    # 2、调用fit_transform
    return None

4e674bbcfe3cba6f52f8f2a22558a1be.png


问题:如果我们将数据替换成中文?

发现英文默认是以空格分开的。其实就达到了一个分词的效果,所以我们要对中文进行分词处理

下面代码需要提前把文本做好空格间隙

def count_chinese_demo():
    """
    中文文本特征值抽取
    :return:
    """
    data = ["我 爱 北京 天安门", "天安门 上 太阳 升"]
    data2 = ["我爱北京天安门", "天安门上太阳升"]
    # 1、实例化一个转换器类
    transfer = CountVectorizer()
    data_new = transfer.fit_transform(data)
    print("data_new:\n", data_new.toarray())
    print("特征名字:\n", transfer.get_feature_names())
    # 2、调用fit_transform
    return None

9088d96f4cdae9e191f0219f97298215.png

更好的处理方式见下方案


jjieba分词处理ieba分词处理

  • jieba.cut()
  • 返回词语组成的生成器

需要安装下jieba库

pip install jieba


案例分析案例分析

data = ["在过去两个月里,我和60多位小伙伴进行了1对1的一小时沟通;",
            "TA绝大多数是想要尝试副业变现的朋友。",
            "从一线城市到三线城市,从宝妈到职场人,从职场到体制内。"]


分析

  • 准备句子,利用jieba.cut进行分词
  • 实例化CountVectorizer
  • 将分词结果变成字符串当作fit_transform的输入值
def count_word(text):
    """
    进行中文分词 我爱北京天安门-》我 爱 北京 天安门
    :param text:
    :return:
    """
    a = " ".join(list(jieba.cut(text)))
    print(a)
    return a
def count_chinese_demo2():
    """
    中文文本特征值抽取 自动分词
    :return:
    """
    data = ["在过去两个月里,我和60多位小伙伴进行了1对1的一小时沟通;",
            "TA绝大多数是想要尝试副业变现的朋友。",
            "从一线城市到三线城市,从宝妈到职场人,从职场到体制内。"]
    # 1、实例化一个转换器类
    transfer = CountVectorizer(stop_words=["从宝妈"])
    data_new = transfer.fit_transform(count_word(item) for item in data)
    print("data_new:\n", data_new.toarray())
    print("特征名字:\n", transfer.get_feature_names())
    # 2、调用fit_transform
    return None

d522162f3d5075e1a946c388409692d3.png


问题:该如何处理某个词或短语在多篇文章中出现的次数高这种情况?

Tf-idf文本特征提取Tf-idf文本特征提取

TF-IDF的主要思想是:如果某个词或短语在一篇文章中出现的概率高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。

TF-IDF作用:用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。


公式公式

词频(term frequency,tf)指的是某一个给定的词语在该文件中出现的频率

逆向文档频率(inverse document frequency,idf)是一个词语普遍重要性的度量。某一特定词语的idf,可以由总文件数目除以包含该词语之 文件的数目,再将得到的商取以10为底的对数得到

c0c092435e5b57497be63a280849e5c9.png

最终得出结果可以理解为重要程度。

注:假如一篇文件的总词语数是100个,而词语"非常"出现了5次,那么"非常"一词在该文件中的词频就是5/100=0.05。而计算文件频率(IDF)的方法是以文件集的文件总数,除以出现"非常"一词的文件数。所以,如果"非常"一词在1,000份文件出现过,而文件总数是10,000,000份的话,其逆向文件频率就是lg(10,000,000 / 1,0000)=3。最后"非常"对于这篇文档的tf-idf的分数为0.05 * 3=0.15


案例案例

def tfidf_demo():
    """
    用TF-IDF方法进行文本特征值抽取
    :return:
    """
    data = ["在过去两个月里,我和60多位小伙伴进行了1对1的一小时沟通;",
            "TA绝大多数是想要尝试副业变现的朋友。",
            "从一线城市到三线城市,从宝妈到职场人,从职场到体制内。"]
    transfer = TfidfVectorizer(stop_words=["从宝妈"])
    data_new = transfer.fit_transform(count_word(item) for item in data)
    print("data_new:\n", data_new.toarray())
    print("特征名字:\n", transfer.get_feature_names())
    return None

441226017fa8287a84622acad39fd406.png


Tf-idf的重要性-idf的重要性

分类机器学习算法进行文章分类中前期数据处理方式


特征预处理

目标

  • 了解数值型数据、类别型数据特点
  • 应用MinMaxScaler实现对特征数据进行归一化
  • 应用StandardScaler实现对特征数据进行标准化


什么是特征预处理

特征预处理:通过一些转换函数将特征数据转换成更加适合算法模型的特征数据过程

6f564d87d9b18dba225d4883089a444a.png

可以通过上面那张图来理解

包含内容

数值型数据的无量纲化:

  • 归一化
  • 标准化


包含内容征预处理API

sklearn.preprocessing

为什么我们要进行归一化/标准化?

特征的单位或者大小相差较大,或者某特征的方差相比其他的特征要大出几个数量级,容易影响(支配)目标结果,使得一些算法无法学习到其它的特征

我们需要用到一些方法进行无量纲化,使不同规格的数据转换到同一规格


归一化

定义定义

通过对原始数据进行变换把数据映射到(默认为[0,1])之间

公式

公式

659bb7399e302cc32824095561f34364.png

作用于每一列,max为一列的最大值,min为一列的最小值,那么X’’为最终结果,mx,mi分别为指定区间值默认mx为1、mi为0


AAPIPI

  • sklearn.preprocessing.MinMaxScaler (feature_range=(0,1)… )
  • X:numpy array格式的数据[n_samples,n_features]
  • MinMaxScalar.fit_transform(X)
  • 返回值:转换后的形状相同的array


数据计算数据计算

我们对以下数据进行运算,在dating.txt中。保存的就是之前的约会对象数据

milage,Liters,Consumtime,target
40920,8.326976,0.953952,3
14488,7.153469,1.673904,2
26052,1.441871,0.805124,1
75136,13.147394,0.428964,1
38344,1.669788,0.134296,1


分析

  • 实例化MinMaxScalar
  • 通过fit_transform转换
def minmax_demo():
    """
    归一化
    :return:
    """
    # 1、获取数据
    data = pd.read_csv("dating.txt")
    data = data.iloc[:, :3]
    print(data)
    # 2、实例化一个转换器类
    transform = MinMaxScaler()
    # transform = MinMaxScaler(feature_range=[2, 3])
    # 3、调用fit_transform
    data_new = transform.fit_transform(data)
    print("data_new:\n", data_new)
    return None

bbc655057bee952dc8e00072b759dfcd.png


归一化总结归一化总结

注意最大值最小值是变化的,另外,最大值与最小值非常容易受异常点影响,所以这种方法鲁棒性较差,只适合传统精确小数据场景。


标准化

定义定义

通过对原始数据进行变换把数据变换到均值为0,标准差为1范围内

公式

公式

a60faffae0e88f2ba20f97d4938152e1.png

作用于每一列,mean为平均值,σ为标准差

所以回到刚才异常点的地方,我们再来看看标准化

  • 对于归一化来说:如果出现异常点,影响了最大值和最小值,那么结果显然会发生改变
  • 对于标准化来说:如果出现异常点,由于具有一定数据量,少量的异常点
  • 对于平均值的影响并不大,从而方差改变较小。


PAPII

  • sklearn.preprocessing.StandardScaler( )
  • X:numpy array格式的数据[n_samples,n_features]
  • 处理之后每列来说所有数据都聚集在均值0附近标准差差为1
  • StandardScaler.fit_transform(X)
  • 返回值:转换后的形状相同的array


数据计算数据计算

同样对上面的数据进行处理

[[90,2,10,40],
[60,4,15,45],
[75,3,13,46]]

分析

  • 实例化StandardScaler
  • 通过fit_transform转换
def stand_demo():
    """
    进行标准化
    在已有样本足够多的情况下,适合现在嘈杂大数据场景
    :return:
    """
    # 1、获取数据
    data = pd.read_csv("dating.txt")
    data = data.iloc[:, :3]
    print(data)
    # 2、实例化一个转换器类
    transform = StandardScaler()
    # 3、调用fit_transform
    data_new = transform.fit_transform(data)
    print("data_new:\n", data_new)
    return None

1c907b5e29c4172f959848519eef5e6d.png


标准化总结标准化总结

在已有样本足够多的情况下比较稳定,适合现代嘈杂大数据场景。


特征降维

目标

  • 知道特征选择的嵌入式、过滤式以及包裹氏三种方式
  • 应用VarianceThreshold实现删除低方差特征
  • 了解相关系数的特点和计算
  • 应用相关性系数实现特征选择


降维降维

降维是指在某些限定条件下,降低随机变量(特征)个数,得到一组“不相关”主变量的过程

  • 降低随机变量的个数
  • 相关特征(correlated feature):相对湿度与降雨量之间的相关等等

正是因为在进行训练的时候,我们都是使用特征进行学习。如果特征本身存在问题或者特征之间相关性较强,对于算法学习预测会影响较大


降维的两种方式维的两种方式

  • 特征选择
  • 主成分分析(可以理解一种特征提取的方式)


特征选择

定义: 数据中包含冗余或无关变量(或称特征、属性、指标等),旨在从原有特征中找出主要特征。

方法:

  • Filter(过滤式):主要探究特征本身特点、特征与特征和目标值之间关联
  • 方差选择法:低方差特征过滤
  • 相关系数
  • Embedded (嵌入式):算法自动选择特征(特征与目标值之间的关联)
  • 决策树:信息熵、信息增益
  • 正则化:L1、L2
  • 深度学习:卷积等
  • Wrapper (包裹式)


模块模块

sklearn.feature_selection


过滤式过滤式

低方差特征过滤

删除低方差的一些特征,前面讲过方差的意义。再结合方差的大小来考虑这个方式的角度。

  • 特征方差小:某个特征大多样本的值比较相近
  • 特征方差大:某个特征很多样本的值都有差别

API

  • sklearn.feature_selection.VarianceThreshold(threshold = 0.0)
  • X:numpy array格式的数据[n_samples,n_features]
  • 返回值:训练集差异低于threshold的特征将被删除。默认值是保留所有非零方差特征,即删除所有样本中具有相同值的特征。
  • 删除所有低方差特征
  • Variance.fit_transform(X)


数据计算

我们对某些股票的指标特征之间进行一个筛选

一共这些特征

pe_ratio,pb_ratio,market_cap,return_on_asset_net_profit,du_return_on_equity,ev,earnings_per_share,revenue,total_expense
index,pe_ratio,pb_ratio,market_cap,return_on_asset_net_profit,du_return_on_equity,ev,earnings_per_share,revenue,total_expense,date,return
0,000001.XSHE,5.9572,1.1818,85252550922.0,0.8008,14.9403,1211444855670.0,2.01,20701401000.0,10882540000.0,2012-01-31,0.027657228229937388
1,000002.XSHE,7.0289,1.588,84113358168.0,1.6463,7.8656,300252061695.0,0.326,29308369223.2,23783476901.2,2012-01-31,0.08235182370820669
2,000008.XSHE,-262.7461,7.0003,517045520.0,-0.5678,-0.5943,770517752.56,-0.006,11679829.03,12030080.04,2012-01-31,0.09978900335112327
3,000060.XSHE,16.476,3.7146,19680455995.0,5.6036,14.617,28009159184.6,0.35,9189386877.65,7935542726.05,2012-01-31,0.12159482758620697
4,000069.XSHE,12.5878,2.5616,41727214853.0,2.8729,10.9097,81247380359.0,0.271,8951453490.28,7091397989.13,2012-01-31,-0.0026808154146886697
def variance_demo():
    """
    过滤低方差特征
    :return:
    """
    # 1、获取数据
    data = pd.read_csv("factor_returns.csv")
    data = data.iloc[:, 1: -2]
    print(data)
    # 2、实例化一个转换器
    transfer = VarianceThreshold(threshold=5)
    # 3、调用fit_transform
    data_new = transfer.fit_transform(data)
    print("data_new", data_new, data_new.shape)
    return None
if __name__ == '__main__':
    # 低方差特征过滤
    variance_demo()

22e50047336d6726a5edac262d4cfefb.png


相关系数

皮尔逊相关系数(Pearson Correlation Coefficient): 反映变量之间相关关系密切程度的统计指标

公式计算案例(了解,不用记忆)

公式:

a275f99471b4fa50a3903bda5f17467e.png

比如说我们计算年广告费投入与月均销售额

d13a275ee2af591325ac625505a40f91.png9fb5759da7647a6397bff9a5ee398521.png

= 0.9942

所以我们最终得出结论是广告投入费与月平均销售额之间有高度的正相关关系。


特点

相关系数的值介于–1与+1之间,即–1≤ r ≤+1。其性质如下:

  • 当r>0时,表示两变量正相关,r<0时,两变量为负相关
  • 当|r|=1时,表示两变量为完全相关,当r=0时,表示两变量间无相关关系
  • 当0<|r|<1时,表示两变量存在一定程度的相关。且|r|越接近1,两变量间线性关系越密切;|r|越接近于0,表示两变量的线性相关越弱

一般可按三级划分:|r|<0.4为低度相关;0.4≤|r|<0.7为显著性相关;0.7≤|r|<1为高度线性相关

这个符号:|r|为r的绝对值, |-5| = 5


API

from scipy.stats import pearsonr
x : (N,) array_like
y : (N,) array_like Returns: (Pearson’s correlation coefficient, p-value)


主成分分析

目标

  • 应用PCA实现特征的降维
  • 应用:用户与物品类别之间主成分分析


什么是主成分分析(PCA)什么是主成分分析(PCA)

定义:高维数据转化为低维数据的过程,在此过程中可能会舍弃原有数据、创造新的变量

作用:是数据维数压缩,尽可能降低原数据的维数(复杂度),损失少量信息。

应用:回归分析或者聚类分析当中

API

  • sklearn.decomposition.PCA(n_components=None)
  • 小数:表示保留百分之多少的信息
  • 整数:减少到多少特征
  • 将数据分解为较低维数空间
  • n_components:
  • PCA.fit_transform(X) X:numpy array格式的数据[n_samples,n_features]
  • 返回值:转换后指定维度的array


数据计算

[[2,8,4,5],
[6,3,0,8],
[5,4,9,1]]
def pca():
    """
    主成分分析进行降维
    :return:
    """
    # 信息保留70%
    pca = PCA(n_components=0.7)
    data = pca.fit_transform([[2, 8, 4, 5], [6, 3, 0, 8], [5, 4, 9, 1]])
    print(data)
    return None


案例:探究用户对物品类别的喜好细分降维

数据数据

  • order_products__prior.csv:订单与商品信息
  • 字段:order_id, product_id, add_to_cart_order, reordered
  • products.csv:商品信息
  • 字段:product_id, product_name, aisle_id, department_id
  • orders.csv:用户的订单信息
  • 字段:order_id,user_id,eval_set,order_number,….
  • aisles.csv:商品所属具体物品类别
  • 字段:aisle_id, aisle


分析

  • 合并表,使得user_id与aisle在一张表当中
  • 进行交叉表变换
  • 进行降维
def pca_case_study():
    """
    主成分分析案例
    :return: 
    """
    # 去读四张表的数据
    prior = pd.read_csv("./instacart/order_products__prior.csv")
    products = pd.read_csv("./instacart/products.csv")
    orders = pd.read_csv("./instacart/orders.csv")
    aisles = pd.read_csv("./instacart/aisles.csv")
    print(prior)
    # 合并四张表
    mt = pd.merge(prior, products, on=['product_id', 'product_id'])
    mt1 = pd.merge(mt, orders, on=['order_id', 'order_id'])
    mt2 = pd.merge(mt1, aisles, on=['aisle_id', 'aisle_id'])
    # pd.crosstab 统计用户与物品之间的次数关系(统计次数)
    cross = pd.crosstab(mt2['user_id'], mt2['aisle'])
    # PCA进行主成分分析
    pc = PCA(n_components=0.95)
    data_new = pc.fit_transform(cross)
    print("data_new:\n", data_new.shape)
    return None

e2ade475be192d7102c5af204adcca44.png

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps&nbsp;
目录
相关文章
|
2月前
|
机器学习/深度学习 数据采集 数据挖掘
特征工程在营销组合建模中的应用:基于因果推断的机器学习方法优化渠道效应估计
因果推断方法为特征工程提供了一个更深层次的框架,使我们能够区分真正的因果关系和简单的统计相关性。这种方法在需要理解干预效果的领域尤为重要,如经济学、医学和市场营销。
73 1
特征工程在营销组合建模中的应用:基于因果推断的机器学习方法优化渠道效应估计
|
7月前
|
机器学习/深度学习 数据采集 算法
探索机器学习中的特征工程
【5月更文挑战第10天】 在机器学习领域,特征工程扮演着至关重要的角色。它涉及选择、修改和创造从原始数据中提取的特征,旨在提高模型的性能。本文将深入探讨特征工程的多个方面,包括数据清洗、特征选择、维度缩减以及特征编码等,同时提供实用的技巧和策略,帮助读者构建出更有效的机器学习模型。
|
5月前
|
机器学习/深度学习 人工智能
8个特征工程技巧提升机器学习预测准确性
8个特征工程技巧提升机器学习预测准确性
113 6
8个特征工程技巧提升机器学习预测准确性
|
4月前
|
机器学习/深度学习 SQL 数据采集
"解锁机器学习数据预处理新姿势!SQL,你的数据金矿挖掘神器,从清洗到转换,再到特征工程,一网打尽,让数据纯净如金,模型性能飙升!"
【8月更文挑战第31天】在机器学习项目中,数据质量至关重要,而SQL作为数据预处理的强大工具,助力数据科学家高效清洗、转换和分析数据。通过去除重复记录、处理缺失值和异常值,SQL确保数据纯净;利用数据类型转换和字符串操作,SQL重塑数据结构;通过复杂查询生成新特征,SQL提升模型性能。掌握SQL,就如同拥有了开启数据金矿的钥匙,为机器学习项目奠定坚实基础。
39 0
|
4月前
|
机器学习/深度学习 数据采集 算法
如何使用机器学习神器sklearn做特征工程?
如何使用机器学习神器sklearn做特征工程?
|
6月前
|
机器学习/深度学习 算法 Python
特征工程:机器学习成功的关键步骤
【6月更文挑战第4天】特征工程是机器学习的关键,涉及特征选择、构建和变换,旨在提升模型性能。通过处理原始数据,如顾客购买行为,选择相关特征,创建新特征并转换数据(如对数变换),可以增强模型预测能力。例如,对异常值丰富的收入数据进行对数变换,可提升模型稳定性和准确性。特征工程是耗时且需要创造力的过程,是连接数据与智能的桥梁,在机器学习中发挥着至关重要的作用。
81 2
|
6月前
|
机器学习/深度学习 分布式计算 监控
在大数据模型训练中,关键步骤包括数据收集与清洗、特征工程、数据划分;准备分布式计算资源
【6月更文挑战第28天】在大数据模型训练中,关键步骤包括数据收集与清洗、特征工程、数据划分;准备分布式计算资源,选择并配置模型如深度学习架构;通过初始化、训练、验证进行模型优化;监控性能并管理资源;最后保存模型并部署为服务。过程中要兼顾数据隐私、安全及法规遵守,利用先进技术提升效率。
102 0
|
7月前
|
机器学习/深度学习 数据采集 算法
探索机器学习中的特征工程之艺术
【5月更文挑战第25天】 在机器学习的实践中,特征工程是连接原始数据与高效模型的桥梁。不同于常规的摘要侧重于概括文章内容,本文将通过具体案例深入剖析特征工程的重要性、方法论以及实际应用中的经验教训。文章将揭示如何通过细致的特征选择、构建和转换,来提升模型性能,并讨论在此过程中遇到的挑战及应对策略。
|
7月前
|
机器学习/深度学习 数据采集 人工智能
探索机器学习中的特征工程最佳实践
【5月更文挑战第21天】 在机器学习领域,特征工程是模型性能优化的关键环节之一。本文将深入探讨特征工程的核心概念、方法及其在构建高效机器学习模型中的应用。文章不仅总结了实用的特征选择技巧和数据预处理策略,还介绍了如何通过自动化工具简化特征工程流程。通过案例分析,我们展示了在不同数据集上应用这些技术的效果,并讨论了特征工程在未来发展中的潜在趋势与挑战。
|
7月前
|
机器学习/深度学习 数据采集 算法
DataFrame 与机器学习:数据预处理与特征工程
【5月更文挑战第19天】数据预处理(如处理缺失值、标准化)和特征工程对机器学习模型的性能至关重要。使用`pandas`进行缺失值填充,`StandardScaler`实现数据标准化,通过创建新特征(如从日期提取月份、对数变换价格)和特征组合增强信息。相关性分析帮助选择重要特征,提升模型准确性和泛化能力。灵活运用这些方法能有效提升模型性能。DataFrame简化了数据操作,助力高效机器学习。
98 1