def output_curves_folds(results: ModelCVResult, y: Series):
    return {
        'label': "Recall precision folds",
        'type': 'PlotRecord',
        'key': 'recal_precision_folds',
        'data': {
            'labels': {
                'x': 'Recall',
                'y': 'Precision',
            },
            'lines':
            pipeline(results['y_scores'], [
                map(lambda y_score: compute_curves(
                    get_1_class_y_score(y_score), y)),
                enumerate,
                map(
                    lambda index__result: {
                        'x': index__result[1].curve_horizontal,
                        'y': index__result[1].curve_vertical_recall_precision,
                        'label': index__result[0],
                    }),
                list,
            ]),
            'plotProps': {
                'yDomain': [0, 1],
                'width': 450,
                'height': 375
            },
        },
        'width': 700,
    }
def output_feature_importance(result: ModelCVResult):
    try:

        return {
            'label': "Feature importance",
            'type': 'featureImportance',
            'key': 'correlation_table',
            'data': {
                "features":
                list(
                    pipeline(
                        enumerate(result['feature_importance']),
                        [
                            map(
                                lambda item: {
                                    "name":
                                    result['feature_importance'].index[item[0]
                                                                       ],
                                    "name_detailed":
                                    format_feature_detailed(result[
                                        'feature_importance'].index[item[0]]),
                                    "importance":
                                    item[1]
                                }),
                            list,
                            partial(sorted,
                                    key=itemgetter("importance"),
                                    reverse=True),
                        ],
                    )),
            },
            'width': 700,
        }
    except (ValueError, TypeError):
        pass
def compute_classification_metrics_from_results_with_statistics(
    y_true: Series,
    results: List[ModelCVResult],
    threshold: Optional[float] = None,
    target_variable: str = 'y_scores',
    ignore_warning: bool = False,
) -> ClassificationMetricsWithStatistics:
    chosen_threshold = threshold if threshold is not None else get_best_threshold_from_results(
        y_true, results)
    return pipeline(
        results,
        [
            partial(
                mapl,
                partial(
                    compute_classification_metrics_from_result,
                    y_true,
                    threshold=chosen_threshold,
                    target_variable=target_variable,
                    ignore_warning=ignore_warning,
                )),
            flatten,
            list,
            compute_ci_for_metrics_collection,
        ],
    )
Exemple #4
0
def dict_configuration_to_params(configuration):
    parameters = pipeline(
        configuration,
        [
            instantiate_configuration,
            get('pipeline'),
            configuration_to_params,
        ],
    )
    return parameters
def compute_regression_metrics_from_results_with_statistics(
    y_true: Series,
    results: List[ModelCVResult],
) -> RegressionMetricsWithStatistics:
    return pipeline(
        results,
        [
            partial(mapl,
                    partial(compute_regression_metrics_from_result, y_true)),
            flatten, list, compute_ci_for_metrics_collection,
            lambda item: RegressionMetricsWithStatistics(**item)
        ],
    )
def compute_regression_metrics_folds(
    y_scores: List[Series],
    y: Series,
) -> Optional[ClassificationMetricsWithSTD]:
    return pipeline(
        y_scores,
        [
            map(lambda y_score: compute_regression_metrics(y_score, y)),
            list,
            average_list_dicts,
            lambda item: RegressionMetrics(**item),
        ],
    )
def compute_metrics_from_result_ci(y_true: Series,
                                   result: ModelCVResult,
                                   threshold: Optional[float] = None
                                   ) -> ClassificationMetricsWithStatistics:
    chosen_threshold = threshold if threshold is not None else get_best_threshold_from_results(
        y_true, [result])
    return pipeline(
        result,
        [
            compute_classification_metrics_from_result(
                y_true, threshold=chosen_threshold),
            compute_ci_for_metrics_collection,
        ],
    )
def compute_classification_metrics_folds(
    y_scores: List[Series],
    y: Series,
    threshold: float = DEFAULT_THRESHOLD,
) -> Optional[ClassificationMetricsWithSTD]:
    return pipeline(
        y_scores,
        [
            map(lambda y_score: compute_classification_metrics(
                get_1_class_y_score(y_score), y, threshold)),
            list,
            average_list_dicts_metric_std,
        ],
    )
        def coil_color_setting(total_expect_coil):
            coil_color_list = [
                ["Ain", ["NAME:Color", "R:=", 255, "G:=", 0, "B:=", 0]],
                ["Aout", ["NAME:Color", "R:=", 255, "G:=", 0, "B:=", 128]],
                ["Bin", ["NAME:Color", "R:=", 0, "G:=", 0, "B:=", 255]],
                ["Bout", ["NAME:Color", "R:=", 0, "G:=", 128, "B:=", 255]],
                ["Cin", ["NAME:Color", "R:=", 0, "G:=", 128, "B:=", 0]],
                ["Cout", ["NAME:Color", "R:=", 0, "G:=", 64, "B:=", 64]]
            ]

            def set_color(coil_name):
                oEditor.ChangeProperty([
                    "NAME:AllTabs",
                    [
                        "NAME:Geometry3DAttributeTab",
                        ["NAME:PropServers", coil_name],
                        ["NAME:ChangedProps", color_no]
                    ]
                ])

            for coil_name, color_no in coil_color_list:
                pipeline(total_expect_coil,
                         [(filter, String.startswith(coil_name)), list,
                          (map, set_color), list])
