Skip to contents

Softmax regression fitted by batch gradient descent (Geron Ch 4, morie.fn hmmnl)

Usage

morie_geron_multinomial_logistic(
  X,
  Y,
  lr = 0.1,
  n_iter = 1000,
  add_bias = TRUE,
  alpha = 0
)

Arguments

X

Features.

Y

Class indices (0-based) or one-hot matrix.

lr

Learning rate.

n_iter

Iterations.

add_bias

Prepend ones column.

alpha

L2 strength on non-bias rows.

Value

List with Theta, probabilities, prediction, loss_history, loss, accuracy, estimate, n, method.

Examples

V <- c(1, 2, 3, 4, 5, 6, 7, 8)
morie_geron_multinomial_logistic(V, V)
#> $Theta
#>           [,1]      [,2]       [,3]       [,4]      [,5]       [,6]       [,7]
#> [1,] -0.539729  4.520359  2.7455851  1.5287436 0.4731711 -0.5518056 -1.6030701
#> [2,] -1.156444 -1.601855 -0.5333974 -0.0663465 0.2362133  0.4751717  0.6860193
#>            [,8]      [,9]
#> [1,] -2.7057463 -3.867507
#> [2,]  0.8840823  1.076557
#> 
#> $probabilities
#>              [,1]         [,2]         [,3]        [,4]       [,5]       [,6]
#> [1,] 5.132392e-03 5.181414e-01 0.2556815784 0.120800727 0.05689057 0.02592250
#> [2,] 3.099075e-03 2.004108e-01 0.2878708205 0.216972849 0.13828534 0.08001862
#> [3,] 1.106587e-03 4.583896e-02 0.1916623322 0.230452887 0.19877097 0.14606499
#> [4,] 2.785996e-04 7.392480e-03 0.0899741211 0.172584042 0.20145195 0.18799356
#> [5,] 5.583986e-05 9.491055e-04 0.0336253922 0.102893519 0.16253949 0.19262325
#> [6,] 9.503111e-06 1.034657e-04 0.0106702531 0.052087441 0.11135352 0.16758381
#> [7,] 1.434599e-06 1.000510e-05 0.0030034834 0.023389513 0.06766937 0.12932978
#> [8,] 1.984953e-07 8.867511e-07 0.0007748737 0.009626413 0.03769081 0.09147875
#>            [,7]        [,8]        [,9]
#> [1,] 0.01118635 0.004527098 0.001717372
#> [2,] 0.04263562 0.021033991 0.009672908
#> [3,] 0.09609430 0.057791561 0.032217410
#> [4,] 0.15270893 0.111956387 0.075659929
#> [5,] 0.19319689 0.172664171 0.141452340
#> [6,] 0.20753600 0.226106578 0.224549433
#> [7,] 0.19775611 0.262643897 0.316196409
#> [8,] 0.17271161 0.279625393 0.408091061
#> 
#> $prediction
#> [1] 1 2 3 4 6 7 8 8
#> 
#> $loss_history
#>    [1] 2.197225 2.115599 2.072835 2.048486 2.032966 2.021988 2.013575 2.006741
#>    [9] 2.000949 1.995881 1.991340 1.987195 1.983355 1.979759 1.976358 1.973119
#>   [17] 1.970015 1.967025 1.964133 1.961326 1.958593 1.955926 1.953318 1.950763
#>   [25] 1.948255 1.945790 1.943364 1.940975 1.938620 1.936295 1.934000 1.931732
#>   [33] 1.929489 1.927271 1.925075 1.922901 1.920747 1.918613 1.916498 1.914400
#>   [41] 1.912320 1.910257 1.908209 1.906177 1.904160 1.902157 1.900168 1.898193
#>   [49] 1.896231 1.894282 1.892345 1.890421 1.888509 1.886608 1.884719 1.882841
#>   [57] 1.880973 1.879117 1.877271 1.875436 1.873611 1.871795 1.869990 1.868194
#>   [65] 1.866408 1.864631 1.862863 1.861105 1.859355 1.857615 1.855883 1.854159
#>   [73] 1.852444 1.850738 1.849040 1.847350 1.845668 1.843994 1.842328 1.840670
#>   [81] 1.839020 1.837377 1.835742 1.834115 1.832495 1.830882 1.829277 1.827678
#>   [89] 1.826087 1.824504 1.822927 1.821357 1.819794 1.818237 1.816688 1.815145
#>   [97] 1.813609 1.812080 1.810557 1.809041 1.807531 1.806028 1.804531 1.803040
#>  [105] 1.801555 1.800077 1.798605 1.797139 1.795679 1.794225 1.792777 1.791335
#>  [113] 1.789899 1.788468 1.787044 1.785625 1.784212 1.782805 1.781403 1.780007
#>  [121] 1.778617 1.777232 1.775853 1.774479 1.773110 1.771747 1.770389 1.769037
#>  [129] 1.767690 1.766348 1.765011 1.763680 1.762354 1.761032 1.759716 1.758405
#>  [137] 1.757099 1.755798 1.754502 1.753211 1.751925 1.750643 1.749367 1.748095
#>  [145] 1.746828 1.745566 1.744309 1.743056 1.741808 1.740564 1.739326 1.738091
#>  [153] 1.736862 1.735637 1.734416 1.733200 1.731988 1.730781 1.729578 1.728379
#>  [161] 1.727185 1.725995 1.724810 1.723629 1.722452 1.721279 1.720110 1.718946
#>  [169] 1.717786 1.716629 1.715477 1.714330 1.713186 1.712046 1.710910 1.709778
#>  [177] 1.708650 1.707527 1.706407 1.705291 1.704178 1.703070 1.701966 1.700865
#>  [185] 1.699768 1.698675 1.697586 1.696500 1.695418 1.694340 1.693266 1.692195
#>  [193] 1.691128 1.690064 1.689004 1.687948 1.686895 1.685846 1.684800 1.683757
#>  [201] 1.682719 1.681683 1.680651 1.679623 1.678598 1.677576 1.676558 1.675543
#>  [209] 1.674531 1.673523 1.672518 1.671516 1.670518 1.669523 1.668531 1.667542
#>  [217] 1.666556 1.665574 1.664595 1.663619 1.662646 1.661676 1.660709 1.659746
#>  [225] 1.658785 1.657828 1.656873 1.655922 1.654973 1.654028 1.653085 1.652146
#>  [233] 1.651209 1.650276 1.649345 1.648417 1.647492 1.646570 1.645651 1.644734
#>  [241] 1.643821 1.642910 1.642002 1.641097 1.640194 1.639295 1.638398 1.637504
#>  [249] 1.636612 1.635723 1.634837 1.633954 1.633073 1.632195 1.631320 1.630447
#>  [257] 1.629576 1.628709 1.627844 1.626981 1.626121 1.625264 1.624409 1.623556
#>  [265] 1.622707 1.621859 1.621014 1.620172 1.619332 1.618494 1.617659 1.616827
#>  [273] 1.615996 1.615169 1.614343 1.613520 1.612699 1.611881 1.611065 1.610251
#>  [281] 1.609440 1.608631 1.607824 1.607019 1.606217 1.605417 1.604619 1.603824
#>  [289] 1.603031 1.602239 1.601451 1.600664 1.599880 1.599097 1.598317 1.597539
#>  [297] 1.596763 1.595990 1.595218 1.594449 1.593682 1.592916 1.592153 1.591392
#>  [305] 1.590633 1.589876 1.589121 1.588368 1.587618 1.586869 1.586122 1.585377
#>  [313] 1.584635 1.583894 1.583155 1.582418 1.581683 1.580950 1.580219 1.579490
#>  [321] 1.578763 1.578038 1.577314 1.576593 1.575873 1.575156 1.574440 1.573726
#>  [329] 1.573014 1.572303 1.571595 1.570888 1.570184 1.569481 1.568779 1.568080
#>  [337] 1.567382 1.566687 1.565992 1.565300 1.564610 1.563921 1.563234 1.562549
#>  [345] 1.561865 1.561183 1.560503 1.559824 1.559148 1.558473 1.557799 1.557127
#>  [353] 1.556457 1.555789 1.555122 1.554457 1.553793 1.553132 1.552471 1.551813
#>  [361] 1.551156 1.550500 1.549846 1.549194 1.548544 1.547895 1.547247 1.546601
#>  [369] 1.545957 1.545314 1.544672 1.544033 1.543394 1.542758 1.542122 1.541489
#>  [377] 1.540856 1.540226 1.539597 1.538969 1.538342 1.537718 1.537094 1.536472
#>  [385] 1.535852 1.535233 1.534615 1.533999 1.533385 1.532771 1.532160 1.531549
#>  [393] 1.530940 1.530332 1.529726 1.529121 1.528518 1.527916 1.527315 1.526716
#>  [401] 1.526118 1.525521 1.524926 1.524332 1.523739 1.523148 1.522558 1.521969
#>  [409] 1.521382 1.520796 1.520211 1.519628 1.519045 1.518465 1.517885 1.517307
#>  [417] 1.516730 1.516154 1.515579 1.515006 1.514434 1.513864 1.513294 1.512726
#>  [425] 1.512159 1.511593 1.511028 1.510465 1.509903 1.509342 1.508782 1.508224
#>  [433] 1.507667 1.507110 1.506556 1.506002 1.505449 1.504898 1.504348 1.503799
#>  [441] 1.503251 1.502704 1.502158 1.501614 1.501070 1.500528 1.499987 1.499447
#>  [449] 1.498908 1.498371 1.497834 1.497299 1.496764 1.496231 1.495699 1.495168
#>  [457] 1.494638 1.494109 1.493581 1.493055 1.492529 1.492004 1.491481 1.490959
#>  [465] 1.490437 1.489917 1.489398 1.488879 1.488362 1.487846 1.487331 1.486817
#>  [473] 1.486304 1.485792 1.485281 1.484771 1.484262 1.483754 1.483247 1.482741
#>  [481] 1.482236 1.481732 1.481229 1.480727 1.480226 1.479726 1.479227 1.478729
#>  [489] 1.478231 1.477735 1.477240 1.476746 1.476253 1.475760 1.475269 1.474778
#>  [497] 1.474289 1.473800 1.473313 1.472826 1.472340 1.471855 1.471371 1.470888
#>  [505] 1.470406 1.469925 1.469445 1.468966 1.468487 1.468010 1.467533 1.467057
#>  [513] 1.466582 1.466108 1.465635 1.465163 1.464692 1.464221 1.463752 1.463283
#>  [521] 1.462815 1.462348 1.461882 1.461416 1.460952 1.460488 1.460026 1.459564
#>  [529] 1.459103 1.458643 1.458183 1.457725 1.457267 1.456810 1.456354 1.455899
#>  [537] 1.455444 1.454991 1.454538 1.454086 1.453635 1.453185 1.452735 1.452286
#>  [545] 1.451838 1.451391 1.450945 1.450499 1.450054 1.449610 1.449167 1.448725
#>  [553] 1.448283 1.447842 1.447402 1.446963 1.446524 1.446086 1.445649 1.445213
#>  [561] 1.444777 1.444343 1.443909 1.443475 1.443043 1.442611 1.442180 1.441750
#>  [569] 1.441320 1.440891 1.440463 1.440036 1.439609 1.439183 1.438758 1.438333
#>  [577] 1.437910 1.437487 1.437064 1.436643 1.436222 1.435802 1.435382 1.434963
#>  [585] 1.434545 1.434128 1.433711 1.433295 1.432880 1.432465 1.432051 1.431638
#>  [593] 1.431226 1.430814 1.430402 1.429992 1.429582 1.429173 1.428764 1.428357
#>  [601] 1.427949 1.427543 1.427137 1.426732 1.426327 1.425924 1.425520 1.425118
#>  [609] 1.424716 1.424315 1.423914 1.423514 1.423115 1.422716 1.422318 1.421921
#>  [617] 1.421524 1.421128 1.420732 1.420337 1.419943 1.419549 1.419156 1.418764
#>  [625] 1.418372 1.417981 1.417591 1.417201 1.416811 1.416423 1.416035 1.415647
#>  [633] 1.415260 1.414874 1.414488 1.414103 1.413719 1.413335 1.412952 1.412569
#>  [641] 1.412187 1.411805 1.411424 1.411044 1.410664 1.410285 1.409907 1.409529
#>  [649] 1.409151 1.408774 1.408398 1.408022 1.407647 1.407273 1.406899 1.406525
#>  [657] 1.406152 1.405780 1.405408 1.405037 1.404666 1.404296 1.403927 1.403558
#>  [665] 1.403190 1.402822 1.402454 1.402088 1.401721 1.401356 1.400991 1.400626
#>  [673] 1.400262 1.399898 1.399535 1.399173 1.398811 1.398450 1.398089 1.397728
#>  [681] 1.397369 1.397009 1.396651 1.396292 1.395935 1.395578 1.395221 1.394865
#>  [689] 1.394509 1.394154 1.393799 1.393445 1.393092 1.392739 1.392386 1.392034
#>  [697] 1.391682 1.391331 1.390981 1.390631 1.390281 1.389932 1.389584 1.389236
#>  [705] 1.388888 1.388541 1.388194 1.387848 1.387503 1.387157 1.386813 1.386469
#>  [713] 1.386125 1.385782 1.385439 1.385097 1.384755 1.384414 1.384073 1.383733
#>  [721] 1.383393 1.383053 1.382715 1.382376 1.382038 1.381701 1.381364 1.381027
#>  [729] 1.380691 1.380355 1.380020 1.379685 1.379351 1.379017 1.378684 1.378351
#>  [737] 1.378018 1.377686 1.377355 1.377024 1.376693 1.376363 1.376033 1.375704
#>  [745] 1.375375 1.375047 1.374719 1.374391 1.374064 1.373737 1.373411 1.373085
#>  [753] 1.372760 1.372435 1.372110 1.371786 1.371463 1.371139 1.370817 1.370494
#>  [761] 1.370172 1.369851 1.369530 1.369209 1.368889 1.368569 1.368250 1.367931
#>  [769] 1.367612 1.367294 1.366976 1.366659 1.366342 1.366026 1.365710 1.365394
#>  [777] 1.365079 1.364764 1.364449 1.364135 1.363822 1.363509 1.363196 1.362883
#>  [785] 1.362571 1.362260 1.361948 1.361638 1.361327 1.361017 1.360708 1.360398
#>  [793] 1.360090 1.359781 1.359473 1.359165 1.358858 1.358551 1.358245 1.357939
#>  [801] 1.357633 1.357328 1.357023 1.356718 1.356414 1.356110 1.355807 1.355504
#>  [809] 1.355201 1.354899 1.354597 1.354295 1.353994 1.353693 1.353393 1.353093
#>  [817] 1.352793 1.352494 1.352195 1.351896 1.351598 1.351300 1.351003 1.350706
#>  [825] 1.350409 1.350113 1.349817 1.349521 1.349226 1.348931 1.348636 1.348342
#>  [833] 1.348048 1.347755 1.347461 1.347169 1.346876 1.346584 1.346292 1.346001
#>  [841] 1.345710 1.345419 1.345129 1.344839 1.344549 1.344260 1.343971 1.343683
#>  [849] 1.343394 1.343106 1.342819 1.342532 1.342245 1.341958 1.341672 1.341386
#>  [857] 1.341101 1.340816 1.340531 1.340246 1.339962 1.339678 1.339395 1.339112
#>  [865] 1.338829 1.338546 1.338264 1.337982 1.337701 1.337420 1.337139 1.336858
#>  [873] 1.336578 1.336298 1.336019 1.335739 1.335460 1.335182 1.334904 1.334626
#>  [881] 1.334348 1.334071 1.333794 1.333517 1.333241 1.332965 1.332689 1.332414
#>  [889] 1.332139 1.331864 1.331589 1.331315 1.331041 1.330768 1.330495 1.330222
#>  [897] 1.329949 1.329677 1.329405 1.329133 1.328862 1.328591 1.328320 1.328050
#>  [905] 1.327780 1.327510 1.327240 1.326971 1.326702 1.326433 1.326165 1.325897
#>  [913] 1.325629 1.325362 1.325095 1.324828 1.324561 1.324295 1.324029 1.323764
#>  [921] 1.323498 1.323233 1.322968 1.322704 1.322440 1.322176 1.321912 1.321649
#>  [929] 1.321386 1.321123 1.320861 1.320599 1.320337 1.320075 1.319814 1.319553
#>  [937] 1.319292 1.319032 1.318771 1.318511 1.318252 1.317993 1.317733 1.317475
#>  [945] 1.317216 1.316958 1.316700 1.316442 1.316185 1.315928 1.315671 1.315415
#>  [953] 1.315158 1.314902 1.314647 1.314391 1.314136 1.313881 1.313626 1.313372
#>  [961] 1.313118 1.312864 1.312610 1.312357 1.312104 1.311851 1.311599 1.311347
#>  [969] 1.311095 1.310843 1.310592 1.310340 1.310090 1.309839 1.309589 1.309338
#>  [977] 1.309089 1.308839 1.308590 1.308341 1.308092 1.307843 1.307595 1.307347
#>  [985] 1.307099 1.306852 1.306604 1.306357 1.306111 1.305864 1.305618 1.305372
#>  [993] 1.305126 1.304881 1.304635 1.304390 1.304146 1.303901 1.303657 1.303413
#> 
#> $loss
#> [1] 1.303169
#> 
#> $accuracy
#> [1] 0.625
#> 
#> $n_classes
#> [1] 9
#> 
#> $estimate
#> [1] 1.303169
#> 
#> $n
#> [1] 8
#> 
#> $method
#> [1] "Softmax regression fitted by batch gradient descent"
#>