Selecting Features for Classifying High-dimensional Data

6. 特定区域处理 在进行图像处理时,有时只需要对图像中的某个特定区域进行处理,而并不需要对整个图像进行处理。比如要对用户选定的一个特定的一个区域作均值滤波或对比度增强,MATLAB就可以只对特定的区域进行处理。 1.指定感兴趣区域        MATLAB中对特定区域的处理是通过二值掩模来实现的。用户选定一个区域后会生成一个与原图大小相同的二值图像,选定的区域为白色,其余部分为黑色。通过掩模图像就可实 阅读详情

Reducing the number of features (dimensionality) is important in statistical learning. For many data sets with a large number of features and a limited number of observations, such as bioinformatics data, usually many features are not useful for producing a desired learning result and the limited observations may lead the learning algorithm to overfit to the noise. Reducing features can also save storage and computation time and increase comprehensibility.

There are two main approaches to reducing features: feature selection and feature transformation. Feature selection algorithms select a subset of features from the original feature set; feature transformation methods transform data from the original high-dimensional feature space to a new space with reduced dimensionality.

This demo focuses on feature selection techniques. More specifically, this demo shows how to use the functions in the Statistics Toolbox™ to perform sequential feature selection, which is one of the most popular feature selection algorithms. It also shows how to use holdout and cross-validation to evaluate the performance of the selected features.

Contents

Loading the Data

Serum proteomic pattern diagnostics can be used to differentiate observations from patients with and without disease. Profile patterns are generated using surface-enhanced laser desorption and ionization (SELDI) protein mass spectrometry. These features are ion intensity levels at specific mass/charge values.

The data in this demo is from the FDA-NCI Clinical Proteomics Program Databank. This demo uses the high-resolution ovarian cancer data set that was generated using the WCX2 protein array. After some pre-processing steps, similar to those shown in the Bioinformatics Toolbox™ demo Pre-processing Raw Mass Spectrometry Data, the data set has two variables obs and grp. The obs variable consists 216 observations with 5000 features. Each element in grp defines the group to which the corresponding row of obs belongs.

load ovariancancer;
whos
  Name        Size                Bytes  Class     Attributes

  grp       216x1                 26784  cell
  obs       216x4000            3456000  single

Dividing Data Into a Training Set and a Test Set

Some of the functions used in this demo call MATLAB® built-in random number generation functions. To duplicate the exact results shown in this demo, execute the command below to set the random number generator to a known state. Otherwise, your results may differ.

rng(8000,'twister');

The performance on the training data (resubstitution performance) is not a good estimate for a model's performance on an independent test set. Resubstitution performance will usually be over-optimistic. To predict the performance of a selected model, you need to assess its performance on another data set that was not used to build the model. Here, we use cvpartition to divide data into a training set of size 160 and a test set of size of size 56. Both the training set and the test set have roughly the same group proportions as in grp. We select features using the training data and judge the performance of the selected features on the test data. This is often called holdout validation. Another simple and widely-used method for evaluating and selecting a model is cross-validation, which will be illustrated later in this demo.

holdoutCVP = cvpartition(grp,'holdout',56)
holdoutCVP =

Hold-out cross validation partition
             N: 216
   NumTestSets: 1
     TrainSize: 160
      TestSize: 56
dataTrain = obs(holdoutCVP.training,:);
grpTrain = grp(holdoutCVP.training);

The Problem of Classifying Data Using All the Features

Without first reducing the number of features, some classification algorithms would fail on the data set used in this demo, since the number of features is much larger than the number of observations. In this demo, we use Quadratic Discriminant Analysis (QDA) as the classification algorithm. If we apply QDA on the data using all the features, as shown in the following, we will get an error because there are not enough samples in each group to estimate a covariance matrix.

try
   yhat = classify(obs(holdoutCVP.test(),:), dataTrain, grpTrain,'quadratic'
);
catch ME
   display(ME.message);
end
The covariance matrix of each group in TRAINING must be positive definite.

Selecting Features Using a Simple Filter Approach

