变换
使用生成的特征转换新数据
描述
例子
使用生成的特征计算交叉验证均方误差
生成特征来训练线性回归模型。计算模型的交叉验证均方误差(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)
输入参数
变压器
- - - - - -变压器特性
FeatureTransformer
对象
特性转换器,指定为FeatureTransformer
对象。
资源描述
- - - - - -要转换的特性
表格
要转换的特性,指定为表。行必须对应于观察结果,列必须对应于用于生成存储在其中的转换特征的预测器变压器
.你可以进入描述(变压器)。数据源
查看功能列表资源描述
必须包含。
数据类型:表格
指数
- - - - - -要返回的特性
数值向量|逻辑向量|字符串数组|字符向量的单元格数组
返回的特征,指定为数值或逻辑向量,表示特征的位置,或字符向量的字符串数组或单元格数组,表示特征的名称。
例子:1:12
数据类型:单
|双
|逻辑
|字符串
|细胞
输出参数
NewTbl
-转换功能
表格
转换后的特征,作为表返回。每行对应一个观察结果,每列对应一个生成的特征。
版本历史
R2021a中引入
Abrir比如
Tiene una versión modificada de este ejemplo。¿Desea abrir este ejemplo con sus modificaciones?
MATLAB突击队
Ha hecho clic en unenlace que对应一个este commando de MATLAB:
弹射突击队introduciéndolo en la ventana de commandos de MATLAB。Los navegadores web no permission comandos de MATLAB。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。