Exemple #10
0
def _(dictionary):
    try:
        parameters = pipeline(
            dictionary,
            [
                keyfilter(lambda k: k != '__type'),
                valmap(json_deserialize_types),
            ],
        )
        Class = get_member_by_path(dictionary['__type'])
        instance = make_instance(Class)
        for key, value in parameters.items():
            setattr(instance, key, json_deserialize_types(value))
        return instance
    except KeyError:
        return valmap(json_deserialize_types, dictionary)
Exemple #11
0
def json_serialize_types(value):
    try:
        value.__dict__
    except AttributeError:
        return value

    return {
        '__type': type(value).__module__ + "." + type(value).__name__,
        **pipeline(
            value.__dict__,
            [
                keyfilter(lambda l: not l.startswith("_")),
                json_serialize_types,
            ],
        ),
    }
def result_from_fold_results(results: Iterable[ModelResult]) -> ModelCVResult:
    results = list(results)

    return ModelCVResult(feature_importance=pipeline(
        results,
        [
            map(get('feature_importance')),
            list,
        ],
    ),
                         y_scores=pipeline(
                             results,
                             [
                                 map(get('y_test_score')),
                                 list,
                             ],
                         ),
                         y_train_scores=pipeline(
                             results,
                             [
                                 map(get('y_train_score')),
                                 list,
                             ],
                         ),
                         y_predicts=pipeline(
                             results,
                             [
                                 map(get('y_test_predict')),
                                 list,
                             ],
                         ),
                         y_train_predicts=pipeline(
                             results,
                             [
                                 map(get('y_train_predict')),
                                 list,
                             ],
                         ),
                         models=pipeline(
                             results,
                             [
                                 map(get('model')),
                                 list,
                             ],
                         ),
                         elapsed=pipeline(results, [
                             map(get('elapsed')),
                             max,
                         ]))
def current_excitation_setting(ctx):
    print('Set coil excitation')

    oModule = ctx["ansys_object"]["oDesign"].GetModule("BoundarySetup")
    coil_name_list = ctx["data"]["coil_name_list"]
    excitation_name = ctx["params"]["name_params"]["excitation"]

    N, I_ph_A, I_ph_B, I_ph_C = excitation_name[
        "conductor_number"], excitation_name["phase_I_A"], excitation_name[
            "phase_I_B"], excitation_name["phase_I_C"]

    def Add_winding_group(winding_name, phase_current):
        return oModule.AssignWindingGroup([
            "NAME:" + winding_name, "Type:=", "Current", "IsSolid:=", False,
            "Current:=", phase_current, "Resistance:=", "0ohm", "Inductance:=",
            "0nH", "Voltage:=", "0mV", "ParallelBranchesNum:=", "1"
        ])

    def assign_coil_group(polarity, coil_group):
        oModule.AssignCoilGroup(coil_group, [
            "NAME:" + coil_group[0], "Objects:=", coil_group,
            "Conductor number:=", N, "PolarityType:=", polarity
        ])

    def add_coil_to_winding(winding, polarity, coil_group):
        def boundary_list(winding, polarity, coil):
            return [
                "NAME:" + coil, "Objects:=", [coil], "ParentBndID:=", winding,
                "Conductor number:=", N, "Winding:=", winding,
                "PolarityType:=", polarity
            ]

        boundary_polarity_winding = partial(boundary_list, winding, polarity)

        oModule.AddCoilstoWinding([
            "NAME:AddTerminalsToWinding", ["NAME:BoundaryList"] +
            list(map(boundary_polarity_winding, coil_group))
        ])

###
# variable

    winding_group = [
        "Winding_A",
        "Winding_B",
        "Winding_C",
    ]
    current_ph_group = [I_ph_A, I_ph_B, I_ph_C]

    winding_coil_polarity_group = [["Winding_A", "Negative", "Ain"],
                                   ["Winding_A", "Positive", "Aout"],
                                   ["Winding_B", "Negative", "Bin"],
                                   ["Winding_B", "Positive", "Bout"],
                                   ["Winding_C", "Negative", "Cin"],
                                   ["Winding_C", "Positive", "Cout"]]

    # setting winding_A, B, C
    list(map(Add_winding_group, winding_group, current_ph_group))

    for winding, polarity, coil in winding_coil_polarity_group:
        # settting assign_coil_group
        pipeline(coil_name_list, [
            (filter, String.startswith(coil)),
            list,
            partial(assign_coil_group, polarity),
        ])

        # settting add_coil_to_winding
        pipeline(coil_name_list,
                 [(filter, String.startswith(coil)), list,
                  partial(add_coil_to_winding, winding, polarity)])

    return ctx