Skip to content
This repository was archived by the owner on Nov 16, 2023. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 52 additions & 0 deletions docs/release-notes/release-1.2.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# [NimbusML](https://docs.microsoft.com/en-us/nimbusml/overview) 1.2.0

## **New Features**

- **Time Series Spike And Change Point Detection**

[PR#135](https://github.com/microsoft/NimbusML/pull/135) added support
for time series spike and change point detection using the Independent
and identically distributed (IID) and Singular Spectrum Analysis (SSA)
algorithms.

**Spike Detection Examples**

- [IID using a pandas Series](https://github.com/microsoft/NimbusML/tree/master/src/python/nimbusml/examples/examples_from_dataframe/IidSpikeDetector_df.py)
- [SSA using a pandas Series](https://github.com/microsoft/NimbusML/tree/master/src/python/nimbusml/examples/examples_from_dataframe/SsaSpikeDetector_df.py)
- [IID using a FileDataStream](https://github.com/microsoft/NimbusML/tree/master/src/python/nimbusml/examples/IidSpikeDetector.py)
- [SSA using a FileDataStream](https://github.com/microsoft/NimbusML/tree/master/src/python/nimbusml/examples/SsaSpikeDetector.py)

**Change Point Detection Examples**

- [IID using a pandas Series](https://github.com/microsoft/NimbusML/tree/master/src/python/nimbusml/examples/examples_from_dataframe/IidChangePointDetector_df.py)
- [SSA using a pandas Series](https://github.com/microsoft/NimbusML/tree/master/src/python/nimbusml/examples/examples_from_dataframe/SsaChangePointDetector_df.py)
- [IID using a FileDataStream](https://github.com/microsoft/NimbusML/tree/master/src/python/nimbusml/examples/IidChangePointDetector.py)
- [SSA using a FileDataStream](https://github.com/microsoft/NimbusML/tree/master/src/python/nimbusml/examples/SsaChangePointDetector.py)

- **Time Series Forecasting**
[PR#164](https://github.com/microsoft/NimbusML/pull/164) exposes an API
for time series forecasting using Singular Spectrum Analysis(SSA).

**Forecasting Examples**
- [Using a pandas Series](https://github.com/microsoft/NimbusML/tree/master/src/python/nimbusml/examples/examples_from_dataframe/SsaForecaster_df.py)
- [Using a FileDataStream](https://github.com/microsoft/NimbusML/tree/master/src/python/nimbusml/examples/SsaForecaster.py)

## **Bug Fixes**

None.

## **Breaking Changes**

None.

## **Enhancements**

None.

## **Documentation and Samples**

- Sample for CharTokenizer. [PR#153](https://github.com/microsoft/NimbusML/pull/153)

## **Remarks**

None.
27 changes: 2 additions & 25 deletions release-next.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,30 +2,7 @@

## **New Features**

- **Time Series Spike And Change Point Detection**

[PR#135](https://github.com/microsoft/NimbusML/pull/135) added support
for time series spike and change point detection using the Independent
and identically distributed (IID) and Singular Spectrum Analysis (SSA)
algorithms.

**Spike Detection Examples**

- [IID using a pandas Series](https://github.com/microsoft/NimbusML/tree/master/src/python/nimbusml/examples/examples_from_dataframe/IidSpikeDetector_df.py)
- [SSA using a pandas Series](https://github.com/microsoft/NimbusML/tree/master/src/python/nimbusml/examples/examples_from_dataframe/SsaSpikeDetector_df.py)
- [IID using a FileDataStream](https://github.com/microsoft/NimbusML/tree/master/src/python/nimbusml/examples/IidSpikeDetector.py)
- [SSA using a FileDataStream](https://github.com/microsoft/NimbusML/tree/master/src/python/nimbusml/examples/SsaSpikeDetector.py)

**Change Point Detection Examples**

- [IID using a pandas Series](https://github.com/microsoft/NimbusML/tree/master/src/python/nimbusml/examples/examples_from_dataframe/IidChangePointDetector_df.py)
- [SSA using a pandas Series](https://github.com/microsoft/NimbusML/tree/master/src/python/nimbusml/examples/examples_from_dataframe/SsaChangePointDetector_df.py)
- [IID using a FileDataStream](https://github.com/microsoft/NimbusML/tree/master/src/python/nimbusml/examples/IidChangePointDetector.py)
- [SSA using a FileDataStream](https://github.com/microsoft/NimbusML/tree/master/src/python/nimbusml/examples/SsaChangePointDetector.py)

- **Time Series Forecasting**
[PR#164](https://github.com/microsoft/NimbusML/pull/164) exposes an API
for time series forecasting using Singular Spectrum Analysis(SSA).
None.

## **Bug Fixes**

Expand All @@ -41,7 +18,7 @@ None.

## **Documentation and Samples**

TBD.
None.

## **Remarks**

Expand Down
22 changes: 11 additions & 11 deletions src/DotNetBridge/DotNetBridge.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -31,16 +31,16 @@
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.ML" Version="1.1.0" />
<PackageReference Include="Microsoft.ML.CpuMath" Version="1.1.0" />
<PackageReference Include="Microsoft.ML.EntryPoints" Version="0.13.0" />
<PackageReference Include="Microsoft.ML.Mkl.Components" Version="1.1.0" />
<PackageReference Include="Microsoft.ML.Mkl.Redist" Version="1.1.0" />
<PackageReference Include="Microsoft.ML.ImageAnalytics" Version="1.1.0" />
<PackageReference Include="Microsoft.ML.LightGBM" Version="1.1.0" />
<PackageReference Include="Microsoft.ML.OnnxTransformer" Version="0.13.0" />
<PackageReference Include="Microsoft.ML.TensorFlow" Version="0.13.0" />
<PackageReference Include="Microsoft.ML.Ensemble" Version="0.13.0" />
<PackageReference Include="Microsoft.ML.TimeSeries" Version="0.13.0" />
<PackageReference Include="Microsoft.ML" Version="1.2.0" />
<PackageReference Include="Microsoft.ML.CpuMath" Version="1.2.0" />
<PackageReference Include="Microsoft.ML.EntryPoints" Version="0.14.0" />
<PackageReference Include="Microsoft.ML.Mkl.Components" Version="1.2.0" />
<PackageReference Include="Microsoft.ML.Mkl.Redist" Version="1.2.0" />
<PackageReference Include="Microsoft.ML.ImageAnalytics" Version="1.2.0" />
<PackageReference Include="Microsoft.ML.LightGBM" Version="1.2.0" />
<PackageReference Include="Microsoft.ML.OnnxTransformer" Version="1.2.0" />
<PackageReference Include="Microsoft.ML.TensorFlow" Version="1.2.0" />
<PackageReference Include="Microsoft.ML.Ensemble" Version="0.14.0" />
<PackageReference Include="Microsoft.ML.TimeSeries" Version="1.2.0" />
</ItemGroup>
</Project>
20 changes: 10 additions & 10 deletions src/Platforms/build.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,16 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.ML" Version="1.1.0" />
<PackageReference Include="Microsoft.ML.CpuMath" Version="1.1.0" />
<PackageReference Include="Microsoft.ML.EntryPoints" Version="0.13.0" />
<PackageReference Include="Microsoft.ML.Mkl.Components" Version="1.1.0" />
<PackageReference Include="Microsoft.ML.ImageAnalytics" Version="1.1.0" />
<PackageReference Include="Microsoft.ML.LightGBM" Version="1.1.0" />
<PackageReference Include="Microsoft.ML.OnnxTransformer" Version="0.13.0" />
<PackageReference Include="Microsoft.ML.TensorFlow" Version="0.13.0" />
<PackageReference Include="Microsoft.ML.Ensemble" Version="0.13.0" />
<PackageReference Include="Microsoft.ML.TimeSeries" Version="0.13.0" />
<PackageReference Include="Microsoft.ML" Version="1.2.0" />
<PackageReference Include="Microsoft.ML.CpuMath" Version="1.2.0" />
<PackageReference Include="Microsoft.ML.EntryPoints" Version="0.14.0" />
<PackageReference Include="Microsoft.ML.Mkl.Components" Version="1.2.0" />
<PackageReference Include="Microsoft.ML.ImageAnalytics" Version="1.2.0" />
<PackageReference Include="Microsoft.ML.LightGBM" Version="1.2.0" />
<PackageReference Include="Microsoft.ML.OnnxTransformer" Version="1.2.0" />
<PackageReference Include="Microsoft.ML.TensorFlow" Version="1.2.0" />
<PackageReference Include="Microsoft.ML.Ensemble" Version="0.14.0" />
<PackageReference Include="Microsoft.ML.TimeSeries" Version="1.2.0" />
</ItemGroup>

</Project>
2 changes: 1 addition & 1 deletion src/python/nimbusml/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
Microsoft Machine Learning for Python
"""

__version__ = '1.1.0'
__version__ = '1.2.0'

# CoreCLR version of MicrosoftML is built on Windows.
# But file permissions are not preserved when it's copied to Linux.
Expand Down
2 changes: 1 addition & 1 deletion src/python/nimbusml/ensemble/lightgbmbinaryclassifier.py
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@ def __init__(
unbalanced_sets=False,
weight_of_positive_examples=1.0,
sigmoid=0.5,
evaluation_metric='Logloss',
evaluation_metric='Default',
maximum_bin_count_per_feature=255,
verbose=False,
silent=True,
Expand Down
7 changes: 6 additions & 1 deletion src/python/nimbusml/ensemble/lightgbmclassifier.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,9 @@ class LightGbmClassifier(core, BasePredictor, ClassifierMixin):

:param caching: Whether trainer should cache input training data.

:param unbalanced_sets: Use for multi-class classification when training
data is not balanced.

:param use_softmax: Use softmax loss for the multi classification.

:param sigmoid: Parameter for the sigmoid function.
Expand Down Expand Up @@ -145,9 +148,10 @@ def __init__(
booster=None,
normalize='Auto',
caching='Auto',
unbalanced_sets=False,
use_softmax=None,
sigmoid=0.5,
evaluation_metric='Error',
evaluation_metric='Default',
maximum_bin_count_per_feature=255,
verbose=False,
silent=True,
Expand Down Expand Up @@ -198,6 +202,7 @@ def __init__(
booster=booster,
normalize=normalize,
caching=caching,
unbalanced_sets=unbalanced_sets,
use_softmax=use_softmax,
sigmoid=sigmoid,
evaluation_metric=evaluation_metric,
Expand Down
2 changes: 1 addition & 1 deletion src/python/nimbusml/ensemble/lightgbmranker.py
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ def __init__(
caching='Auto',
custom_gains=[0, 3, 7, 15, 31, 63, 127, 255, 511, 1023, 2047, 4095],
sigmoid=0.5,
evaluation_metric='NormalizedDiscountedCumulativeGain',
evaluation_metric='Default',
maximum_bin_count_per_feature=255,
verbose=False,
silent=True,
Expand Down
2 changes: 1 addition & 1 deletion src/python/nimbusml/ensemble/lightgbmregressor.py
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ def __init__(
booster=None,
normalize='Auto',
caching='Auto',
evaluation_metric='RootMeanSquaredError',
evaluation_metric='Default',
maximum_bin_count_per_feature=255,
verbose=False,
silent=True,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ def __init__(
unbalanced_sets=False,
weight_of_positive_examples=1.0,
sigmoid=0.5,
evaluation_metric='Logloss',
evaluation_metric='Default',
maximum_bin_count_per_feature=255,
verbose=False,
silent=True,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,9 @@ class LightGbmClassifier(

:param caching: Whether trainer should cache input training data.

:param unbalanced_sets: Use for multi-class classification when training
data is not balanced.

:param use_softmax: Use softmax loss for the multi classification.

:param sigmoid: Parameter for the sigmoid function.
Expand Down Expand Up @@ -137,9 +140,10 @@ def __init__(
booster=None,
normalize='Auto',
caching='Auto',
unbalanced_sets=False,
use_softmax=None,
sigmoid=0.5,
evaluation_metric='Error',
evaluation_metric='Default',
maximum_bin_count_per_feature=255,
verbose=False,
silent=True,
Expand All @@ -165,6 +169,7 @@ def __init__(
self.booster = booster
self.normalize = normalize
self.caching = caching
self.unbalanced_sets = unbalanced_sets
self.use_softmax = use_softmax
self.sigmoid = sigmoid
self.evaluation_metric = evaluation_metric
Expand Down Expand Up @@ -201,6 +206,7 @@ def _get_node(self, **all_args):
booster=self.booster,
normalize_features=self.normalize,
caching=self.caching,
unbalanced_sets=self.unbalanced_sets,
use_softmax=self.use_softmax,
sigmoid=self.sigmoid,
evaluation_metric=self.evaluation_metric,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ def __init__(
caching='Auto',
custom_gains=[0, 3, 7, 15, 31, 63, 127, 255, 511, 1023, 2047, 4095],
sigmoid=0.5,
evaluation_metric='NormalizedDiscountedCumulativeGain',
evaluation_metric='Default',
maximum_bin_count_per_feature=255,
verbose=False,
silent=True,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ def __init__(
booster=None,
normalize='Auto',
caching='Auto',
evaluation_metric='RootMeanSquaredError',
evaluation_metric='Default',
maximum_bin_count_per_feature=255,
verbose=False,
silent=True,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ def trainers_lightgbmbinaryclassifier(
unbalanced_sets=False,
weight_of_positive_examples=1.0,
sigmoid=0.5,
evaluation_metric='Logloss',
evaluation_metric='Default',
maximum_bin_count_per_feature=255,
verbose=False,
silent=True,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,10 @@ def trainers_lightgbmclassifier(
row_group_column_name=None,
normalize_features='Auto',
caching='Auto',
unbalanced_sets=False,
use_softmax=None,
sigmoid=0.5,
evaluation_metric='Error',
evaluation_metric='Default',
maximum_bin_count_per_feature=255,
verbose=False,
silent=True,
Expand Down Expand Up @@ -65,6 +66,8 @@ def trainers_lightgbmclassifier(
column (inputs).
:param caching: Whether trainer should cache input training data
(inputs).
:param unbalanced_sets: Use for multi-class classification when
training data is not balanced (inputs).
:param use_softmax: Use softmax loss for the multi
classification. (inputs).
:param sigmoid: Parameter for the sigmoid function. (inputs).
Expand Down Expand Up @@ -174,6 +177,11 @@ def trainers_lightgbmclassifier(
'Auto',
'Memory',
'None'])
if unbalanced_sets is not None:
inputs['UnbalancedSets'] = try_set(
obj=unbalanced_sets,
none_acceptable=True,
is_of_type=bool)
if use_softmax is not None:
inputs['UseSoftmax'] = try_set(
obj=use_softmax,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ def trainers_lightgbmranker(
caching='Auto',
custom_gains=[0, 3, 7, 15, 31, 63, 127, 255, 511, 1023, 2047, 4095],
sigmoid=0.5,
evaluation_metric='NormalizedDiscountedCumulativeGain',
evaluation_metric='Default',
maximum_bin_count_per_feature=255,
verbose=False,
silent=True,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ def trainers_lightgbmregressor(
row_group_column_name=None,
normalize_features='Auto',
caching='Auto',
evaluation_metric='RootMeanSquaredError',
evaluation_metric='Default',
maximum_bin_count_per_feature=255,
verbose=False,
silent=True,
Expand Down
26 changes: 17 additions & 9 deletions src/python/nimbusml/pipeline.py
Original file line number Diff line number Diff line change
Expand Up @@ -2210,18 +2210,26 @@ def _validate_model_summary(self, model_summary):
"is expected ".format(
type(model_summary)))

str_bias = 'Bias'
str_classnames = 'ClassNames'
str_coefficients = 'Coefficients'
str_weights = 'Weights'
str_gains = 'Gains'
str_support_vectors = 'Support vectors.'
col_names = [
'Bias',
'ClassNames',
'Coefficients',
'PredictorName',
'Summary',
'VectorName'
]

col_name_prefixes = [
'Weights',
'Gains',
'Support vectors.',
'VectorData'
]

for col in model_summary.columns:
if col in (str_bias, str_classnames, str_coefficients):
if col in col_names:
pass
elif col.startswith(str_weights) or col.startswith(
str_gains) or col.startswith(str_support_vectors):
elif any([col.startswith(pre) for pre in col_name_prefixes]):
pass
else:
raise TypeError(
Expand Down
Loading