Our goal is to reduce the dimension of the data by finding a small set of important features which can give good classification performance. Feature selection algorithms can be roughly grouped into two categories: filter methods and wrapper methods. Filter methods rely on general characteristics of the data to evaluate and to select the feature subsets without involving the chosen learning algorithm (QDA in this demo). Wrapper methods use the performance of the chosen learning algorithm to evaluate each candidate feature subset. Wrapper methods search for features better fit for the chosen learning algorithm, but they can be significantly slower than filter methods if the learning algorithm takes a long time to run. The concepts of "filters" and "wrappers" are described in John G. Kohavi R. (1997) "Wrappers for feature subset selection", Artificial Intelligence, Vol.97, No.1-2, pp.272-324. This demo shows one example of a filter method and one example of a wrapper method.

Filters are usually used as a pre-processing step since they are simple and fast. A widely-used filter method for bioinformatics data is to apply a univariate criterion separately on each feature, assuming that there is no interaction between features.

For example, we might apply the t-test on each feature and compare p-value (or the absolute values of t-statistics) for each feature as a measure of how effective it is at separating groups.

dataTrainG1 = dataTrain(grp2idx(grpTrain)==1,:);
dataTrainG2 = dataTrain(grp2idx(grpTrain)==2,:);
[h,p,ci,stat] = ttest2(dataTrainG1,dataTrainG2,[],[],'unequal');

In order to get a general idea of how well-separated the two groups are by each feature, we plot the empirical cumulative distribution function (CDF) of the p-values:

ecdf(p);
xlabel('P value');
ylabel('CDF value')

There are about 35% of features having p-values close to zero and over 50% of features having p-values smaller than 0.05, meaning there are more than 2500 features among the original 5000 features that have strong discrimination power. One can sort these features according to their p-values (or the absolute values of the t-statistic) and select some features from the sorted list. However, it is usually difficult to decide how many features are needed unless one has some domain knowledge or the maximum number of features that can be considered has been dictated in advance based on outside constraints.

One quick way to decide the number of needed features is to plot the MCE (misclassification error, i.e., the number of misclassified observations divided by the number of observations) on the test set as a function of the number of features. Since there are only 160 observations in the training set, the largest number of features for applying QDA is limited, otherwise, there may not be enough samples in each group to estimate a covariance matrix. Actually, for the data used in this demo, the holdout partition and the sizes of two groups dictate that the largest allowable number of features for applying QDA is about 70. Now we compute MCE for various numbers of features between 5 and 70 and show the plot of MCE as a function of the number of features. In order to reasonably estimate the performance of the selected model, it is important to use the 160 training samples to fit the QDA model and compute the MCE on the 56 test observations (blue circular marks in the following plot). To illustrate why resubstitution error is not a good error estimate of the test error, we also show the resubstitution MCE using red triangular marks.

[~,featureIdxSortbyP]= sort(p,2); % sort the features
testMCE =zeros(1,14);
resubMCE = zeros(1,14);
nfs = 5:5:70;
classf = @(xtrain,ytrain,xtest,ytest) ...
             sum(~strcmp(ytest,classify(xtest,xtrain,ytrain,'quadratic')));
resubCVP = cvpartition(length(grp),'resubstitution')
for i=1:14
   fs = featureIdxSortbyP(1:nfs(i));
   testMCE(i) = crossval(classf,obs(:,fs),grp,'partition',holdoutCVP)...
       /holdoutCVP.TestSize;
   resubMCE(i) = crossval(classf,obs(:,fs),grp,'partition',resubCVP)/...
       resubCVP.TestSize;
end
 plot(nfs, testMCE,'o',nfs,resubMCE,'r^');
 xlabel('Number of Features');
 ylabel('MCE');
 legend({'MCE on the test set' 'Resubstitution MCE'},'location','NW');
 title('Simple Filter Feature Selection Method');
resubCVP =

Resubstitution (no partition of data)
             N: 216
   NumTestSets: 1
     TrainSize: 216
      TestSize: 216

For convenience, classf is defined as an anonymous function. It fits QDA on the given training set and returns the number of misclassified samples for the given test set. If you were developing your own classification algorithm, you might want to put it in a separate file, as follows:

