主要内容

变换

使用生成的特征转换新数据

    描述

    例子

    NewTbl=变换(变压器资源描述类生成的转换了特征的表FeatureTransformer对象变压器.输入资源描述必须包含所需的变量,其数据类型必须与最初传递给的变量的数据类型匹配gencfeaturesgenrfeatures变压器被创建。

    例子

    NewTbl=变换(变压器资源描述指数返回转换后的特征的子集,其中指数指示要返回的特性。

    例子

    全部折叠

    生成特征来训练线性回归模型。计算模型的交叉验证均方误差(MSE)crossval函数。

    加载病人数据集,并创建一个包含预测器数据的表。

    负载病人Tbl = table(年龄,舒张压,性别,身高,自我评估健康状况,...吸烟、体重);

    为5倍交叉验证创建一个随机分区。

    rng (“默认”用于分区的再现性cvp = cvpartition(size(Tbl,1),KFold=5);

    计算在原始特征上训练的线性回归模型的交叉验证MSE资源描述收缩压响应变量。

    CVMdl = fitrlinear(Tbl,收缩压,CVPartition=cvp);cvloss = kfoldLoss(cvdl)
    Cvloss = 45.2594

    创建自定义函数myloss(如本例末尾所示)。这个函数从训练数据中生成20个特征,然后对测试数据应用相同的训练集转换。然后,该函数将线性回归模型拟合到训练数据并计算测试集MSE。

    注意:如果在本例中使用活动脚本文件,则myloss函数已经包含在文件的末尾。否则,您需要在.m文件的末尾创建此函数,或将其作为MATLAB®路径上的文件添加。

    计算由预测器生成的特征训练的线性模型的交叉验证MSE资源描述

    newcvloss = mean(crossval(@myloss,Tbl,收缩压,分区=cvp))
    Newcvloss = 26.9429
    函数testloss = myloss(TrainTbl,trainY,TestTbl,testY) [Transformer,NewTrainTbl] = genrfeatures(TrainTbl,trainY,20);NewTestTbl = transform(Transformer,TestTbl);Mdl = fitrlinear(NewTrainTbl,trainY);testloss = loss(Mdl,NewTestTbl,testY);结束

    训练一个线性分类器,只使用返回的数字生成的特征gencfeatures

    加载病人数据集。从变量的子集创建一个表。

    负载病人Tbl =表(年龄,舒张压,身高,自我评估健康状况,...吸烟者、收缩压、体重、性别);

    将数据划分为训练集和测试集。使用大约70%的观测数据作为训练数据,30%的观测数据作为测试数据。使用cvpartition

    rng (“默认”) c = cvpartition(Tbl.Gender,Holdout=0.30);TrainTbl = Tbl(训练(c),:);TestTbl = Tbl(test(c),:);

    使用训练数据生成25个新特征。指定最小冗余最大相关性(MRMR)特征选择方法来选择新特征。

    变压器= gencfeatures(TrainTbl,“性别”25岁的...FeatureSelectionMethod =“mrmr”
    Transformer = FeatureTransformer与属性:类型:'分类' TargetLearner: '线性' NumEngineeredFeatures: 23 NumOriginalFeatures: 2 TotalNumFeatures: 25

    检查生成的特性。

    Info = describe(变压器)
    信息=25×4表类型IsOriginal数据源转换  ___________ __________ ________________________ __________________________________________________________________________________________ zsc(重量)数字真正的重量”标准化与z分数(= 153.1571,std = 26.8229)" eb5(Weight)分类假重量"等宽箱(箱数= 5)" c(SelfAssessedHealthStatus)分类真SelfAssessedHealthStatus "类型变量分类转换自细胞数据类型" zsc(√(收缩))数字假收缩"√()->标准化与z-score (mean = 11.086, std = 0.29694)" zsc(sin(收缩))数字假收缩"sin() ->标准化与z-score (mean = -0.1303," zsc(收缩压./体重)数字假收缩压,体重"收缩压./体重->标准化,z-score(平均值= 0.82662,std = 0.14555)" zsc(年龄+体重)数字假年龄,体重"年龄+体重->标准化,z-score(平均值= 191.1143,std = 28.6976)" zsc(年龄。/体重)数字假年龄,体重"年龄。/体重->标准化,z-score(平均值= 0.25424,std = 0.062486)" zsc(舒张压.*体重)数字假舒张压,“zsc(收缩压+体重)数字假收缩压,体重(平均= 276.1429,标准= 28.7111)”zsc(舒张压-体重)数字假舒张压,体重“舒张压-体重->标准化,z评分(平均= -69.4286,标准= 26.2411)”zsc(年龄-体重)数字假年龄,体重“年龄-重量>标准化与z分数(= -115.2,std = 27.0113)“zsc (Height. /重量)数字假身高、体重和z分数“身高/体重- >标准化。(= 0.44797,std = 0.067992)“zsc(高度。*重量)数字假身高、体重“高度。*重量- >标准化与z分数(= 10291.0714,std = 2111.9071)“zsc(舒张压+重量)数字虚假舒张,重量”舒张期+重量- >标准化与z分数(= 236.8857,std = 29.2439)”⋮

    转换训练集和测试集,但只保留数值预测器。

    numericIdx =(信息。类型= =“数字”);NewTrainTbl = transform(Transformer,TrainTbl,numericIdx);NewTestTbl = transform(Transformer,TestTbl,numericIdx);

    使用转换后的训练数据训练一个线性模型。通过使用混淆矩阵来可视化模型测试集预测的准确性。

    Mdl = fitclinear(NewTrainTbl,TrainTbl.Gender);testLabels = predict(Mdl,NewTestTbl);confusionchart (TestTbl.Gender testLabels)

    图包含一个confusimatrixchart类型的对象。

    输入参数

    全部折叠

    特性转换器,指定为FeatureTransformer对象。

    要转换的特性,指定为表。行必须对应于观察结果,列必须对应于用于生成存储在其中的转换特征的预测器变压器.你可以进入描述(变压器)。数据源查看功能列表资源描述必须包含。

    数据类型:表格

    返回的特征,指定为数值或逻辑向量,表示特征的位置,或字符向量的字符串数组或单元格数组,表示特征的名称。

    例子:1:12

    数据类型:||逻辑|字符串|细胞

    输出参数

    全部折叠

    转换后的特征,作为表返回。每行对应一个观察结果,每列对应一个生成的特征。

    版本历史

    R2021a中引入