Sparse Filtering 学习笔记(二)好特征的刻画

本文深入探讨SparseFiltering无监督学习算法,重点解析好特征的定义及其如何指导目标函数的构建与优化过程。SparseFiltering不同于传统特征学习方法,它直接分析训练数据特征分布,仅涉及单一可调参数。
        
         Sparse Filtering 是一个用于提取特征的无监督学习算法,与通常特征学习算法试图建模训练数据的分布的做法不同,Sparse Filtering 直接对训练数据的特征分布进行分析,在所谓“好特征”的指导下构建目标函数来进行优化,其中只涉及一个可调参数。本文将主要讨论两个问题:
(1)什么样的特征是好的特征;
(2)如何利用好特征的条件来构造 Sparse Filtering 的目标函数。


目录链接


(一)网络结构与特征矩阵

(二)好特征的刻画

(三)目标函数的建立和求解





作者: peghoty 

出处: http://blog.csdn.net/itplus/article/details/22073105

欢迎转载/分享, 但请务必声明文章出处.

在MATLAB中,如果你有稀疏矩阵(TF,即sparse双精度数据类型)提取其中的关键特征来进行机器学习通常涉及以下步骤: 1. **数据预处理**: - 确保矩阵是以`sparse`形式存储的,这可以通过使用`ismatrix`和`issparse`函数检查。 - 对于非零元素(即稀疏矩阵中的实际值),可能需要归一化或标准化,因为机器学习算法对特征的尺度敏感。 2. **特征提取**: - 常见的方法有选取具有较高权重的非零元素。你可以使用`nnz`和`find`函数来计算每个列(假设你是列主元)的非零数或提取非零位置。 - 使用`row(full(sparse))`和`nonzeros`可获取行索引和对应的特征值。 3. **选择重要特征**: - 可能根据系数绝对值大小排序(`sortrows(abs(sparseCoefficients), 'descend')`),保留较高的权重。 - 或者使用基于统计学的特征选择方法,如递归特征消除(RFE)、LASSO回归等。 4. **构建特征子集**: - 创建一个新的稠密矩阵,只包含选定的关键特征。 5. **应用到机器学习模型**: - 使用`trainTestSplit`划分训练集和测试集。 - 使用选定的关键特征创建特征向量,适用于线性回归、决策树、SVM等模型(例如`fitlm`、`fitctree`或`fitcsvm`)。 ```matlab % 示例: sparseMatrix = ...; % 输入稀疏矩阵 sparseValues = sparseMatrix(dataCol, :); % 提取某一列的数据 [indices, values] = find(sparseValues); % 获取非零索引和值 % 数据标准化/归一化 normalizedValues = zscore(values); % 根据需要选择前N个最重要的特征 N_features = 10; importantIndices = indices(1:N_features); keyFeatures = full(sparse(indices(N_features+1:end), :, normalizedValues(N_features+1:end))); % 划分数据 X_train, X_test, y_train, y_test = trainTestSplit(keyFeatures, labels, 'TrainProportion', 0.8); % 训练模型 model = fitlm(X_train, y_train); ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值