%  function err = classf(xtrain,ytrain,xtest,ytest)
%       yfit = classify(xtest,xtrain,ytrain,'quadratic');
%        err = sum(~strcmp(ytest,yfit));

The resubstitution MCE is over-optimistic. It consistently decreases when more features are used and drops to zero when more than 60 features are used. However, if the test error increases while the resubstitution error still decreases, then overfitting may have occurred. This simple filter feature selection method gets the smallest MCE on the test set when 15 features are used. The plot shows overfitting begins to occur when 20 or more features are used. The smallest MCE on the test set is 12.5%:

testMCE(3)
ans =

    0.1250

These are the first 15 features that achieve the minimum MCE:

featureIdxSortbyP(1:15)
ans =

  Columns 1 through 6

        2814        2813        2721        2720        2452        2645

  Columns 7 through 12

        2644        2642        2650        2643        2731        2638

  Columns 13 through 15

        2730        2637        2398

Applying Sequential Feature Selection

The above feature selection algorithm does not consider interaction between features; besides, features selected from the list based on their individual ranking may also contain redundant information, so that not all the features are needed. For example, the linear correlation coefficient between the first selected feature (column 2814) and the second selected feature (column 2813) is almost 0.95.

corr(dataTrain(:,featureIdxSortbyP(1)),dataTrain(:,featureIdxSortbyP(2)))
ans =

    0.9447

This kind of simple feature selection procedure is usually used as a pre-processing step since it is fast. More advanced feature selection algorithms improve the performance. Sequential feature selection is one of the most widely used techniques. It selects a subset of features by sequentially adding (forward search) or removing (backward search) until certain stopping conditions are satisfied.

In this demo, we use forward sequential feature selection in a wrapper fashion to find important features. More specifically, since the typical goal of classification is to minimize the MCE, the feature selection procedure performs a sequential search using the MCE of the learning algorithm QDA on each candidate feature subset as the performance indicator for that subset. The training set is used to select the features and to fit the QDA model, and the test set is used to evaluate the performance of the finally selected feature. During the feature selection procedure, to evaluate and to compare the performance of the each candidate feature subset, we apply stratified 10-fold cross-validation to the training set. We will illustrate later why applying cross-validation to the training set is important.

First we generate a stratified 10-fold partition for the training set:

tenfoldCVP = cvpartition(grpTrain,'kfold',10)
tenfoldCVP =

K-fold cross validation partition
             N: 160
   NumTestSets: 10
     TrainSize: 144  144  144  144  144  144  144  144  144  144
      TestSize: 16  16  16  16  16  16  16  16  16  16

Then we use the filter results from the previous section as a pre-processing step to select features. For example, we select 150 features here:

fs1 = featureIdxSortbyP(1:150);

We apply forward sequential feature selection on these 150 features. The function sequentialfs provides a simple way (the default option) to decide how many features are needed. It stops when the first local minimum of the cross-validation MCE is found.

 fsLocal = sequentialfs(classf,dataTrain(:,fs1),grpTrain,'cv',tenfoldCVP);

The selected features are the following:

fs1(fsLocal)
ans =

        2337         864        3288

To evaluate the performance of the selected model with these three features, we compute the MCE on the 56 test samples.

testMCELocal = crossval(classf,obs(:,fs1(fsLocal)),grp,'partition',...
    holdoutCVP)/holdoutCVP.TestSize
testMCELocal =

    0.0714

With only three features being selected, the MCE is only a little over half of the smallest MCE using the simple filter feature selection method.

The algorithm may have stopped prematurely. Sometimes a smaller MCE is achievable by looking for the minimum of the cross-validation MCE over a reasonable range of number of features. For example, we draw the plot of the cross-validation MCE as a function of the number of features for up to 50 features.

[fsCVfor50,historyCV] = sequentialfs(classf,dataTrain(:,fs1),grpTrain,...
    'cv',tenfoldCVP,'Nf',50);
plot(historyCV.Crit,'o');
xlabel('Number of Features');
ylabel('CV MCE');
title('Forward Sequential Feature Selection with cross-validation');

