前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >使理想的图模型适合图像并创建标签。

使理想的图模型适合图像并创建标签。

作者头像
裴来凡
发布于 2022-05-28 07:42:28
发布于 2022-05-28 07:42:28
57600
代码可运行
举报
运行总次数:0
代码可运行

Q3_final2.m

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
%% Take Home Exam 4: Question 3
% Anja Deric | April 13, 2020

% Clear all variables and load images in
clear all; close all;
filenames{1,1} = '3096_color.jpg';
filenames{1,2} = '42049_color.jpg';
 
for imageCounter = 1:2 %size(filenames,2)
    % Load and display original image
    imdata = imread(filenames{1,imageCounter}); 
    figure(1); subplot(size(filenames,2),3,(imageCounter-1)*3+1); 
    imshow(imdata); title('Original Image');
   
    % Create and normalize feature vector
    [R,C,D] = size(imdata); N = R*C; imdata = double(imdata);
    rowIndices = [1:R]'*ones(1,C); colIndices = ones(R,1)*[1:C];
    % Initialize with row and column indices
    features = [rowIndices(:)';colIndices(:)']; 
    % Add RGB values to feature vector
    for d = 1:D
        imdatad = imdata(:,:,d);
        features = [features;imdatad(:)'];
    end
    % Map all features to [0,1] range 
    minf = min(features,[],2); maxf = max(features,[],2);
    ranges = maxf-minf;
    normalized = diag(ranges.^(-1))*(features-repmat(minf,1,N)); 
    
    % Fit 2-component GMM to image
    params = statset('MaxIter',1000);
    GMModel_2 = fitgmdist(normalized',2,'regularizationValue',1e-10, ...
                'Options',params); 
    
    % Reshape and plot 2-component image
    labels = cluster(GMModel_2,normalized')==2;
    labelImage = reshape(labels,R,C);     
    figure(1); subplot(size(filenames,2),3,(imageCounter-1)*3+2); 
    imshow(uint8(labelImage*255)); title('2 Component Image');
 
    % 10-fold cross validation for 1-6 GMM component models
    kfold_split = cvpartition(length(normalized),'KFold',10); 
    M = 6; K = 10; log_likelihood = zeros(M,K);
    for m = 1:M         % component model
      for k = 1:K     % cross-val
           
            % Get train and test data for each set 
            train_index = kfold_split.training(k);
            test_index = kfold_split.test(k);
            train_data = normalized(:,find(train_index));
            test_data = normalized(:,find(test_index));

            % Fit GMModel to training data
            GMModel = fitgmdist(train_data',m,'regularizationValue',...
                1e-10,'Options',params);
            all_GMModels{m,k} = GMModel;

            % Calculate and store validation log-likelihood
            GMM_pdf = pdf(GMModel,test_data');
            log_likelihood(m,k) = sum(log(GMM_pdf));
            
        end
    end
   
    % Average all likelihoods and find best model order
    averagemleTest = mean(log_likelihood',1)
    [~, best_model] = max(averagemleTest);
    
    % Fit ideal GMModel to image and create labels
    best_GMModel = fitgmdist(normalized',best_model,'regularizationValue',...
        1e-10,'Options',params);
    best_labels = cluster(best_GMModel,normalized')-1;
    
    % Reshape image into original shape and plot
    best_labelImage = reshape(best_labels,R,C); 
    figure(1); subplot(size(filenames,2),3,(imageCounter-1)*3+3);
    imshow(uint8(best_labelImage*255/(best_model-1)));
    title('Best Component Fit');
 
end
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 图像处理与模式识别研究所 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
用N个样本生成和绘制数据集。
Q1_final.m %% Take Home Exam 4: Question 1 % Anja Deric | April 13, 2020 % Clear all variables and generate data clc; clear; all_train_data = generateData(1000, 'Training Data'); all_test_data = generateData(10000, 'Validation Data'); %% Neural Network
裴来凡
2022/05/28
3590
用N个样本生成和绘制数据集。
B.机器学习实战系列[一]:工业蒸汽量预测(最新版本下篇)含特征优化模型融合等
K折交叉验证: KFold 将所有的样例划分为 k 个组,称为折叠 (fold) (如果 k = n, 这等价于 Leave One Out(留一) 策略),都具有相同的大小(如果可能)。预测函数学习时使用 k - 1 个折叠中的数据,最后一个剩下的折叠会用于测试。
汀丶人工智能
2023/03/28
1.6K0
B.机器学习实战系列[一]:工业蒸汽量预测(最新版本下篇)含特征优化模型融合等
模型融合stacking实战
模型融合stacking的原理具体不再解释,有的博客已经解释很清楚了,还是附一张经典图吧,
全栈程序员站长
2022/07/25
4210
nvidia-rapids︱cuML机器学习加速库
cuML是一套用于实现与其他RAPIDS项目共享兼容API的机器学习算法和数学原语函数。
悟乙己
2020/03/27
3.6K0
【数据挖掘项目】Airbnb新用户的民宿预定结果预测
摘要 本文主要根据对Airbnb 新用户的民宿预定结果进行预测,完整的陈述了从 数据探索到 特征工程到 构建模型的整个过程。 其中: 1数据探索部分主要基于 pandas库,利用常见的: head(), value_counts(), describe(), isnull(), unique()等函数以及通过 matplotlib作图对数据进行理解和探索; 2.特征工程部分主要是通过从日期中提取 年月日, 季节, weekday,对年龄进行 分段,计算相关特征之间的 差值,根据用户id进行分组,从而统计一些特征变量的 次数, 平均值, 标准差等等,以及通过 one hot encoding和 labels encoding对数据进行编码来提取特征; 3.构建模型部分主要基于 sklearn包, xgboost包,通过调用不同的模型进行预测,其中涉及到的模型有,逻辑回归模型 LogisticRegression,树模型: DecisionTree,RandomForest,AdaBoost,Bagging,ExtraTree,GraBoost,SVM模型: SVM-rbf,SVM-poly,SVM-linear, xgboost,以及通过改变 模型的参数和 数据量大小,来观察 NDGG的评分结果,从而了解不同模型,不同参数和不同数据量大小对预测结果的影响.
Datawhale
2019/07/08
2.3K0
【数据挖掘项目】Airbnb新用户的民宿预定结果预测
【数据竞赛】Kaggle GM秘技:树模型初始化技巧
作者: 尘沙樱落 树模型初始化技巧 大家都知道神经网络训练的提升分数的技巧之一就是: 依据验证集合的效果,来调整learning rate的大小,从而获得更好的效果; 但我们在训练树模型的时候却往往
黄博的机器学习圈子
2021/02/08
5940
EM算法及其应用
本文介绍了EM算法在机器学习中的原理和应用,包括高斯混合模型(GMM)、隐马尔可夫模型(HMM)和概率图模型(PGM)等。EM算法是一种迭代算法,用于在包含隐变量的概率模型中估计模型参数。EM算法在GMM中的应用是求解模型参数,在HMM中的应用是计算隐藏状态序列的后验概率,在PGM中的应用是计算似然函数。EM算法的两个主要步骤是期望步骤和最大化步骤。期望步骤是估计模型参数的过程,最大化步骤是评估模型参数对数据拟合程度的过程。EM算法在机器学习中的应用非常广泛,可以用于聚类、降维、分类等任务。
GavinZhou
2018/01/02
1.9K0
EM算法及其应用
波动率预测:基于CNN的图像识别策略(附代码)
金融市场主要处理时间序列方面的问题,围绕时间序列预测有大量的算法和工具。 今天,我们使用CNN来基于回归进行预测,并与其他一些传统算法进行比较,看看效果如何。
量化投资与机器学习微信公众号
2020/04/07
4.9K1
波动率预测:基于CNN的图像识别策略(附代码)
机器学习|模型选择之划分数据集及Sklearn实现
直接将数据集D划分为两个互斥的集合:训练集S和测试集T(D = S∪T,S∩T = ∅),在S上训练模型,用T来评估其测试误差。
用户1621951
2019/10/18
2.5K0
【机器学习与实现】线性回归示例——波士顿房价分析
链接:https://pan.quark.cn/s/fc4b2415e371 提取码:ZXjU
Francek Chen
2025/01/22
1240
【机器学习与实现】线性回归示例——波士顿房价分析
打造第一个自训练模型的Core ML应用
苹果人工智能生态系统正逐渐形成,今天我们就借着一个简单的Core ML应用简单窥探一下。
forrestlin
2018/08/20
1.4K0
打造第一个自训练模型的Core ML应用
基于PCA和LDA的k近邻分类器人脸识别。
LDA_KNN.m clear close all clc %% setup load('face.mat'); rng(1) % dimensions width = 46; height = 56; % set some Ns N = size(X, 2); N_faces_per_person = 10; N_people = N / N_faces_per_person; N_features = size(X, 1); % generate train/test split t
裴来凡
2022/05/28
6010
基于PCA和LDA的k近邻分类器人脸识别。
机器学习(十二)交叉验证实例
假设有个未知模型具有一个或多个待定的参数,且有一个数据集能够反映该模型的特征属性(训练集)。
致Great
2018/11/07
2.5K0
总结了九种机器学习集成分类算法(原理+代码)
集成算法(Emseble Learning) 是构建多个学习器,然后通过一定策略结合把它们来完成学习任务的,常常可以获得比单一学习显著优越的学习器。
数据STUDIO
2021/08/13
5.7K0
机器学习实战 | XGBoost建模应用详解
教程地址:http://www.showmeai.tech/tutorials/41
ShowMeAI
2022/03/21
2.7K0
机器学习实战 | XGBoost建模应用详解
房产估值模型训练及预测结果
本文房产估值模型源数据为厦门市房价数据,文件下载链接: https://pan.baidu.com/s/1vOact6MsyZZlTSxjmMqTbw 密码: 8zg6 下载文件打开后如下图所示:
潇洒坤
2018/09/10
1.3K0
房产估值模型训练及预测结果
python︱sklearn一些小技巧的记录(训练集划分/pipelline/交叉验证等)
版权声明:博主原创文章,微信公众号:素质云笔记,转载请注明来源“素质云博客”,谢谢合作!! https://blog.csdn.net/sinat_26917383/article/details/77917881
悟乙己
2019/05/26
1.4K0
基于RandomForestClassifier的titanic生存概率分析
这个是kaggle上的一个基础项目,目的是探测泰坦尼克号上的人员的生存概率,项目地址:https://www.kaggle.com/c/titanic
obaby
2023/02/24
3340
Scikit-learn使用总结
在机器学习和数据挖掘的应用中,scikit-learn是一个功能强大的python包。在数据量不是过大的情况下,可以解决大部分问题。学习使用scikit-learn的过程中,我自己也在补充着机器学习和数据挖掘的知识。这里根据自己学习sklearn的经验,我做一个总结的笔记。另外,我也想把这篇笔记一直更新下去。 01scikit-learn基础介绍 1.1 估计器 估计器,很多时候可以直接理解成分类器,主要包含两个函数: 1、fit():训练算法,设置内部参数。接收训练集和类别两个参数。 2、predic
用户1332428
2018/03/08
1.4K0
Scikit-learn使用总结
【sklearn | 3】时间序列分析与自然语言处理
在前几篇教程中,我们介绍了 sklearn 的基础、高级功能,以及异常检测与降维。本篇教程将探讨两个进一步的应用领域:时间序列分析和自然语言处理(NLP)。
颜淡慕潇
2024/07/22
1380
【sklearn | 3】时间序列分析与自然语言处理
推荐阅读
相关推荐
用N个样本生成和绘制数据集。
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验