I'll let someone familiar with that code base opine 😉 Gary
On Mon, Mar 11, 2024, 2:48 PM Craig Brautigam <cbrauti...@icr-team.com> wrote: > Gary, > Gary is this something you would agree is an issue? I don't want to go > through the effort of putting an official issue out there if it's something > I'm misunderstanding. Also I definitely do not have enough math chops to > change this type of code, I'm simply trying to do a port from matlab to > java. > > -Craig > > > ________________________________ > From: Gary Gregory <garydgreg...@gmail.com> > Sent: Monday, March 11, 2024 12:27 PM > To: Commons Users List <user@commons.apache.org> > Subject: Re: [External] - Re: > MultivariateNormalMixtureExpectationMaximization only 1 dimension > > [You don't often get email from garydgreg...@gmail.com. Learn why this is > important at https://aka.ms/LearnAboutSenderIdentification ] > > CAUTION: This email originated from outside of the organization. Do not > click links or open attachments unless you recognize the sender and know > the content is safe. > > > Hi Craig, > > In general, the fastest way to address an issue you care about is to > provide a PR in GitHub, with a unit test 😉 > > Gary > > > On Mon, Mar 11, 2024, 2:06 PM Craig Brautigam <cbrauti...@icr-team.com> > wrote: > > > Just bumping this up...Would it be possible to get a fix for this? > > > > > > Thx! > > > > > > ________________________________ > > From: Craig Brautigam <cbrauti...@icr-team.com> > > Sent: Thursday, March 7, 2024 2:47 PM > > To: Commons Users List <user@commons.apache.org> > > Subject: Re: [External] - Re: > > MultivariateNormalMixtureExpectationMaximization only 1 dimension > > > > Alex, > > > > Your fix seems to be working however, there is a similar problem in > > MultivariateNormalMixtureExpectationMaximization.estimate(). The number > of > > components must be at least 2. I think that you should be able to try to > > estimate with 1 component if you want to. The matlab function fitgmdist > > does allow for 1 component, and much of our data does in fact best fit > to > > only 1 component. > > > > Thoughts on fixing that restriction as well? > > > > > > Thx! > > Craig > > > > > > ________________________________ > > From: Alex Herbert <alex.d.herb...@gmail.com> > > Sent: Tuesday, March 5, 2024 11:35 AM > > To: Commons Users List <user@commons.apache.org> > > Subject: [External] - Re: > MultivariateNormalMixtureExpectationMaximization > > only 1 dimension > > > > [You don't often get email from alex.d.herb...@gmail.com. Learn why this > > is important at https://aka.ms/LearnAboutSenderIdentification ] > > > > CAUTION: This email originated from outside of the organization. Do not > > click links or open attachments unless you recognize the sender and know > > the content is safe. > > > > > > I have updated the master branch with a change to allow fitting a mixture > > with 1-column data. > > > > You should be able to pick up the 4.0-SNAPSHOT from the ASF snapshots > repo > > if you configure your build to add the snapshot repository (see [1]). > > > > Let us know if this works for you. Note that if you only require fitting > 1 > > column data then you would be able to optimise the implementation as it > > will no longer require matrix inversion to compute the mixture > probability > > distribution. The CM implementation can act as a reference point for your > > own implementation if desired. > > > > Regards, > > > > Alex > > > > [1] > > > > > https://usg02.safelinks.protection.office365.us/?url=https%3A%2F%2Frepository.apache.org%2Fcontent%2Frepositories%2Fsnapshots%2Forg%2Fapache%2Fcommons%2Fcommons-math4-legacy%2F4.0-SNAPSHOT%2F&data=05%7C02%7Ccbrautigam%40icr-team.com%7Ce02533ac3d844a550c6408dc41f8fbd5%7C3d860a84424d44f9ab2bc61a036b4904%7C0%7C0%7C638457784848076395%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=l%2FPU0SIG1EftKyBiM4uV13PExBK%2FfPPThFePB5YGT1s%3D&reserved=0 > < > https://repository.apache.org/content/repositories/snapshots/org/apache/commons/commons-math4-legacy/4.0-SNAPSHOT/ > > > > < > > > https://usg02.safelinks.protection.office365.us/?url=https%3A%2F%2Frepository.apache.org%2Fcontent%2Frepositories%2Fsnapshots%2Forg%2Fapache%2Fcommons%2Fcommons-math4-legacy%2F4.0-SNAPSHOT%2F&data=05%7C02%7Ccbrautigam%40icr-team.com%7Ce02533ac3d844a550c6408dc41f8fbd5%7C3d860a84424d44f9ab2bc61a036b4904%7C0%7C0%7C638457784848076395%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=l%2FPU0SIG1EftKyBiM4uV13PExBK%2FfPPThFePB5YGT1s%3D&reserved=0 > < > https://repository.apache.org/content/repositories/snapshots/org/apache/commons/commons-math4-legacy/4.0-SNAPSHOT/ > > > > > > > > > On Tue, 5 Mar 2024 at 00:06, Alex Herbert <alex.d.herb...@gmail.com> > > wrote: > > > > > Hi, > > > > > > I think this is a bug in the > > > MultivariateNormalMixtureExpectationMaximization class. When I update > the > > > code to allow 1 column in the rows it outputs a similar fit to matlab. > > > Here's an example of Matlab: > > > > > > X = [normrnd(0, 1, 100, 1); normrnd(2, 2, 100, 1)] > > > GMModel = fitgmdist(X,2); > > > > > > >> GMModel.mu > > > ans = > > > 0.0737 > > > 3.0914 > > > >> GMModel.ComponentProportion > > > ans = > > > 0.6750 0.3250 > > > >> GMModel.Sigma > > > ans(:,:,1) = > > > 1.0505 > > > ans(:,:,2) = > > > 1.6593 > > > > > > I pasted the same X data into a test for > > > MultivariateNormalMixtureExpectationMaximization that had been updated > to > > > allow data with a single column and get the following fit: > > > > > > MultivariateNormalMixtureExpectationMaximization fitter > > > = new MultivariateNormalMixtureExpectationMaximization(data); > > > > > > MixtureMultivariateNormalDistribution initialMix > > > = MultivariateNormalMixtureExpectationMaximization.estimate(data, > 2); > > > fitter.fit(initialMix); > > > MixtureMultivariateNormalDistribution fittedMix = > > fitter.getFittedModel(); > > > List<Pair<Double, MultivariateNormalDistribution>> components = > > > fittedMix.getComponents(); > > > > > > for (Pair<Double, MultivariateNormalDistribution> component : > > components) { > > > final double weight = component.getFirst(); > > > final MultivariateNormalDistribution mvn = component.getSecond(); > > > final double[] mean = mvn.getMeans(); > > > final RealMatrix covMat = mvn.getCovariances(); > > > System.out.printf("%s : %s : %s%n", weight, Arrays.toString(mean), > > > covMat.toString()); > > > } > > > > > > 0.6420433138817465 : [0.016942587744259194] : > > > Array2DRowRealMatrix{{0.9929681356}} > > > 0.3579566861182536 : [2.9152176347671754] : > > > Array2DRowRealMatrix{{1.8940290549}} > > > > > > The numbers are close enough to indicate that the fit is valid. > > > > > > I think the error has been in assuming that because you require 2 > > > components to have a mixture model then you must have 2 columns in the > > > input data. However this is not true. You can fit single dimension data > > > with a mixture of single Gaussians. > > > > > > Is this the functionality that you are expecting? > > > > > > Regards, > > > > > > Alex > > > > > > > > > On Mon, 4 Mar 2024 at 20:48, Craig Brautigam <cbrauti...@icr-team.com> > > > wrote: > > > > > >> Forgive me if this comes in twice... I did not subscribe first before > > >> sending the message below. > > >> > > >> > > >> ________________________________ > > >> From: Craig Brautigam > > >> Sent: Monday, March 4, 2024 1:33 PM > > >> To: user@commons.apache.org <user@commons.apache.org> > > >> Subject: MultivariateNormalMixtureExpectationMaximization only 1 > > dimension > > >> > > >> Hi, > > >> > > >> Full disclosure, I'm not a mathematician so I can not go into the > weeds > > >> into the math. However I am tasked with porting some matlab code that > > is > > >> doing gaussian mixed model to java. I really want to use apache > common > > >> math if possible. However the code that I'm porting has 1 dimension > ( a > > >> single variable/attribute/property) that GMMs are being created from. > > >> > > >> MultivariateNormalMixtureExpectationMaximization looks to be a pretty > > >> close drop in replacement for the matlab functions > > >> > > > https://usg02.safelinks.protection.office365.us/?url=https%3A%2F%2Fwww.mathworks.com%2Fhelp%2Fstats%2Ffitgmdist.html&data=05%7C02%7Ccbrautigam%40icr-team.com%7Ce02533ac3d844a550c6408dc41f8fbd5%7C3d860a84424d44f9ab2bc61a036b4904%7C0%7C0%7C638457784848076395%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=axEi9s5qrPHR55U3wHfNAAdzuXQSLvgbv1jpRBztr%2Fc%3D&reserved=0 > <https://www.mathworks.com/help/stats/fitgmdist.html> > > << > https://usg02.safelinks.protection.office365.us/?url=https%3A%2F%2Fwww.mathworks.com%2Fhelp%2Fstats%2Ffitgmdist.html&data=05%7C02%7Ccbrautigam%40icr-team.com%7Ce02533ac3d844a550c6408dc41f8fbd5%7C3d860a84424d44f9ab2bc61a036b4904%7C0%7C0%7C638457784848076395%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=axEi9s5qrPHR55U3wHfNAAdzuXQSLvgbv1jpRBztr%2Fc%3D&reserved=0 > <https://www.mathworks.com/help/stats/fitgmdist.html>> > > >> > > > https://usg02.safelinks.protection.office365.us/?url=https%3A%2F%2Fwww.mathworks.com%2Fhelp%2Fstats%2Ffitgmdist.html&data=05%7C02%7Ccbrautigam%40icr-team.com%7Ce02533ac3d844a550c6408dc41f8fbd5%7C3d860a84424d44f9ab2bc61a036b4904%7C0%7C0%7C638457784848076395%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=axEi9s5qrPHR55U3wHfNAAdzuXQSLvgbv1jpRBztr%2Fc%3D&reserved=0 > <https://www.mathworks.com/help/stats/fitgmdist.html> > > >< > https://usg02.safelinks.protection.office365.us/?url=https%3A%2F%2Fwww.mathworks.com%2Fhelp%2Fstats%2Ffitgmdist.html&data=05%7C02%7Ccbrautigam%40icr-team.com%7Ce02533ac3d844a550c6408dc41f8fbd5%7C3d860a84424d44f9ab2bc61a036b4904%7C0%7C0%7C638457784848076395%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=axEi9s5qrPHR55U3wHfNAAdzuXQSLvgbv1jpRBztr%2Fc%3D&reserved=0 > <https://www.mathworks.com/help/stats/fitgmdist.html>> andhttps:// > > >> > > > https://usg02.safelinks.protection.office365.us/?url=http%3A%2F%2Fwww.mathworks.com%2Fhelp%2Fstats%2Fgmdistribution.html&data=05%7C02%7Ccbrautigam%40icr-team.com%7Ce02533ac3d844a550c6408dc41f8fbd5%7C3d860a84424d44f9ab2bc61a036b4904%7C0%7C0%7C638457784848076395%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=utF5uDblK8muFJOX8%2BZTb7VYthWRx%2BDvgUhSNBWjV3c%3D&reserved=0 > <http://www.mathworks.com/help/stats/gmdistribution.html> > > < > https://usg02.safelinks.protection.office365.us/?url=http%3A%2F%2Fwww.mathworks.com%2Fhelp%2Fstats%2Fgmdistribution.html&data=05%7C02%7Ccbrautigam%40icr-team.com%7Ce02533ac3d844a550c6408dc41f8fbd5%7C3d860a84424d44f9ab2bc61a036b4904%7C0%7C0%7C638457784848076395%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=utF5uDblK8muFJOX8%2BZTb7VYthWRx%2BDvgUhSNBWjV3c%3D&reserved=0 > <http://www.mathworks.com/help/stats/gmdistribution.html>>, however the > > >> constructor for MultivariateNormalMixtureExpectationMaximization > clearly > > >> states the the number of columns in the double[][]data array MUST be > no > > >> less thatn2 columns. I'm completely baffled as to why this is the > case > > if > > >> I want to try to fit data with 1 dimension in it. Is there a > > workaround I > > >> can use like provide a dummy column of data with all 0s to pacify the > > >> constructor? Is there another class I should be using? > > >> > > >> Any help would be greatly appreciated. > > >> > > >> Thx! > > >> > > >> > > >> ________________________________ > > >> The information contained in this e-mail and any attachments from ICR, > > >> Inc. may contain confidential and/or proprietary information, and is > > >> intended only for the named recipient to whom it was originally > > addressed. > > >> If you are not the intended recipient, any disclosure, distribution, > or > > >> copying of this e-mail or its attachments is strictly prohibited. If > you > > >> have received this e-mail in error, please notify the sender > > immediately by > > >> return e-mail and permanently delete the e-mail and any attachments. > > >> > > > > > > > ________________________________ > > From: Alex Herbert <alex.d.herb...@gmail.com> > > Sent: Tuesday, March 5, 2024 11:35 AM > > To: Commons Users List <user@commons.apache.org> > > Subject: [External] - Re: > MultivariateNormalMixtureExpectationMaximization > > only 1 dimension > > > > [You don't often get email from alex.d.herb...@gmail.com. Learn why this > > is important at https://aka.ms/LearnAboutSenderIdentification ] > > > > CAUTION: This email originated from outside of the organization. Do not > > click links or open attachments unless you recognize the sender and know > > the content is safe. > > > > > > I have updated the master branch with a change to allow fitting a mixture > > with 1-column data. > > > > You should be able to pick up the 4.0-SNAPSHOT from the ASF snapshots > repo > > if you configure your build to add the snapshot repository (see [1]). > > > > Let us know if this works for you. Note that if you only require fitting > 1 > > column data then you would be able to optimise the implementation as it > > will no longer require matrix inversion to compute the mixture > probability > > distribution. The CM implementation can act as a reference point for your > > own implementation if desired. > > > > Regards, > > > > Alex > > > > [1] > > > > > https://usg02.safelinks.protection.office365.us/?url=https%3A%2F%2Frepository.apache.org%2Fcontent%2Frepositories%2Fsnapshots%2Forg%2Fapache%2Fcommons%2Fcommons-math4-legacy%2F4.0-SNAPSHOT%2F&data=05%7C02%7Ccbrautigam%40icr-team.com%7Ce02533ac3d844a550c6408dc41f8fbd5%7C3d860a84424d44f9ab2bc61a036b4904%7C0%7C0%7C638457784848076395%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=l%2FPU0SIG1EftKyBiM4uV13PExBK%2FfPPThFePB5YGT1s%3D&reserved=0 > < > https://repository.apache.org/content/repositories/snapshots/org/apache/commons/commons-math4-legacy/4.0-SNAPSHOT/ > > > > < > > > https://usg02.safelinks.protection.office365.us/?url=https%3A%2F%2Frepository.apache.org%2Fcontent%2Frepositories%2Fsnapshots%2Forg%2Fapache%2Fcommons%2Fcommons-math4-legacy%2F4.0-SNAPSHOT%2F&data=05%7C02%7Ccbrautigam%40icr-team.com%7Ce02533ac3d844a550c6408dc41f8fbd5%7C3d860a84424d44f9ab2bc61a036b4904%7C0%7C0%7C638457784848076395%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=l%2FPU0SIG1EftKyBiM4uV13PExBK%2FfPPThFePB5YGT1s%3D&reserved=0 > < > https://repository.apache.org/content/repositories/snapshots/org/apache/commons/commons-math4-legacy/4.0-SNAPSHOT/ > > > > > > > > > On Tue, 5 Mar 2024 at 00:06, Alex Herbert <alex.d.herb...@gmail.com> > > wrote: > > > > > Hi, > > > > > > I think this is a bug in the > > > MultivariateNormalMixtureExpectationMaximization class. When I update > the > > > code to allow 1 column in the rows it outputs a similar fit to matlab. > > > Here's an example of Matlab: > > > > > > X = [normrnd(0, 1, 100, 1); normrnd(2, 2, 100, 1)] > > > GMModel = fitgmdist(X,2); > > > > > > >> GMModel.mu > > > ans = > > > 0.0737 > > > 3.0914 > > > >> GMModel.ComponentProportion > > > ans = > > > 0.6750 0.3250 > > > >> GMModel.Sigma > > > ans(:,:,1) = > > > 1.0505 > > > ans(:,:,2) = > > > 1.6593 > > > > > > I pasted the same X data into a test for > > > MultivariateNormalMixtureExpectationMaximization that had been updated > to > > > allow data with a single column and get the following fit: > > > > > > MultivariateNormalMixtureExpectationMaximization fitter > > > = new MultivariateNormalMixtureExpectationMaximization(data); > > > > > > MixtureMultivariateNormalDistribution initialMix > > > = MultivariateNormalMixtureExpectationMaximization.estimate(data, > 2); > > > fitter.fit(initialMix); > > > MixtureMultivariateNormalDistribution fittedMix = > > fitter.getFittedModel(); > > > List<Pair<Double, MultivariateNormalDistribution>> components = > > > fittedMix.getComponents(); > > > > > > for (Pair<Double, MultivariateNormalDistribution> component : > > components) { > > > final double weight = component.getFirst(); > > > final MultivariateNormalDistribution mvn = component.getSecond(); > > > final double[] mean = mvn.getMeans(); > > > final RealMatrix covMat = mvn.getCovariances(); > > > System.out.printf("%s : %s : %s%n", weight, Arrays.toString(mean), > > > covMat.toString()); > > > } > > > > > > 0.6420433138817465 : [0.016942587744259194] : > > > Array2DRowRealMatrix{{0.9929681356}} > > > 0.3579566861182536 : [2.9152176347671754] : > > > Array2DRowRealMatrix{{1.8940290549}} > > > > > > The numbers are close enough to indicate that the fit is valid. > > > > > > I think the error has been in assuming that because you require 2 > > > components to have a mixture model then you must have 2 columns in the > > > input data. However this is not true. You can fit single dimension data > > > with a mixture of single Gaussians. > > > > > > Is this the functionality that you are expecting? > > > > > > Regards, > > > > > > Alex > > > > > > > > > On Mon, 4 Mar 2024 at 20:48, Craig Brautigam <cbrauti...@icr-team.com> > > > wrote: > > > > > >> Forgive me if this comes in twice... I did not subscribe first before > > >> sending the message below. > > >> > > >> > > >> ________________________________ > > >> From: Craig Brautigam > > >> Sent: Monday, March 4, 2024 1:33 PM > > >> To: user@commons.apache.org <user@commons.apache.org> > > >> Subject: MultivariateNormalMixtureExpectationMaximization only 1 > > dimension > > >> > > >> Hi, > > >> > > >> Full disclosure, I'm not a mathematician so I can not go into the > weeds > > >> into the math. However I am tasked with porting some matlab code that > > is > > >> doing gaussian mixed model to java. I really want to use apache > common > > >> math if possible. However the code that I'm porting has 1 dimension > ( a > > >> single variable/attribute/property) that GMMs are being created from. > > >> > > >> MultivariateNormalMixtureExpectationMaximization looks to be a pretty > > >> close drop in replacement for the matlab functions > > >> > > > https://usg02.safelinks.protection.office365.us/?url=https%3A%2F%2Fwww.mathworks.com%2Fhelp%2Fstats%2Ffitgmdist.html&data=05%7C02%7Ccbrautigam%40icr-team.com%7Ce02533ac3d844a550c6408dc41f8fbd5%7C3d860a84424d44f9ab2bc61a036b4904%7C0%7C0%7C638457784848076395%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=axEi9s5qrPHR55U3wHfNAAdzuXQSLvgbv1jpRBztr%2Fc%3D&reserved=0 > <https://www.mathworks.com/help/stats/fitgmdist.html> > > << > https://usg02.safelinks.protection.office365.us/?url=https%3A%2F%2Fwww.mathworks.com%2Fhelp%2Fstats%2Ffitgmdist.html&data=05%7C02%7Ccbrautigam%40icr-team.com%7Ce02533ac3d844a550c6408dc41f8fbd5%7C3d860a84424d44f9ab2bc61a036b4904%7C0%7C0%7C638457784848076395%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=axEi9s5qrPHR55U3wHfNAAdzuXQSLvgbv1jpRBztr%2Fc%3D&reserved=0 > <https://www.mathworks.com/help/stats/fitgmdist.html>> > > >> > > > https://usg02.safelinks.protection.office365.us/?url=https%3A%2F%2Fwww.mathworks.com%2Fhelp%2Fstats%2Ffitgmdist.html&data=05%7C02%7Ccbrautigam%40icr-team.com%7Ce02533ac3d844a550c6408dc41f8fbd5%7C3d860a84424d44f9ab2bc61a036b4904%7C0%7C0%7C638457784848076395%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=axEi9s5qrPHR55U3wHfNAAdzuXQSLvgbv1jpRBztr%2Fc%3D&reserved=0 > <https://www.mathworks.com/help/stats/fitgmdist.html> > > >< > https://usg02.safelinks.protection.office365.us/?url=https%3A%2F%2Fwww.mathworks.com%2Fhelp%2Fstats%2Ffitgmdist.html&data=05%7C02%7Ccbrautigam%40icr-team.com%7Ce02533ac3d844a550c6408dc41f8fbd5%7C3d860a84424d44f9ab2bc61a036b4904%7C0%7C0%7C638457784848076395%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=axEi9s5qrPHR55U3wHfNAAdzuXQSLvgbv1jpRBztr%2Fc%3D&reserved=0 > <https://www.mathworks.com/help/stats/fitgmdist.html>> andhttps:// > > >> > > > https://usg02.safelinks.protection.office365.us/?url=http%3A%2F%2Fwww.mathworks.com%2Fhelp%2Fstats%2Fgmdistribution.html&data=05%7C02%7Ccbrautigam%40icr-team.com%7Ce02533ac3d844a550c6408dc41f8fbd5%7C3d860a84424d44f9ab2bc61a036b4904%7C0%7C0%7C638457784848076395%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=utF5uDblK8muFJOX8%2BZTb7VYthWRx%2BDvgUhSNBWjV3c%3D&reserved=0 > <http://www.mathworks.com/help/stats/gmdistribution.html> > > < > https://usg02.safelinks.protection.office365.us/?url=http%3A%2F%2Fwww.mathworks.com%2Fhelp%2Fstats%2Fgmdistribution.html&data=05%7C02%7Ccbrautigam%40icr-team.com%7Ce02533ac3d844a550c6408dc41f8fbd5%7C3d860a84424d44f9ab2bc61a036b4904%7C0%7C0%7C638457784848076395%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=utF5uDblK8muFJOX8%2BZTb7VYthWRx%2BDvgUhSNBWjV3c%3D&reserved=0 > <http://www.mathworks.com/help/stats/gmdistribution.html>>, however the > > >> constructor for MultivariateNormalMixtureExpectationMaximization > clearly > > >> states the the number of columns in the double[][]data array MUST be > no > > >> less thatn2 columns. I'm completely baffled as to why this is the > case > > if > > >> I want to try to fit data with 1 dimension in it. Is there a > > workaround I > > >> can use like provide a dummy column of data with all 0s to pacify the > > >> constructor? Is there another class I should be using? > > >> > > >> Any help would be greatly appreciated. > > >> > > >> Thx! > > >> > > >> > > >> ________________________________ > > >> The information contained in this e-mail and any attachments from ICR, > > >> Inc. may contain confidential and/or proprietary information, and is > > >> intended only for the named recipient to whom it was originally > > addressed. > > >> If you are not the intended recipient, any disclosure, distribution, > or > > >> copying of this e-mail or its attachments is strictly prohibited. If > you > > >> have received this e-mail in error, please notify the sender > > immediately by > > >> return e-mail and permanently delete the e-mail and any attachments. > > >> > > > > > ________________________________ > > The information contained in this e-mail and any attachments from ICR, > > Inc. may contain confidential and/or proprietary information, and is > > intended only for the named recipient to whom it was originally > addressed. > > If you are not the intended recipient, any disclosure, distribution, or > > copying of this e-mail or its attachments is strictly prohibited. If you > > have received this e-mail in error, please notify the sender immediately > by > > return e-mail and permanently delete the e-mail and any attachments. > > > > ________________________________ > From: Gary Gregory <garydgreg...@gmail.com> > Sent: Monday, March 11, 2024 12:27 PM > To: Commons Users List <user@commons.apache.org> > Subject: Re: [External] - Re: > MultivariateNormalMixtureExpectationMaximization only 1 dimension > > [You don't often get email from garydgreg...@gmail.com. Learn why this is > important at https://aka.ms/LearnAboutSenderIdentification ] > > CAUTION: This email originated from outside of the organization. Do not > click links or open attachments unless you recognize the sender and know > the content is safe. > > > Hi Craig, > > In general, the fastest way to address an issue you care about is to > provide a PR in GitHub, with a unit test 😉 > > Gary > > > On Mon, Mar 11, 2024, 2:06 PM Craig Brautigam <cbrauti...@icr-team.com> > wrote: > > > Just bumping this up...Would it be possible to get a fix for this? > > > > > > Thx! > > > > > > ________________________________ > > From: Craig Brautigam <cbrauti...@icr-team.com> > > Sent: Thursday, March 7, 2024 2:47 PM > > To: Commons Users List <user@commons.apache.org> > > Subject: Re: [External] - Re: > > MultivariateNormalMixtureExpectationMaximization only 1 dimension > > > > Alex, > > > > Your fix seems to be working however, there is a similar problem in > > MultivariateNormalMixtureExpectationMaximization.estimate(). The number > of > > components must be at least 2. I think that you should be able to try to > > estimate with 1 component if you want to. The matlab function fitgmdist > > does allow for 1 component, and much of our data does in fact best fit > to > > only 1 component. > > > > Thoughts on fixing that restriction as well? > > > > > > Thx! > > Craig > > > > > > ________________________________ > > From: Alex Herbert <alex.d.herb...@gmail.com> > > Sent: Tuesday, March 5, 2024 11:35 AM > > To: Commons Users List <user@commons.apache.org> > > Subject: [External] - Re: > MultivariateNormalMixtureExpectationMaximization > > only 1 dimension > > > > [You don't often get email from alex.d.herb...@gmail.com. Learn why this > > is important at https://aka.ms/LearnAboutSenderIdentification ] > > > > CAUTION: This email originated from outside of the organization. Do not > > click links or open attachments unless you recognize the sender and know > > the content is safe. > > > > > > I have updated the master branch with a change to allow fitting a mixture > > with 1-column data. > > > > You should be able to pick up the 4.0-SNAPSHOT from the ASF snapshots > repo > > if you configure your build to add the snapshot repository (see [1]). > > > > Let us know if this works for you. Note that if you only require fitting > 1 > > column data then you would be able to optimise the implementation as it > > will no longer require matrix inversion to compute the mixture > probability > > distribution. The CM implementation can act as a reference point for your > > own implementation if desired. > > > > Regards, > > > > Alex > > > > [1] > > > > > https://usg02.safelinks.protection.office365.us/?url=https%3A%2F%2Frepository.apache.org%2Fcontent%2Frepositories%2Fsnapshots%2Forg%2Fapache%2Fcommons%2Fcommons-math4-legacy%2F4.0-SNAPSHOT%2F&data=05%7C02%7Ccbrautigam%40icr-team.com%7Ce02533ac3d844a550c6408dc41f8fbd5%7C3d860a84424d44f9ab2bc61a036b4904%7C0%7C0%7C638457784848076395%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=l%2FPU0SIG1EftKyBiM4uV13PExBK%2FfPPThFePB5YGT1s%3D&reserved=0 > < > https://repository.apache.org/content/repositories/snapshots/org/apache/commons/commons-math4-legacy/4.0-SNAPSHOT/ > > > > < > > > https://usg02.safelinks.protection.office365.us/?url=https%3A%2F%2Frepository.apache.org%2Fcontent%2Frepositories%2Fsnapshots%2Forg%2Fapache%2Fcommons%2Fcommons-math4-legacy%2F4.0-SNAPSHOT%2F&data=05%7C02%7Ccbrautigam%40icr-team.com%7Ce02533ac3d844a550c6408dc41f8fbd5%7C3d860a84424d44f9ab2bc61a036b4904%7C0%7C0%7C638457784848076395%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=l%2FPU0SIG1EftKyBiM4uV13PExBK%2FfPPThFePB5YGT1s%3D&reserved=0 > < > https://repository.apache.org/content/repositories/snapshots/org/apache/commons/commons-math4-legacy/4.0-SNAPSHOT/ > > > > > > > > > On Tue, 5 Mar 2024 at 00:06, Alex Herbert <alex.d.herb...@gmail.com> > > wrote: > > > > > Hi, > > > > > > I think this is a bug in the > > > MultivariateNormalMixtureExpectationMaximization class. When I update > the > > > code to allow 1 column in the rows it outputs a similar fit to matlab. > > > Here's an example of Matlab: > > > > > > X = [normrnd(0, 1, 100, 1); normrnd(2, 2, 100, 1)] > > > GMModel = fitgmdist(X,2); > > > > > > >> GMModel.mu > > > ans = > > > 0.0737 > > > 3.0914 > > > >> GMModel.ComponentProportion > > > ans = > > > 0.6750 0.3250 > > > >> GMModel.Sigma > > > ans(:,:,1) = > > > 1.0505 > > > ans(:,:,2) = > > > 1.6593 > > > > > > I pasted the same X data into a test for > > > MultivariateNormalMixtureExpectationMaximization that had been updated > to > > > allow data with a single column and get the following fit: > > > > > > MultivariateNormalMixtureExpectationMaximization fitter > > > = new MultivariateNormalMixtureExpectationMaximization(data); > > > > > > MixtureMultivariateNormalDistribution initialMix > > > = MultivariateNormalMixtureExpectationMaximization.estimate(data, > 2); > > > fitter.fit(initialMix); > > > MixtureMultivariateNormalDistribution fittedMix = > > fitter.getFittedModel(); > > > List<Pair<Double, MultivariateNormalDistribution>> components = > > > fittedMix.getComponents(); > > > > > > for (Pair<Double, MultivariateNormalDistribution> component : > > components) { > > > final double weight = component.getFirst(); > > > final MultivariateNormalDistribution mvn = component.getSecond(); > > > final double[] mean = mvn.getMeans(); > > > final RealMatrix covMat = mvn.getCovariances(); > > > System.out.printf("%s : %s : %s%n", weight, Arrays.toString(mean), > > > covMat.toString()); > > > } > > > > > > 0.6420433138817465 : [0.016942587744259194] : > > > Array2DRowRealMatrix{{0.9929681356}} > > > 0.3579566861182536 : [2.9152176347671754] : > > > Array2DRowRealMatrix{{1.8940290549}} > > > > > > The numbers are close enough to indicate that the fit is valid. > > > > > > I think the error has been in assuming that because you require 2 > > > components to have a mixture model then you must have 2 columns in the > > > input data. However this is not true. You can fit single dimension data > > > with a mixture of single Gaussians. > > > > > > Is this the functionality that you are expecting? > > > > > > Regards, > > > > > > Alex > > > > > > > > > On Mon, 4 Mar 2024 at 20:48, Craig Brautigam <cbrauti...@icr-team.com> > > > wrote: > > > > > >> Forgive me if this comes in twice... I did not subscribe first before > > >> sending the message below. > > >> > > >> > > >> ________________________________ > > >> From: Craig Brautigam > > >> Sent: Monday, March 4, 2024 1:33 PM > > >> To: user@commons.apache.org <user@commons.apache.org> > > >> Subject: MultivariateNormalMixtureExpectationMaximization only 1 > > dimension > > >> > > >> Hi, > > >> > > >> Full disclosure, I'm not a mathematician so I can not go into the > weeds > > >> into the math. However I am tasked with porting some matlab code that > > is > > >> doing gaussian mixed model to java. I really want to use apache > common > > >> math if possible. However the code that I'm porting has 1 dimension > ( a > > >> single variable/attribute/property) that GMMs are being created from. > > >> > > >> MultivariateNormalMixtureExpectationMaximization looks to be a pretty > > >> close drop in replacement for the matlab functions > > >> > > > https://usg02.safelinks.protection.office365.us/?url=https%3A%2F%2Fwww.mathworks.com%2Fhelp%2Fstats%2Ffitgmdist.html&data=05%7C02%7Ccbrautigam%40icr-team.com%7Ce02533ac3d844a550c6408dc41f8fbd5%7C3d860a84424d44f9ab2bc61a036b4904%7C0%7C0%7C638457784848076395%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=axEi9s5qrPHR55U3wHfNAAdzuXQSLvgbv1jpRBztr%2Fc%3D&reserved=0 > <https://www.mathworks.com/help/stats/fitgmdist.html> > > << > https://usg02.safelinks.protection.office365.us/?url=https%3A%2F%2Fwww.mathworks.com%2Fhelp%2Fstats%2Ffitgmdist.html&data=05%7C02%7Ccbrautigam%40icr-team.com%7Ce02533ac3d844a550c6408dc41f8fbd5%7C3d860a84424d44f9ab2bc61a036b4904%7C0%7C0%7C638457784848076395%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=axEi9s5qrPHR55U3wHfNAAdzuXQSLvgbv1jpRBztr%2Fc%3D&reserved=0 > <https://www.mathworks.com/help/stats/fitgmdist.html>> > > >> > > > https://usg02.safelinks.protection.office365.us/?url=https%3A%2F%2Fwww.mathworks.com%2Fhelp%2Fstats%2Ffitgmdist.html&data=05%7C02%7Ccbrautigam%40icr-team.com%7Ce02533ac3d844a550c6408dc41f8fbd5%7C3d860a84424d44f9ab2bc61a036b4904%7C0%7C0%7C638457784848076395%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=axEi9s5qrPHR55U3wHfNAAdzuXQSLvgbv1jpRBztr%2Fc%3D&reserved=0 > <https://www.mathworks.com/help/stats/fitgmdist.html> > > >< > https://usg02.safelinks.protection.office365.us/?url=https%3A%2F%2Fwww.mathworks.com%2Fhelp%2Fstats%2Ffitgmdist.html&data=05%7C02%7Ccbrautigam%40icr-team.com%7Ce02533ac3d844a550c6408dc41f8fbd5%7C3d860a84424d44f9ab2bc61a036b4904%7C0%7C0%7C638457784848076395%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=axEi9s5qrPHR55U3wHfNAAdzuXQSLvgbv1jpRBztr%2Fc%3D&reserved=0 > <https://www.mathworks.com/help/stats/fitgmdist.html>> andhttps:// > > >> > > > https://usg02.safelinks.protection.office365.us/?url=http%3A%2F%2Fwww.mathworks.com%2Fhelp%2Fstats%2Fgmdistribution.html&data=05%7C02%7Ccbrautigam%40icr-team.com%7Ce02533ac3d844a550c6408dc41f8fbd5%7C3d860a84424d44f9ab2bc61a036b4904%7C0%7C0%7C638457784848076395%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=utF5uDblK8muFJOX8%2BZTb7VYthWRx%2BDvgUhSNBWjV3c%3D&reserved=0 > <http://www.mathworks.com/help/stats/gmdistribution.html> > > < > https://usg02.safelinks.protection.office365.us/?url=http%3A%2F%2Fwww.mathworks.com%2Fhelp%2Fstats%2Fgmdistribution.html&data=05%7C02%7Ccbrautigam%40icr-team.com%7Ce02533ac3d844a550c6408dc41f8fbd5%7C3d860a84424d44f9ab2bc61a036b4904%7C0%7C0%7C638457784848076395%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=utF5uDblK8muFJOX8%2BZTb7VYthWRx%2BDvgUhSNBWjV3c%3D&reserved=0 > <http://www.mathworks.com/help/stats/gmdistribution.html>>, however the > > >> constructor for MultivariateNormalMixtureExpectationMaximization > clearly > > >> states the the number of columns in the double[][]data array MUST be > no > > >> less thatn2 columns. I'm completely baffled as to why this is the > case > > if > > >> I want to try to fit data with 1 dimension in it. Is there a > > workaround I > > >> can use like provide a dummy column of data with all 0s to pacify the > > >> constructor? Is there another class I should be using? > > >> > > >> Any help would be greatly appreciated. > > >> > > >> Thx! > > >> > > >> > > >> ________________________________ > > >> The information contained in this e-mail and any attachments from ICR, > > >> Inc. may contain confidential and/or proprietary information, and is > > >> intended only for the named recipient to whom it was originally > > addressed. > > >> If you are not the intended recipient, any disclosure, distribution, > or > > >> copying of this e-mail or its attachments is strictly prohibited. If > you > > >> have received this e-mail in error, please notify the sender > > immediately by > > >> return e-mail and permanently delete the e-mail and any attachments. > > >> > > > > > > > ________________________________ > > From: Alex Herbert <alex.d.herb...@gmail.com> > > Sent: Tuesday, March 5, 2024 11:35 AM > > To: Commons Users List <user@commons.apache.org> > > Subject: [External] - Re: > MultivariateNormalMixtureExpectationMaximization > > only 1 dimension > > > > [You don't often get email from alex.d.herb...@gmail.com. Learn why this > > is important at https://aka.ms/LearnAboutSenderIdentification ] > > > > CAUTION: This email originated from outside of the organization. Do not > > click links or open attachments unless you recognize the sender and know > > the content is safe. > > > > > > I have updated the master branch with a change to allow fitting a mixture > > with 1-column data. > > > > You should be able to pick up the 4.0-SNAPSHOT from the ASF snapshots > repo > > if you configure your build to add the snapshot repository (see [1]). > > > > Let us know if this works for you. Note that if you only require fitting > 1 > > column data then you would be able to optimise the implementation as it > > will no longer require matrix inversion to compute the mixture > probability > > distribution. The CM implementation can act as a reference point for your > > own implementation if desired. > > > > Regards, > > > > Alex > > > > [1] > > > > > https://usg02.safelinks.protection.office365.us/?url=https%3A%2F%2Frepository.apache.org%2Fcontent%2Frepositories%2Fsnapshots%2Forg%2Fapache%2Fcommons%2Fcommons-math4-legacy%2F4.0-SNAPSHOT%2F&data=05%7C02%7Ccbrautigam%40icr-team.com%7Ce02533ac3d844a550c6408dc41f8fbd5%7C3d860a84424d44f9ab2bc61a036b4904%7C0%7C0%7C638457784848076395%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=l%2FPU0SIG1EftKyBiM4uV13PExBK%2FfPPThFePB5YGT1s%3D&reserved=0 > < > https://repository.apache.org/content/repositories/snapshots/org/apache/commons/commons-math4-legacy/4.0-SNAPSHOT/ > > > > < > > > https://usg02.safelinks.protection.office365.us/?url=https%3A%2F%2Frepository.apache.org%2Fcontent%2Frepositories%2Fsnapshots%2Forg%2Fapache%2Fcommons%2Fcommons-math4-legacy%2F4.0-SNAPSHOT%2F&data=05%7C02%7Ccbrautigam%40icr-team.com%7Ce02533ac3d844a550c6408dc41f8fbd5%7C3d860a84424d44f9ab2bc61a036b4904%7C0%7C0%7C638457784848076395%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=l%2FPU0SIG1EftKyBiM4uV13PExBK%2FfPPThFePB5YGT1s%3D&reserved=0 > < > https://repository.apache.org/content/repositories/snapshots/org/apache/commons/commons-math4-legacy/4.0-SNAPSHOT/ > > > > > > > > > On Tue, 5 Mar 2024 at 00:06, Alex Herbert <alex.d.herb...@gmail.com> > > wrote: > > > > > Hi, > > > > > > I think this is a bug in the > > > MultivariateNormalMixtureExpectationMaximization class. When I update > the > > > code to allow 1 column in the rows it outputs a similar fit to matlab. > > > Here's an example of Matlab: > > > > > > X = [normrnd(0, 1, 100, 1); normrnd(2, 2, 100, 1)] > > > GMModel = fitgmdist(X,2); > > > > > > >> GMModel.mu > > > ans = > > > 0.0737 > > > 3.0914 > > > >> GMModel.ComponentProportion > > > ans = > > > 0.6750 0.3250 > > > >> GMModel.Sigma > > > ans(:,:,1) = > > > 1.0505 > > > ans(:,:,2) = > > > 1.6593 > > > > > > I pasted the same X data into a test for > > > MultivariateNormalMixtureExpectationMaximization that had been updated > to > > > allow data with a single column and get the following fit: > > > > > > MultivariateNormalMixtureExpectationMaximization fitter > > > = new MultivariateNormalMixtureExpectationMaximization(data); > > > > > > MixtureMultivariateNormalDistribution initialMix > > > = MultivariateNormalMixtureExpectationMaximization.estimate(data, > 2); > > > fitter.fit(initialMix); > > > MixtureMultivariateNormalDistribution fittedMix = > > fitter.getFittedModel(); > > > List<Pair<Double, MultivariateNormalDistribution>> components = > > > fittedMix.getComponents(); > > > > > > for (Pair<Double, MultivariateNormalDistribution> component : > > components) { > > > final double weight = component.getFirst(); > > > final MultivariateNormalDistribution mvn = component.getSecond(); > > > final double[] mean = mvn.getMeans(); > > > final RealMatrix covMat = mvn.getCovariances(); > > > System.out.printf("%s : %s : %s%n", weight, Arrays.toString(mean), > > > covMat.toString()); > > > } > > > > > > 0.6420433138817465 : [0.016942587744259194] : > > > Array2DRowRealMatrix{{0.9929681356}} > > > 0.3579566861182536 : [2.9152176347671754] : > > > Array2DRowRealMatrix{{1.8940290549}} > > > > > > The numbers are close enough to indicate that the fit is valid. > > > > > > I think the error has been in assuming that because you require 2 > > > components to have a mixture model then you must have 2 columns in the > > > input data. However this is not true. You can fit single dimension data > > > with a mixture of single Gaussians. > > > > > > Is this the functionality that you are expecting? > > > > > > Regards, > > > > > > Alex > > > > > > > > > On Mon, 4 Mar 2024 at 20:48, Craig Brautigam <cbrauti...@icr-team.com> > > > wrote: > > > > > >> Forgive me if this comes in twice... I did not subscribe first before > > >> sending the message below. > > >> > > >> > > >> ________________________________ > > >> From: Craig Brautigam > > >> Sent: Monday, March 4, 2024 1:33 PM > > >> To: user@commons.apache.org <user@commons.apache.org> > > >> Subject: MultivariateNormalMixtureExpectationMaximization only 1 > > dimension > > >> > > >> Hi, > > >> > > >> Full disclosure, I'm not a mathematician so I can not go into the > weeds > > >> into the math. However I am tasked with porting some matlab code that > > is > > >> doing gaussian mixed model to java. I really want to use apache > common > > >> math if possible. However the code that I'm porting has 1 dimension > ( a > > >> single variable/attribute/property) that GMMs are being created from. > > >> > > >> MultivariateNormalMixtureExpectationMaximization looks to be a pretty > > >> close drop in replacement for the matlab functions > > >> > > > https://usg02.safelinks.protection.office365.us/?url=https%3A%2F%2Fwww.mathworks.com%2Fhelp%2Fstats%2Ffitgmdist.html&data=05%7C02%7Ccbrautigam%40icr-team.com%7Ce02533ac3d844a550c6408dc41f8fbd5%7C3d860a84424d44f9ab2bc61a036b4904%7C0%7C0%7C638457784848076395%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=axEi9s5qrPHR55U3wHfNAAdzuXQSLvgbv1jpRBztr%2Fc%3D&reserved=0 > <https://www.mathworks.com/help/stats/fitgmdist.html> > > << > https://usg02.safelinks.protection.office365.us/?url=https%3A%2F%2Fwww.mathworks.com%2Fhelp%2Fstats%2Ffitgmdist.html&data=05%7C02%7Ccbrautigam%40icr-team.com%7Ce02533ac3d844a550c6408dc41f8fbd5%7C3d860a84424d44f9ab2bc61a036b4904%7C0%7C0%7C638457784848076395%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=axEi9s5qrPHR55U3wHfNAAdzuXQSLvgbv1jpRBztr%2Fc%3D&reserved=0 > <https://www.mathworks.com/help/stats/fitgmdist.html>> > > >> > > > https://usg02.safelinks.protection.office365.us/?url=https%3A%2F%2Fwww.mathworks.com%2Fhelp%2Fstats%2Ffitgmdist.html&data=05%7C02%7Ccbrautigam%40icr-team.com%7Ce02533ac3d844a550c6408dc41f8fbd5%7C3d860a84424d44f9ab2bc61a036b4904%7C0%7C0%7C638457784848076395%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=axEi9s5qrPHR55U3wHfNAAdzuXQSLvgbv1jpRBztr%2Fc%3D&reserved=0 > <https://www.mathworks.com/help/stats/fitgmdist.html> > > >< > https://usg02.safelinks.protection.office365.us/?url=https%3A%2F%2Fwww.mathworks.com%2Fhelp%2Fstats%2Ffitgmdist.html&data=05%7C02%7Ccbrautigam%40icr-team.com%7Ce02533ac3d844a550c6408dc41f8fbd5%7C3d860a84424d44f9ab2bc61a036b4904%7C0%7C0%7C638457784848076395%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=axEi9s5qrPHR55U3wHfNAAdzuXQSLvgbv1jpRBztr%2Fc%3D&reserved=0 > <https://www.mathworks.com/help/stats/fitgmdist.html>> andhttps:// > > >> > > > https://usg02.safelinks.protection.office365.us/?url=http%3A%2F%2Fwww.mathworks.com%2Fhelp%2Fstats%2Fgmdistribution.html&data=05%7C02%7Ccbrautigam%40icr-team.com%7Ce02533ac3d844a550c6408dc41f8fbd5%7C3d860a84424d44f9ab2bc61a036b4904%7C0%7C0%7C638457784848076395%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=utF5uDblK8muFJOX8%2BZTb7VYthWRx%2BDvgUhSNBWjV3c%3D&reserved=0 > <http://www.mathworks.com/help/stats/gmdistribution.html> > > < > https://usg02.safelinks.protection.office365.us/?url=http%3A%2F%2Fwww.mathworks.com%2Fhelp%2Fstats%2Fgmdistribution.html&data=05%7C02%7Ccbrautigam%40icr-team.com%7Ce02533ac3d844a550c6408dc41f8fbd5%7C3d860a84424d44f9ab2bc61a036b4904%7C0%7C0%7C638457784848076395%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=utF5uDblK8muFJOX8%2BZTb7VYthWRx%2BDvgUhSNBWjV3c%3D&reserved=0 > <http://www.mathworks.com/help/stats/gmdistribution.html>>, however the > > >> constructor for MultivariateNormalMixtureExpectationMaximization > clearly > > >> states the the number of columns in the double[][]data array MUST be > no > > >> less thatn2 columns. I'm completely baffled as to why this is the > case > > if > > >> I want to try to fit data with 1 dimension in it. Is there a > > workaround I > > >> can use like provide a dummy column of data with all 0s to pacify the > > >> constructor? Is there another class I should be using? > > >> > > >> Any help would be greatly appreciated. > > >> > > >> Thx! > > >> > > >> > > >> ________________________________ > > >> The information contained in this e-mail and any attachments from ICR, > > >> Inc. may contain confidential and/or proprietary information, and is > > >> intended only for the named recipient to whom it was originally > > addressed. > > >> If you are not the intended recipient, any disclosure, distribution, > or > > >> copying of this e-mail or its attachments is strictly prohibited. If > you > > >> have received this e-mail in error, please notify the sender > > immediately by > > >> return e-mail and permanently delete the e-mail and any attachments. > > >> > > > > > ________________________________ > > The information contained in this e-mail and any attachments from ICR, > > Inc. may contain confidential and/or proprietary information, and is > > intended only for the named recipient to whom it was originally > addressed. > > If you are not the intended recipient, any disclosure, distribution, or > > copying of this e-mail or its attachments is strictly prohibited. If you > > have received this e-mail in error, please notify the sender immediately > by > > return e-mail and permanently delete the e-mail and any attachments. > > > ________________________________ > The information contained in this e-mail and any attachments from ICR, > Inc. may contain confidential and/or proprietary information, and is > intended only for the named recipient to whom it was originally addressed. > If you are not the intended recipient, any disclosure, distribution, or > copying of this e-mail or its attachments is strictly prohibited. If you > have received this e-mail in error, please notify the sender immediately by > return e-mail and permanently delete the e-mail and any attachments. >