The cross-validation MCE reaches the minimum value when 10 features are used and this curve stays flat over the range from 10 features to 35 features. Also, the curve goes up when more than 35 features are used, which means overfitting occurs there.

It is usually preferable to have fewer features, so here we pick 10 features:

fsCVfor10 = fs1(historyCV.In(10,:))
fsCVfor10 =

  Columns 1 through 6

        2814        2721        2720        2452        2650        2731

  Columns 7 through 10

        2337        2658         864        3288

To show these 10 features in the order in which they are selected in the sequential forward procedure, we find the row in which they first become true in the historyCV output:

[orderlist,ignore] = find( [historyCV.In(1,:); diff(historyCV.In(1:10,:) )]'
 );
fs1(orderlist)
ans =

  Columns 1 through 6

        2337         864        3288        2721        2814        2658

  Columns 7 through 10

        2452        2731        2650        2720

To evaluate these 10 features, we compute their MCE for QDA on the test set. We get the smallest MCE value so far:

testMCECVfor10 = crossval(classf,obs(:,fsCVfor10),grp,'partition',...
    holdoutCVP)/holdoutCVP.TestSize
testMCECVfor10 =

    0.0357

It is interesting to look at the plot of resubstitution MCE values on the training set (i.e., without performing cross-validation during the feature selection procedure) as a function of the number of features:

[fsResubfor50,historyResub] = sequentialfs(classf,dataTrain(:,fs1),...
     grpTrain,'cv','resubstitution','Nf',50);
plot(1:50, historyCV.Crit,'bo',1:50, historyResub.Crit,'r^');
xlabel('Number of Features');
ylabel('MCE');
legend({'10-fold CV MCE' 'Resubstitution MCE'},'location','NE');

Again, the resubstitution MCE values are overly optimistic here. Most are smaller than the cross-validation MCE values, and the resubstitution MCE goes to zero when 16 features are used. We can compute the MCE value of these 16 features on the test set to see their real performance:

fsResubfor16 = fs1(historyResub.In(16,:));
testMCEResubfor16 = crossval(classf,obs(:,fsResubfor16),grp,'partition',...
    holdoutCVP)/holdoutCVP.TestSize
testMCEResubfor16 =

    0.0714

testMCEResubfor16, the performance of these 16 features (chosen by resubstitution during the feature selection procedure) on the test set, is about double that for testMCECVfor10, the performance of the 10 features (chosen by 10-fold cross-validation during the feature selection procedure) on the test set. It again indicates that the resubstitution error generally is not a good performance estimate for evaluating and selecting features. We may want to avoid using resubstitution error, not only during the final evaluation step, but also during the feature selection procedure.

3.5矩阵信息的获取 矩阵的信息主要包括矩阵结构、矩阵大小、矩阵维度、矩阵的数据类型及内存占用等。 1。矩阵结构 矩阵的结构是指矩阵子元素的排列方式。MATLAB提供了各种测试函数 函数名称      函数功能 isempty(A)    检测矩阵是否为空 isscalar(A)  检测矩阵是否是单矩阵元素的变量矩阵 isvector(A)   检测矩阵是否是只具有一行或一列元素的一维向量 iss 阅读详情

相关推荐

顺序特征选择:更新的 SEQUENTIALFS 函数,以便:a) 可以包含/排除变量组 b) 加速选择过程-matlab开发

SEQUENTIALFS* 中添加了以下参数: 'groups':一个单元向量,其中每个单元包含初始 X 矩阵中的列数,这些列将作为一个变量处理,即同时选择或拒绝。 默认为空,即每一列都作为单独的变量处理 'accelerate':0 到 1 之间的数字。默认值为 0(无加速)。 在每次迭代中,'accelerate' 乘以每个新特征返回的错误分数。 然后将这个数量与前一次迭代的最佳得分进行比较。 与最佳特征相比具有更高加权误差的每个特征,要么被排除在最终选择(前向选择)之外,要么被包含在最终选择(后向选择)中,而无需进行任何评估 * https://mathworks.com/help/stats/sequentialfs.html

MATLAB判别分析报错:The covariance matrix of each group in TRAINING must be positive definite.

