zoukankan      html  css  js  c++  java
  • 机器学习-一对多(多分类)代码实现(matlab)

    %% Machine Learning Online Class - Exercise 3 | Part 1: One-vs-all
    
    %  Instructions
    %  ------------
    % 
    %  This file contains code that helps you get started on the
    %  linear exercise. You will need to complete the following functions 
    %  in this exericse:
    %
    %     lrCostFunction.m (logistic regression cost function)
    %     oneVsAll.m
    %     predictOneVsAll.m
    %     predict.m
    %
    %  For this exercise, you will not need to change any code in this file,
    %  or any other files other than those mentioned above.
    %
    
    %% Initialization
    clear ; close all; clc
    
    %% Setup the parameters you will use for this part of the exercise
    input_layer_size  = 400;  % 20x20 Input Images of Digits
    num_labels = 10;          % 10 labels, from 1 to 10   
                              % (note that we have mapped "0" to label 10)
    
    %% =========== Part 1: Loading and Visualizing Data =============
    %  We start the exercise by first loading and visualizing the dataset. 
    %  You will be working with a dataset that contains handwritten digits.
    %
    
    % Load Training Data
    fprintf('Loading and Visualizing Data ...
    ')
    
    load('ex3data1.mat'); % training data stored in arrays X, y
    m = size(X, 1);
    size(X, 1);
    
    X=5000*400
    
    size(X, 1) = 5000 取行
    
    size(X,2) = 400 取列
     
    解释
    % Randomly select 100 data points to display
    rand_indices = randperm(m);
    sel = X(rand_indices(1:100), :);
    
    displayData(sel);
    
    fprintf('Program paused. Press enter to continue.
    ');
    pause;
    
    %% ============ Part 2: Vectorize Logistic Regression ============
    %  In this part of the exercise, you will reuse your logistic regression
    %  code from the last exercise. You task here is to make sure that your
    %  regularized logistic regression implementation is vectorized. After
    %  that, you will implement one-vs-all classification for the handwritten
    %  digit dataset.
    %
    
    fprintf('
    Training One-vs-All Logistic Regression...
    ')
    
    lambda = 0.1;
    [all_theta] = oneVsAll(X, y, num_labels, lambda);
    
    fprintf('Program paused. Press enter to continue.
    ');
    pause;
    
    
    %% ================ Part 3: Predict for One-Vs-All ================
    %  After ...
    pred = predictOneVsAll(all_theta, X);
    
    fprintf('
    Training Set Accuracy: %f
    ', mean(double(pred == y)) * 100);
    

      

  • 相关阅读:
    shell脚本之for循环
    shell脚本小集锦
    Java构建指定大小文件
    IntelliJ+Maven+Spring+Tomcat项目搭建(MAC)
    Git下基本命令操作
    Mac下IntelliJ的Git、GitHub配置及使用
    Git下的.DS_Store文件
    Mac下GitHub以及GitHub Desktop使用实战
    idea快捷键
    汉字获取首字符
  • 原文地址:https://www.cnblogs.com/liu-wang/p/9472332.html
Copyright © 2011-2022 走看看