Changeset 5325
- Timestamp:
- Aug 29, 2022 11:25:20 AM (15 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASIIseqGUI.py
r5323 r5325 1568 1568 import scipy.cluster.hierarchy as SCH 1569 1569 import scipy.cluster.vq as SCV 1570 import sklearn.cluster as SKC 1570 import sklearn.cluster as SKC 1571 import sklearn.ensemble as SKE 1572 import sklearn.covariance as SKCO 1573 import sklearn.neighbors as SKN 1574 import sklearn.svm as SKVM 1571 1575 1572 1576 SKLearnCite = '''If you use Scikit-Learn Cluster Analysis, please cite: … … 1849 1853 compute = wx.Button(G2frame.dataWindow,label='Compute') 1850 1854 compute.Bind(wx.EVT_BUTTON,OnCompute) 1851 clusSizer.Add(compute )1855 clusSizer.Add(compute,0,WACV) 1852 1856 scikitSizer.Add(clusSizer) 1853 1857 useTxt = '%s used the whitened data matrix'%ClusData['Scikit'] … … 1885 1889 memSizer.Add(wx.StaticText(G2frame.dataWindow,label=text)) 1886 1890 return memSizer 1891 1892 def outlierSizer(): 1893 1894 def OnOutSel(event): 1895 ClusData['OutMethod'] = outsel.GetValue() 1896 OnCompute(event) 1897 1898 def OnCompute(event): 1899 if ClusData['OutMethod'] == 'One-Class SVM': 1900 ClusData['codes'] = SKVM.OneClassSVM().fit_predict(ClusData['DataMatrix']) 1901 elif ClusData['OutMethod'] == 'Isolation Forest': 1902 ClusData['codes'] = SKE.IsolationForest().fit_predict(ClusData['DataMatrix']) 1903 elif ClusData['OutMethod'] == 'Local Outlier Factor': 1904 ClusData['codes'] = SKN.LocalOutlierFactor().fit_predict(ClusData['DataMatrix']) 1905 wx.CallAfter(UpdateClusterAnalysis,G2frame,ClusData,shoNum) 1906 1907 outSizer = wx.BoxSizer(wx.VERTICAL) 1908 outSizer.Add(wx.StaticText(G2frame.dataWindow,label='Outlier (bad data) analysis with Scikit-learn:')) 1909 choice = ['One-Class SVM','Isolation Forest','Local Outlier Factor'] 1910 outline = wx.BoxSizer(wx.HORIZONTAL) 1911 outline.Add(wx.StaticText(G2frame.dataWindow,label='Select method: '),0,WACV) 1912 outsel = wx.ComboBox(G2frame.dataWindow,choices=choice,style=wx.CB_READONLY|wx.CB_DROPDOWN) 1913 outsel.SetValue(ClusData['OutMethod']) 1914 outsel.Bind(wx.EVT_COMBOBOX,OnOutSel) 1915 outline.Add(outsel,0,WACV) 1916 compute = wx.Button(G2frame.dataWindow,label='Compute') 1917 compute.Bind(wx.EVT_BUTTON,OnCompute) 1918 outline.Add(compute,0,WACV) 1919 outSizer.Add(outline) 1920 return outSizer 1887 1921 1888 1922 #patch 1923 ClusData['SKLearn'] = ClusData.get('SKLearn',False) 1889 1924 ClusData['plots'] = ClusData.get('plots','All') 1890 1925 ClusData['Scikit'] = ClusData.get('Scikit','K-Means') 1926 ClusData['OutMethod'] = ClusData.get('OutMethod','Isolation Forest') 1891 1927 #end patch 1892 1928 G2frame.dataWindow.ClearData() … … 1958 1994 mainSizer.Add(subSizer,0,wx.EXPAND) 1959 1995 mainSizer.Add(ScikitSizer()) 1996 1997 if len(ClusData['DataMatrix']) > 15: 1998 G2G.HorizontalLine(mainSizer,G2frame.dataWindow) 1999 mainSizer.Add(outlierSizer()) 2000 Nout = len(ClusData['codes'])-np.count_nonzero(ClusData['codes']+1) 2001 if Nout > 0: 2002 mainSizer.Add(wx.StaticText(G2frame.dataWindow,label='%d Probable outlier data found by %s:'%(Nout,ClusData['OutMethod']))) 2003 text = '' 2004 for i,item in enumerate(ClusData['Files']): 2005 if ClusData['codes'][i] < 0: 2006 text += '(%d) %s\n'%(i,item) 2007 mainSizer.Add(wx.StaticText(G2frame.dataWindow,label=text)) 2008 else: 2009 mainSizer.Add(wx.StaticText(G2frame.dataWindow,label='No outlier data found')) 2010 2011 1960 2012 1961 2013
Note: See TracChangeset
for help on using the changeset viewer.