MATLAB马氏距离判别法classify报错 作业题目: 银行的贷款部门需要判别每个客户的信用好坏(是否未履行还贷责任),以决定是否给予贷款。可以根据贷款申请人的年龄(X1)、受教育程度(X2)、现在所从事工作的年数(X3)、未变更住址的年数(X4)、收入(X5)、负债收入比例(X6)、信用卡债务(X7)、其它债务(X8)等来判断其信用情况。下表是从某银行的客户资料中抽取的部分数据,和某客户的如...

weixin_46237892的博客 6584

selectFeatures:改进了线性或二次判别分析的顺序特征选择。-matlab开发

Matlab 的 Sequentialfs.m 为线性或二次判别模型提供了一种快速但可以说是次优的特征选择算法。 此提交提供了一种通常较慢但优化得更好的前向选择算法。 它使用用户选择的交叉验证方法依次选择预测器/特征,以提高交叉验证分类的准确性。 该函数提供与sequ​​entialfs.m 相同的交叉验证选项(Holdout、KFold、Leaveout),但还提供了一个额外的可定制选项“sets”(参见函数中的帮助部分)。 如果两个或多个候选特征将模型的分类准确度提高到相同程度(即“平局”),则算法继续进行候选特征的下一个“深度”,分别针对每个平局特征。 继续进行下一个深度,直到确定绑定级别的一个特征明确地产生最佳精度(与更深的后续特征相结合)。 用户可以指定搜索“决胜局”的最大深度,或者,默认情况下,算法可以进行到无限深度(实际上,通常不超过 3-4)。 如果在比较绑定候选时达到指定

matlab多维数据分类,选择用于高维数据分类的特征

加载数据血清蛋白质组图谱诊断可用于区分患者和非患者的观测值。图谱是使用表面增强激光解吸电离 (SELDI) 蛋白质质谱法产生的。这些特征是特定质荷比下的离子强度水平。此示例用到了使用 WCX2 蛋白质阵列生成的高分辨率卵巢癌数据集。经过一些预处理步骤(类似于 Bioinformatics Toolbox™ 示例预处理原始质谱数据中所示的步骤),数据集现在包含两个变量 obs 和 grp。obs 变...

weixin_30673719的博客 2029

细聊Oracle通过ODBC数据源连接SQL Server数据库

    类似文章搜索引擎上有很多,内容大致相同,今天所谓细聊是因为我在借鉴这些文章时候走了些弯路,所以写此文,为自己备忘,同时如果能为初涉此处知识点的小伙伴提供些帮助就更好了,废话不多说。    我的应用场景:    项目系统使用oracle数据库,与客户的第三方系统供应商实现资源共享,对方为sql server数据库;    我的测试开发环境为64bitwin7PC机,本机上装有64位Oracl...

xueren_83的博客 1万+

自动化测试-自愈技术

随着人工智能的发展,作为一名软件测试工程师,相信大家都会思考如何把这一前沿技术引入到我们的自动化测试当中,想一万遍不如做一遍。,传递当前页面状态,获取之前成功的定位器路径,比较它们,并生成修复的定位器列表。如果修复成功,我们可以使用 Healenium Idea 插件更新我们的自动化测试代码:插件使用修复定位器寻找修复和更新测试代码。的旧定位器去定位按钮的时候,脚本就会报错,提示 “NoSuchElement”的错误异常。现在,我们假设开发人员变更了应用程序的UI界面,改变了这个按钮的id属性,从。

qq_58223744的博客 2660

sequentialfs matlab,新手求教matlab的 sequentialfs函数用法

满意答案云姐a4552016.01.11采纳率:43%等级:8已帮助:1110人sequentialfs Sequential feature selection.INMODEL = sequentialfs(FUN,X,Y) selects a subset of features from Xthat best predict the data in Y, by sequentiall...

weixin_33417904的博客 550

【WebRTC】【Unity】Unity Web RTC1-Unity中简单实现远程画面

