建模:
組件-Python:
import Orange import numpy domain2 = Orange.data.Domain( [ Orange.feature.Continuous('FX1'), Orange.feature.Continuous('FY1'), Orange.feature.Continuous('F1'), Orange.feature.Continuous('FX2'), Orange.feature.Continuous('FY2'), Orange.feature.Continuous('F2'), Orange.feature.Discrete('Failure', values=['A', 'B', 'C']) ] ) data2 = Orange.data.Table(domain2) for v in in_data: Failure = 'C' if v['iris'] == 'Iris-setosa': Failure = 'A' elif v['iris'] == 'Iris-versicolor': Failure = 'B' v2 = [ float(v['sepal width']), float(v['sepal length']), float(v['sepal width'] * v['sepal length']), float(v['petal width']), float(v['petal length']), float(v['petal width'] * v['petal length']), Failure ] data2.append(v2) out_data = data2
組件-Scatter Plot:
組件-Data Table:
程式碼:
# -*- coding: utf-8 -*- import Orange def PrepareData(): data = Orange.data.Table('iris') domain2 = Orange.data.Domain( [ Orange.feature.Continuous('FX1'), Orange.feature.Continuous('FY1'), Orange.feature.Continuous('F1'), Orange.feature.Continuous('FX2'), Orange.feature.Continuous('FY2'), Orange.feature.Continuous('F2'), Orange.feature.Discrete('Failure', values=['A', 'B', 'C']) ] ) data2 = Orange.data.Table(domain2) for v in data: Failure = 'C' if v['iris'] == 'Iris-setosa': Failure = 'A' elif v['iris'] == 'Iris-versicolor': Failure = 'B' v2 = [ float(v['sepal width']), float(v['sepal length']), float(v['sepal width'] * v['sepal length']), float(v['petal width']), float(v['petal length']), float(v['petal width'] * v['petal length']), Failure ] data2.append(v2) return data2 def DescriptiveStat(data): descriptiveStat = Orange.statistics.basic.Domain(data) print "%4s %6s %6s %6s" % (u'欄位', u'最小值', u'最大值', u'平均值') for stat in descriptiveStat: if stat: print "%5s %8.3f %8.3f %8.3f" % (stat.variable.name, stat.min, stat.max, stat.avg) def PrintData(data): for v in data: print "%s" % (v['Failure']) print "\tFX1=%8.3f" % (v['FX1']), print "\tFY1=%8.3f" % (v['FY1']), print "\tF1 =%8.3f" % (v['F1']), print "\tFX2=%8.3f" % (v['FX2']), print "\tFY2=%8.3f" % (v['FY2']), print "\tF2 =%8.3f" % (v['F2']) def PrintFailureData(data, failureType): print "%s" % (failureType) for v in data.filter(Failure=failureType): print "\tFX1=%8.3f" % (v['FX1']), print "\tFY1=%8.3f" % (v['FY1']), print "\tF1 =%8.3f" % (v['F1']), print "\tFX2=%8.3f" % (v['FX2']), print "\tFY2=%8.3f" % (v['FY2']), print "\tF2 =%8.3f" % (v['F2']) if __name__ == '__main__': data = PrepareData() DescriptiveStat(data) PrintFailureData(data, 'A')