[scikit-learn] ANN Scikit-learn 0.18 released

Brown J.B. jbbrown at kuhp.kyoto-u.ac.jp
Mon Oct 3 00:05:13 EDT 2016


Hello community,

Congratulations on the release of 0.19 !
While I'm merely a casual user and wish I could contribute more often, I
thank everyone for their time and efforts!

2016-10-01 1:58 GMT+09:00 Andreas Mueller <t3kcit at gmail.com>:

We've got a lot in the works already for 0.19.
>>
>> * multiple metrics for cross validation (#7388 et al.)
>>
>
I've done something like this in my internal model building and selection
libraries.
My solution has been to have
  -each metric object be able to explain a "distance from optimal"
  -a metric collection object, which can be built by either explicit
instantiation or calculation using data
  -a pareto curve calculation object
  -a ranker for the points on the pareto curve, with the ability to select
the N-best points.

While there are certainly smarter interfaces and implementations, here is
an example of one of my doctests that may help get this PR started.
My apologies that my old docstring argument notation doesn't match the
commonly used standards.

Hope this helps,
J.B. Brown
Kyoto University

 26 class
TrialRanker(object):
 27     """An object for handling the generic mechanism of selecting
optimal
 28     trials from a colletion of trials."""

 43     def SelectBest(self, metricSets,
paretoAlg,
 44
preProcessor=None):
 45         """Select the best [metricSets] by using
the
 46         [paretoAlg] pareto selection object.  Note that it is
actually
 47         the [paretoAlg] that specifies how many optimal [metricSets]
to
 48
select.
 49

 50         Data may be pre-processed into a form necessary for the
[paretoAlg]
 51         by using the [preProcessor] that is a
MetricSetConverter.
 52

 53         Return: an EvaluatedMetricSet if [paretoAlg] selects only
one
 54         metric set, otherwise a list of EvaluatedMetricSet
objects.
 55

 56         >>> from pareto.paretoDecorators import
MinNormSelector
 57         >>> from pareto import
OriginBasePareto
 58         >>> pAlg =
MinNormSelector(OriginBasePareto())
 59

 60         >>> from metrics.TwoClassMetrics import Accuracy,
Sensitivity
 61         >>> from metrics.metricSet import
EvaluatedMetricSet
 62         >>> met1 =
EvaluatedMetricSet.BuildByExplicitValue(
 63         ...           [(Accuracy, 0.7), (Sensitivity,
0.9)])
 64         >>>
met1.SetTitle("Example1")
 65         >>> met1.associatedData = range(5)  # property
set/get
 66         >>> met2 =
EvaluatedMetricSet.BuildByExplicitValue(
 67         ...           [(Accuracy, 0.8), (Sensitivity,
0.6)])
 68         >>>
met2.SetTitle("Example2")
 69         >>> met2.SetAssociatedData("abcdef")  # explicit method
call
 70         >>> met3 =
EvaluatedMetricSet.BuildByExplicitValue(
 71         ...           [(Accuracy, 0.5), (Sensitivity,
0.5)])
 72         >>>
met3.SetTitle("Example3")
 73         >>> met3.associatedData =
float
 74

 75         >>> from metrics.metricSet.converters import
OptDistConverter
 76

 77         >>> ranker = TrialRanker()  # pAlg selects
met1
 78         >>> best =
ranker.SelectBest((met1,met2,met3),
 79         ...                          pAlg,
OptDistConverter())
 80         >>>
best.VerboseDescription(True)
 81         >>>
str(best)
 82         'Example1: 2 metrics; Accuracy=0.700;
Sensitivity=0.900'
 83         >>>
best.associatedData
 84         [0, 1, 2, 3,
4]
 85

 86         >>> pAlg = MinNormSelector(OriginBasePareto(),
nSelect=2)
 87         >>> best =
ranker.SelectBest((met1,met2,met3),
 88         ...                          pAlg,
OptDistConverter())
 89         >>> for metSet in
best:
 90         ...
metSet.VerboseDescription(True)
 91         ...
str(metSet)
 92         ...
str(metSet.associatedData)
 93         'Example1: 2 metrics; Accuracy=0.700;
Sensitivity=0.900'
 94         '[0, 1, 2, 3,
4]'
 95         'Example2: 2 metrics; Accuracy=0.800;
Sensitivity=0.600'
 96
'abcdef'
 97

 98         >>> from metrics.TwoClassMetrics import
PositivePredictiveValue
 99         >>> met4 =
EvaluatedMetricSet.BuildByExplicitValue(
100         ...         [(Accuracy, 0.7), (PositivePredictiveValue,
0.5)])
101         >>> best =
ranker.SelectBest((met1,met2,met3,met4),
102         ...                          pAlg,
OptDistConverter())
103         Traceback (most recent call
last):
104
...
105         ValueError: Metric sets contain differing
Metrics.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/scikit-learn/attachments/20161003/66911393/attachment-0001.html>


More information about the scikit-learn mailing list