平台:基本常用平台包括安卓,苹果(max和IOS),Windows64,Linux都行。10. 注意,如果从移动设备浏览器连接服务,信令服务器的SSL证书一定要先设好。想要在Unity中实现实时远程桌面,找到了Render Streaming这个手段,本篇介绍相应的使用方法和实例。8. 打开电脑浏览器,地址栏输入http://127.0.0.1,点击Receiver Sample。新建Unity项目,模板选Third Person,Project Name随意。启动App,控制台出现如下信息表示成功。

每日出拳老爷子的博客 2518

特征选择 (Sequentialfs Function)

特征选择 (Sequentialfs Function) 什么是特征选择 特征选择是指从一组给定的特征集中,按照某一准则选择出一组具有良好区分特性的特征子集。特征选择又称独立评估法,在进行特征选择时一般都是利用某种评价函数独立地对每个原始特征项进行评分,然后将它们按分值的高低排序,从中选取若干个分值最高的特征项。 特征选择实际包含两个方面:特征提取和特征选择。特征提取是一种将数据从高维空间到低维空...

Clare_Yang的博客 2269

【100%通过率】华为OD机试真题 C 实现【最多等和不相交连续子序列】【2022.11 Q4 新题】

给定一个数组,我们称其中连续的元素为连续子序列,称这些元素的和为连续子序列的和。数组中可能存在几组连续子序列,组内的连续子序列互不相交且有相同的和。求一组连续子序列,组内子序列的数目最多。输出这个数目。

MISAYAONE的博客 1万+

Loki 分布式日志中心服务

分布式日志中心 Loki + Promtail + Grafana

原名又逢乱世。不要放下学习的脚步,毕竟比天天打牌、钓鱼、打游戏更能从内在充实自己。 2353

Matlab sequentialfs函数

依次选择特征的函数 INMODEL = sequentialfs(FUN,X,Y)

ChanMon的博客 1403

Kimodo 入门教程(一)英伟达开源人形机器人动捕数据集训练运动学动作扩散模型

Kimodo是一个基于700小时商用光学动作捕捉数据集训练的运动学动作扩散模型,能够生成高质量的人体和机器人3D动作。该模型支持通过文本提示和多种约束条件(如关键帧、末端执行器位置等)进行控制,并提供数字人类和类人机器人两种模型变体。安装方式包括软件包安装和源代码安装两种,需要配置HuggingFace令牌以访问文本编码器。推荐使用GPU加速,最低需要17GB显存。项目提供命令行生成和交互式演示两种使用方式,演示程序支持时间轴编辑和实时3D可视化。模型分为商用友好版和受限版,其中SMPL-X版本需要额外申请

2506_90492529的博客 1926

贝叶斯判别法做了,中途报了以下错误:

贝叶斯判别法做了,中途报了以下错误: >> ObjBayes=NaiveBayes.fit(training,group); ??? Error using ==> NaiveBayes.fit>gaussianFit at 535 The within-class variance in each feature of TRAINING must be positive. The with

Alexzhang369学习总结空间 2258

uniapp(全端兼容) - 超详细接入百度统计功能,给uniapp全平台各端项目引入添加百度统计的插件统计流量详细的步骤教程(提供最新的百度统计源代码,详细的示例代码复制粘贴即可快速搞定!)

uniapp h5 app 使用加入接入百度统计,uniapp百度统计,uniapp详细引入百度统计的教程,uniapp接入百度统计,uniapp如何实现加入百度的统计代码,uniapp怎么植入百度统计详细教程,uniapp如何对接百度统计,uniapp百度统计不生效怎么办,uniapp使用百度统计不生效常见问题,uniapp引入百度统计后没有生效,uniapp h5网页接入百度统计代码后没有统计无效,uniapp最新接入使用百度统计功能,uniapp增加百度统计代码,uniapp app如何接入百度统计,

✅ 精选推荐文章 1万+

【WorkBuddy从入门到精通实战教程】使用手册 第 2 章 WorkBuddy的下载、安装、登录与更新

摘要:WorkBuddy官方下载地址为https://www.codebuddy.cn/work/,支持Mac和Windows系统,需根据设备自动匹配版本。安装时需核对发布者信息,Mac用户需拖入应用程序文件夹。登录支持微信扫码或手机号,公司电脑安装需IT授权。更新通过个人中心检查,遇到安装包损坏、登录失败或文件读写问题时,建议重新下载、检查网络/权限或联系官方支持。重要文件建议定期备份,避免直接操作原文件。(149字)

企鹅码农的专属播客,分享10多年的实战案例和经验解读,包含YOLO、RT-DETR、AI等各个工作领域。 1823

【Matlab】错误使用 classify (line 233) The pooled covariance matrix of TRAINING must be positive definite.

把 TYPE 改成 'diagLinear' 或 'diagQuadratic'

YaoYee_21的博客 3824

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

AMOS错误提示

An error occurred while attempting to fit the model.拟合模型时出现一个错误。 The sample moment matrix is not positive definite. It could fail to be positive definite for any of the following reasons:样本协方差矩阵是非正...

weixin_30847865的博客 1万+

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

2.数据的预处理

数据导入MATLAB之后,通常需要对数据进行一些预处理,例如平滑处理(去噪)、标准化变换和极差归一化变换等。 1.数据的平滑处理    1.1 smooth函数平滑处理 1.2 smoothts函数平滑处理 1.3 medfilt1函数平滑处理 2. 数据的标准化变换 3. 数据的极差归一化变换

技术提高效率 2万+

线性模型出现非正定矩阵的问题解释

常常在Mplus中求解线性结构方程的时候出现 如下警告:  WARNING:  THE LATENT VARIABLE COVARIANCE MATRIX (PSI) IS NOT POSITIVE 1 背景:          大约不少人找了很多书籍,要么一笔带过,要么只给出结论,让人终觉疑虑满满。是线性代数的知识,但是你去翻书,人也未必告诉你,那么这类问题在那里呢,这个问题属于数值分

fitzgerald0的博客 1万+

基于MATLAB的机器学习模型构建与优化-回归与分类算法的应用

MATLAB是一个高性能的数值计算和可视化工具,广泛应用于工程、科学和数据分析等领域。MATLAB提供了多种工具箱(Toolbox)来支持机器学习建模,其中最常用的是,该工具箱为用户提供了多种机器学习算法,包括回归、分类、聚类等。数据加载与预处理模型训练模型评估结果分析与可视化本文将通过回归和分类模型的实现,演示如何在MATLAB中完成这些步骤。在本文中,我们详细介绍了如何在MATLAB中实现回归和分类模型,涵盖了从数据预处理、模型训练到评估和优化的全过程。

一键难忘的博客 3585

sequentialfs matlab,Matlab功能选择

我试图通过从它作为我的测试数据并在其上应用sequentialfs的随机行来学习300 * 299训练矩阵中的相关特征.我使用了以下代码:>> Md1=fitcdiscr(xtrain,ytrain);>> func = @(xtrain, ytrain, xtest, ytest) sum(ytest ~= predict(Md1,xtest));>> lea...

weixin_42509518的博客 235

matlab 分类(判别)函数classify()

附录四判别分析 在生产、科学研究和日常生活中,经常会遇到对某一研究对象属于哪种情况作出 判断。例如要根据这两天天气情况判断明天是否会下雨;医生要根据病人的体温、白血 球数目及其它症状判断此病人是否会患某种疾病等等。 从概率论的角度看,可把判别问题归结为如下模型。设共有 n个总体: ξ ,ξ , ,ξ n 1 2 L 其中 i ξ 是m 维随机变量,其分布函数为 ( , , ) i

follow your heart... 1万+

MATLAB图形用户界面(GUI)中按钮组(Button Group)和面板(Panel)这两种控件的区别

按钮组中的单选按钮是互斥的,面板中的单选按钮则类似于复选框。   按钮组中选择某一个单选按钮(Radio Button)后,其他的自动变成不选的状态。   面板中的单选按钮每一个都可以选择,也都可以取消选择。 如果要实现单选的效果,需要在单选按钮回调中设置其他按钮的Value属性的值.   不只是单选按钮有这种效果,切换按钮(toggle button)也是这样的: 如...

booksyhay的专栏 2万+
上一篇: Something about the HTK tool
下一篇: Matlab常用操作。。
xiaoding133
博客等级 码龄19年 415粉丝 159原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值