Module Import alias Import alias identifier ClassDef bases AttributeLoad NameLoad attr body FunctionDef arguments args NameParam defaults body Expr Call AttributeLoad NameLoad attr decorator_list NameLoad FunctionDef arguments args NameParam defaults body With Call NameLoad Str NameStore body Assign NameStore BinOpMod Str Call AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr NameLoad With Call NameLoad Str NameStore body Assign NameStore Call AttributeLoad NameLoad attr BinOpMod Str Call AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr Str Dict Str Str NameLoad NameLoad Expr Call AttributeLoad NameLoad attr NameLoad decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore Call AttributeLoad NameLoad attr Str Dict Str Call AttributeLoad NameLoad attr Num Num Expr Call AttributeLoad NameLoad attr NameLoad decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore Call AttributeLoad NameLoad attr Str Dict Str Call AttributeLoad NameLoad attr Num Num Expr Call AttributeLoad NameLoad attr NameLoad decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore Call AttributeLoad NameLoad attr Str Dict Str Call AttributeLoad NameLoad attr Num Num Expr Call AttributeLoad NameLoad attr NameLoad decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore Call AttributeLoad NameLoad attr Str Dict Str Str Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr NameLoad decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore Call AttributeLoad NameLoad attr Str Dict Str Str Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr NameLoad decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore Call AttributeLoad NameLoad attr Str Dict Str Str Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr NameLoad Num decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore Call AttributeLoad NameLoad attr Str Dict Str Str Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr NameLoad Num decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore Call AttributeLoad NameLoad attr Str Dict Str Str Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr NameLoad Num decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore Call AttributeLoad NameLoad attr Str Dict Str Str Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr NameLoad Num decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore Call AttributeLoad NameLoad attr Str Dict Str Str Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr NameLoad Num decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore Call AttributeLoad NameLoad attr Str Dict Str Str Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr NameLoad Num decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore Call AttributeLoad NameLoad attr Str Dict Str Str Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr NameLoad Num decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore Call AttributeLoad NameLoad attr Str Dict Str Str Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr NameLoad Num decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore Call AttributeLoad NameLoad attr Str Return Call AttributeLoad NameLoad attr Str Dict Str NameLoad decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore Call AttributeLoad NameLoad attr Str Return Call AttributeLoad NameLoad attr Str Dict Str NameLoad decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore Str Assign NameStore Call AttributeLoad NameLoad attr BinOpMod Str NameLoad Return Call AttributeLoad NameLoad attr NameLoad decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore Str Assign NameStore Call AttributeLoad NameLoad attr BinOpMod Str NameLoad Assign NameStore Call AttributeLoad NameLoad attr NameLoad Return Call AttributeLoad NameLoad attr Str Dict Str NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam defaults body Return Call Call AttributeLoad NameLoad attr Str NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Return Call Call AttributeLoad NameLoad attr Str NameLoad decorator_list decorator_list If CompareEq NameLoad Str body Import alias identifier Expr Call AttributeLoad NameLoad attr ListLoad
N/A N/A unittest N/A ufora.FORA.python.FORA FORA TestGradientBoosting N/A N/A unittest TestCase N/A setUpClass N/A N/A cls N/A N/A N/A N/A N/A FORA initialize N/A classmethod test_gradientBoostedBinaryClassificationExhaustiveSplits N/A N/A self N/A N/A N/A N/A open hastie-X.csv f N/A N/A text N/A parsing.csv('''%s''', defaultColumnType: Float64) N/A N/A f read N/A X N/A N/A FORA eval text N/A N/A open hastie-y.csv f N/A N/A y N/A N/A FORA eval N/A parsing.csv('''%s''', defaultColumnType: Float64) N/A N/A f read N/A res N/A N/A FORA eval 
            let builder = 
                math.ensemble.gradientBoosting.GradientBoostedClassifierBuilder(
                    splitMethod: `exhaustive, nBoosts: 10, maxDepth: 4
                    )

            let fit = builder.fit(X, y);
            assertions.assertEqual(fit.score(X, y), 1.0)
             N/A X y X y N/A N/A N/A self assertTrue res N/A test_regressionTrees_1 N/A N/A self N/A N/A N/A res N/A N/A FORA eval     
            let regressionTree = 
                math.tree.RegressionTree.buildTree(
                    df, yDim: 2, maxDepth: 5, minSamplesSplit: 50
                    );

            let expectedValues = 
                [-0.953882430908236, 99.7799382797797, -0.953882430908236, 
                 -0.953882430908236, -1.85651176009063, -1.85651176009063,  
                 -0.731458273696544, -0.953882430908236, -0.731458273696544, 
                 -0.731458273696544];

            let computedValues = 
                Vector.range(size(expectedValues)) ~~ { 
                    regressionTree.predict(df("X", "Y")[_])
                    };

            assertions.assertAllClose(expectedValues, computedValues);

            computedValues = 
                Vector.range(size(expectedValues)) ~~ { 
                    regressionTree.predict(df[_])
                    };

            assertions.assertAllClose(expectedValues, computedValues);

            let predictedValues = regressionTree.predict(df);
            let meanSquareError = 
                math.stats.mean((predictedValues - df.getColumn("Z")) ** 2);

            assertions.assertClose(meanSquareError, 0.986815325486888) N/A df N/A N/A self generateDataset 1000 42 N/A N/A N/A self assertTrue res N/A test_regressionTrees_2 N/A N/A self N/A N/A N/A res N/A N/A FORA eval 
            let X = df("X", "Y");
            let y = df("Z");

            let regressionTreeBuilder = 
                math.tree.RegressionTree.RegressionTreeBuilder(
                    maxDepth: 5, minSamplesSplit: 50
                    );

            let regressionTree = regressionTreeBuilder.fit(X, y);

            assertions.assertClose(regressionTree.predict(df[0]), -0.953882430908236);
             N/A df N/A N/A self generateDataset 1000 42 N/A N/A N/A self assertTrue res N/A test_regressionTrees_3 N/A N/A self N/A N/A N/A res N/A N/A FORA eval 
            let regressionTree = 
                math.tree.RegressionTree.buildTree(
                    df, yDim: 2, maxDepth: 5, minSamplesSplit: 50,
                    splitMethod: `exhaustive
                    );

            let predictedValues = regressionTree.predict(df);
 
            let meanSquareError = 
                math.stats.mean((predictedValues - df.getColumn("Z")) ** 2)

            assertions.assertClose(meanSquareError, 0.986815325486888)
             N/A df N/A N/A self generateDataset 1000 42 N/A N/A N/A self assertTrue res N/A test_regresionTrees_4 N/A N/A self N/A N/A N/A res N/A N/A FORA eval 
            let treeBuilder1 = 
                math.tree.RegressionTree.RegressionTreeBuilder(
                    maxDepth:2, minSamplesSplit:2,
                    splitMethod:`exhaustive
                    );
            let treeBuilder2 = 
                math.tree.RegressionTree.RegressionTreeBuilder(
                    maxDepth:5, minSamplesSplit:2,
                    splitMethod:`exhaustive
                    );

            let tree1 = treeBuilder1.fit(X, y);

            let tree2 = treeBuilder2.fit(X, y);
            
            let mse1 = ((tree1.predict(X) - y.getColumn("y")) ** 2).sum() / size(X);
            
            let mse2 = ((tree2.predict(X) - y.getColumn("y")) ** 2).sum() / size(X);

            assertions.assertClose(mse1, 0.12967126328231796)
            assertions.assertClose(mse2, 0.025236948989861896)
             N/A X y N/A N/A self X N/A N/A self y N/A N/A N/A self assertTrue res N/A test_regressionTrees_5 N/A N/A self N/A N/A N/A res N/A N/A FORA eval 
            let y_median = math.stats.median(y.getColumn(0));
            let y_medians = dataframe.Series(Vector.uniform(size(X), y_median));
            
            let neg_gradient = (y.getColumn(0) - y_medians) ~~ math.sign;
            neg_gradient = dataframe.DataFrame([neg_gradient])

            let treeBuilder = 
                math.tree.RegressionTree.RegressionTreeBuilder(
                    maxDepth:2, minSamplesSplit:2,
                    splitMethod:`exhaustive
                    );
            let tree = treeBuilder.fit(X, neg_gradient)
            
            // checked against scikit
            assertions.assertClose(tree.score(X, y), 0.53214422106820458)
             N/A X y N/A N/A self X N/A N/A self y N/A N/A N/A self assertTrue res N/A test_gradientBoostedRegression_1 N/A N/A self N/A N/A N/A score N/A N/A FORA eval 
            let builder = 
                math.ensemble.gradientBoosting.GradientBoostedRegressorBuilder(
                    splitMethod:`exhaustive, nBoosts: 10
                    );

            let fit = builder.fit(X,y);
            fit.score(X, y) N/A X y N/A N/A self X N/A N/A self y N/A N/A N/A self assertAlmostEqual score 0.994814481384 N/A test_gradientBoostedRegressionWithLearningRate_l2_loss N/A N/A self N/A N/A N/A score N/A N/A FORA eval 
            let builder = 
                math.ensemble.gradientBoosting.GradientBoostedRegressorBuilder(
                    splitMethod: `exhaustive, nBoosts: 100, learningRate: 0.01,
                    maxDepth: 3, minSamplesSplit: 2
                    );

            let fit = builder.fit(X,y);
            fit.score(X, y) N/A X y N/A N/A self X N/A N/A self y N/A N/A N/A self assertAlmostEqual score 0.729007258589 N/A test_gradientBoostedRegressionWithLearningRate_lad_loss N/A N/A self N/A N/A N/A score N/A N/A FORA eval 
            let builder = 
                math.ensemble.gradientBoosting.GradientBoostedRegressorBuilder(
                    loss:`lad,
                    splitMethod:`exhaustive, nBoosts: 100, learningRate: 0.01,
                    maxDepth: 2, minSamplesSplit: 2
                    );

            let fit = builder.fit(X,y);
            fit.score(X, y) N/A X y N/A N/A self X N/A N/A self y N/A N/A N/A self assertAlmostEqual score 0.664771992378 N/A test_gradientBoostedRegressionAbsoluteLoss N/A N/A self N/A N/A N/A score N/A N/A FORA eval 
            let builder = 
                math.ensemble.gradientBoosting.GradientBoostedRegressorBuilder(
                splitMethod:`exhaustive, nBoosts: 1, loss: `lad, maxDepth: 2
                );

            let fit = builder.fit(X,y);
            fit.score(X, y) N/A X y N/A N/A self X N/A N/A self y N/A N/A N/A self assertAlmostEqual score 0.716655282631 N/A test_gradientBoostedClassificationExhaustiveSplits_1 N/A N/A self N/A N/A N/A score N/A N/A FORA eval 
            let builder = 
                math.ensemble.gradientBoosting.GradientBoostedClassifierBuilder(
                    splitMethod:`exhaustive, nBoosts: 10, maxDepth: 1
                );

            let fit = builder.fit(X, y);
            fit.score(X, y) N/A X y N/A N/A self irisX N/A N/A self irisY N/A N/A N/A self assertAlmostEqual score 0.84 N/A test_gradientBoostedClassificationSamplingSplits_1 N/A N/A self N/A N/A N/A score N/A N/A FORA eval 
            let builder = 
                math.ensemble.gradientBoosting.GradientBoostedClassifierBuilder(
                    splitMethod:`sample, nBoosts: 1, maxDepth: 1
                );

            let fit = builder.fit(X, y);

            // this answer diverges a bit from scikit, and I'm not exactly sure
            // why. however, as noted in the regression tests, we're not 
            // using exactly the same splitting criteron as scikit
            fit.score(X, y) N/A X y N/A N/A self irisX N/A N/A self irisY N/A N/A N/A self assertAlmostEqual score 0.746666666667 N/A test_gradientBoostedClassificationSamplingSplits_2 N/A N/A self N/A N/A N/A score N/A N/A FORA eval 
            let builder = 
                math.ensemble.gradientBoosting.GradientBoostedClassifierBuilder(
                    splitMethod:`sample, nBoosts: 100, maxDepth:1
                );

            let fit = builder.fit(X, y);

            // this answer diverges a bit from scikit, and I'm not exactly sure
            // why. however, as noted in the regression tests, we're not 
            // using exactly the same splitting criteron as scikit
            fit.score(X, y) N/A X y N/A N/A self irisX N/A N/A self irisY N/A N/A N/A self assertAlmostEqual score 0.873333333333 N/A test_gradientBoostedClassificationWithLearningRate N/A N/A self N/A N/A N/A score N/A N/A FORA eval 
            let builder = 
                math.ensemble.gradientBoosting.GradientBoostedClassifierBuilder(
                    splitMethod:`sample, nBoosts: 100, maxDepth: 1, 
                    learningRate: 0.1
                );

            let fit = builder.fit(X, y);

            fit.score(X, y) N/A X y N/A N/A self irisX N/A N/A self irisY N/A N/A N/A self assertAlmostEqual score 0.84 N/A X N/A N/A self N/A N/A N/A xData N/A N/A FORA eval 
        """
        5.71874087e-04,
        9.14413867e-02,
        9.68347894e-02,
        1.36937966e-01,
        1.95273916e-01,
        2.49767295e-01,
        2.66812726e-01,
        4.25221057e-01,
        4.61692974e-01,
        4.91734169e-01,
        5.11672144e-01,
        5.16130033e-01,
        6.50142861e-01,
        6.87373521e-01,
        6.96381736e-01,
        7.01934693e-01,
        7.33642875e-01,
        7.33779454e-01,
        8.26770986e-01,
        8.49152098e-01,
        9.31301057e-01,
        9.90507445e-01,
        1.02226125e+00,
        1.05814058e+00,
        1.32773330e+00,
        1.40221996e+00,
        1.43887669e+00,
        1.46807074e+00,
        1.51166286e+00,
        1.56712089e+00,
        1.57757816e+00,
        1.72780364e+00,
        1.73882930e+00,
        1.98383737e+00,
        1.98838418e+00,
        2.07027994e+00,
        2.07089635e+00,
        2.08511002e+00,
        2.08652401e+00,
        2.09597257e+00,
        2.10553813e+00,
        2.23946763e+00,
        2.45786580e+00,
        2.57444556e+00,
        2.66582642e+00,
        2.67948203e+00,
        2.69408367e+00,
        2.79344914e+00,
        2.87058803e+00,
        2.93277520e+00,
        2.94652768e+00,
        3.31897323e+00,
        3.35233755e+00,
        3.39417766e+00,
        3.42609750e+00,
        3.43250464e+00,
        3.45938557e+00,
        3.46161308e+00,
        3.47200079e+00,
        3.49879180e+00,
        3.60162247e+00,
        3.62998993e+00,
        3.74082827e+00,
        3.75072157e+00,
        3.75406052e+00,
        3.94639664e+00,
        4.00372284e+00,
        4.03695644e+00,
        4.17312836e+00,
        4.38194576e+00,
        4.39058718e+00,
        4.39071252e+00,
        4.47303332e+00,
        4.51700958e+00,
        4.54297752e+00,
        4.63754290e+00,
        4.72297378e+00,
        4.78944765e+00,
        4.84130788e+00,
        4.94430544e+00""".split(",").apply(Float64); N/A N/A N/A FORA eval dataframe.DataFrame([xData], columnNames:['X']) N/A xData xData N/A y N/A N/A self N/A N/A N/A yData N/A N/A FORA eval 
        """-1.1493464 ,  0.09131401,  0.09668352,  0.13651039,  0.19403525,
        -0.12383814,  0.26365828,  0.41252216,  0.44546446,  0.47215529,
        -0.26319138,  0.49351799,  0.60530013,  0.63450933,  0.64144608,
        1.09900119,  0.66957978,  0.66968122,  0.73574834,  0.75072053,
        1.4926134 ,  0.8363043 ,  0.8532893 ,  0.87144496,  0.97060533,
        -0.20183403,  0.99131122,  0.99472837,  0.99825213,  0.99999325,
        1.21570343,  0.98769965,  0.98591565,  0.9159044 ,  0.91406986,
        -0.51669013,  0.8775346 ,  0.87063055,  0.86993408,  0.86523559,
        0.37007575,  0.78464608,  0.63168655,  0.53722799,  0.45801971,
        0.08075119,  0.43272116,  0.34115328,  0.26769953,  0.20730318,
        1.34959235, -0.17645185, -0.20918837, -0.24990778, -0.28068224,
        -1.63529379, -0.31247075, -0.31458595, -0.32442911, -0.34965155,
        -0.29371122, -0.46921115, -0.56401144, -0.57215326, -0.57488849,
        -0.95586361, -0.75923066, -0.78043659, -0.85808859, -0.94589863,
        -0.6730775 , -0.94870673, -0.97149093, -0.98097408, -0.98568417,
        -0.20828128, -0.99994398, -0.99703245, -0.99170146, -0.9732277"""
            .split(",").apply(Float64); N/A N/A N/A FORA eval dataframe.DataFrame([yData], columnNames: ['y']) N/A yData yData N/A irisY N/A N/A self N/A N/A N/A dataStr 0,
                     0,
                     0,
                     0,
                     0,
                     0,
                     0,
                     0,
                     0,
                     0,
                     0,
                     0,
                     0,
                     0,
                     0,
                     0,
                     0,
                     0,
                     0,
                     0,
                     0,
                     0,
                     0,
                     0,
                     0,
                     0,
                     0,
                     0,
                     0,
                     0,
                     0,
                     0,
                     0,
                     0,
                     0,
                     0,
                     0,
                     0,
                     0,
                     0,
                     0,
                     0,
                     0,
                     0,
                     0,
                     0,
                     0,
                     0,
                     0,
                     0,
                     1,
                     1,
                     1,
                     1,
                     1,
                     1,
                     1,
                     1,
                     1,
                     1,
                     1,
                     1,
                     1,
                     1,
                     1,
                     1,
                     1,
                     1,
                     1,
                     1,
                     1,
                     1,
                     1,
                     1,
                     1,
                     1,
                     1,
                     1,
                     1,
                     1,
                     1,
                     1,
                     1,
                     1,
                     1,
                     1,
                     1,
                     1,
                     1,
                     1,
                     1,
                     1,
                     1,
                     1,
                     1,
                     1,
                     1,
                     1,
                     1,
                     1,
                     2,
                     2,
                     2,
                     2,
                     2,
                     2,
                     2,
                     2,
                     2,
                     2,
                     2,
                     2,
                     2,
                     2,
                     2,
                     2,
                     2,
                     2,
                     2,
                     2,
                     2,
                     2,
                     2,
                     2,
                     2,
                     2,
                     2,
                     2,
                     2,
                     2,
                     2,
                     2,
                     2,
                     2,
                     2,
                     2,
                     2,
                     2,
                     2,
                     2,
                     2,
                     2,
                     2,
                     2,
                     2,
                     2,
                     2,
                     2,
                     2,
                    2 N/A tr N/A N/A FORA eval N/A math.Matrix('''%s'''.split(',').apply(Float64), (150, 1), `row) dataStr N/A N/A N/A self dataFrameFromMatrix tr N/A irisX N/A N/A self N/A N/A N/A dataStr 5.1,3.5,1.4,0.2,
                     4.9,3.0,1.4,0.2,
                     4.7,3.2,1.3,0.2,
                     4.6,3.1,1.5,0.2,
                     5.0,3.6,1.4,0.2,
                     5.4,3.9,1.7,0.4,
                     4.6,3.4,1.4,0.3,
                     5.0,3.4,1.5,0.2,
                     4.4,2.9,1.4,0.2,
                     4.9,3.1,1.5,0.1,
                     5.4,3.7,1.5,0.2,
                     4.8,3.4,1.6,0.2,
                     4.8,3.0,1.4,0.1,
                     4.3,3.0,1.1,0.1,
                     5.8,4.0,1.2,0.2,
                     5.7,4.4,1.5,0.4,
                     5.4,3.9,1.3,0.4,
                     5.1,3.5,1.4,0.3,
                     5.7,3.8,1.7,0.3,
                     5.1,3.8,1.5,0.3,
                     5.4,3.4,1.7,0.2,
                     5.1,3.7,1.5,0.4,
                     4.6,3.6,1.0,0.2,
                     5.1,3.3,1.7,0.5,
                     4.8,3.4,1.9,0.2,
                     5.0,3.0,1.6,0.2,
                     5.0,3.4,1.6,0.4,
                     5.2,3.5,1.5,0.2,
                     5.2,3.4,1.4,0.2,
                     4.7,3.2,1.6,0.2,
                     4.8,3.1,1.6,0.2,
                     5.4,3.4,1.5,0.4,
                     5.2,4.1,1.5,0.1,
                     5.5,4.2,1.4,0.2,
                     4.9,3.1,1.5,0.1,
                     5.0,3.2,1.2,0.2,
                     5.5,3.5,1.3,0.2,
                     4.9,3.1,1.5,0.1,
                     4.4,3.0,1.3,0.2,
                     5.1,3.4,1.5,0.2,
                     5.0,3.5,1.3,0.3,
                     4.5,2.3,1.3,0.3,
                     4.4,3.2,1.3,0.2,
                     5.0,3.5,1.6,0.6,
                     5.1,3.8,1.9,0.4,
                     4.8,3.0,1.4,0.3,
                     5.1,3.8,1.6,0.2,
                     4.6,3.2,1.4,0.2,
                     5.3,3.7,1.5,0.2,
                     5.0,3.3,1.4,0.2,
                     7.0,3.2,4.7,1.4,
                     6.4,3.2,4.5,1.5,
                     6.9,3.1,4.9,1.5,
                     5.5,2.3,4.0,1.3,
                     6.5,2.8,4.6,1.5,
                     5.7,2.8,4.5,1.3,
                     6.3,3.3,4.7,1.6,
                     4.9,2.4,3.3,1.0,
                     6.6,2.9,4.6,1.3,
                     5.2,2.7,3.9,1.4,
                     5.0,2.0,3.5,1.0,
                     5.9,3.0,4.2,1.5,
                     6.0,2.2,4.0,1.0,
                     6.1,2.9,4.7,1.4,
                     5.6,2.9,3.6,1.3,
                     6.7,3.1,4.4,1.4,
                     5.6,3.0,4.5,1.5,
                     5.8,2.7,4.1,1.0,
                     6.2,2.2,4.5,1.5,
                     5.6,2.5,3.9,1.1,
                     5.9,3.2,4.8,1.8,
                     6.1,2.8,4.0,1.3,
                     6.3,2.5,4.9,1.5,
                     6.1,2.8,4.7,1.2,
                     6.4,2.9,4.3,1.3,
                     6.6,3.0,4.4,1.4,
                     6.8,2.8,4.8,1.4,
                     6.7,3.0,5.0,1.7,
                     6.0,2.9,4.5,1.5,
                     5.7,2.6,3.5,1.0,
                     5.5,2.4,3.8,1.1,
                     5.5,2.4,3.7,1.0,
                     5.8,2.7,3.9,1.2,
                     6.0,2.7,5.1,1.6,
                     5.4,3.0,4.5,1.5,
                     6.0,3.4,4.5,1.6,
                     6.7,3.1,4.7,1.5,
                     6.3,2.3,4.4,1.3,
                     5.6,3.0,4.1,1.3,
                     5.5,2.5,4.0,1.3,
                     5.5,2.6,4.4,1.2,
                     6.1,3.0,4.6,1.4,
                     5.8,2.6,4.0,1.2,
                     5.0,2.3,3.3,1.0,
                     5.6,2.7,4.2,1.3,
                     5.7,3.0,4.2,1.2,
                     5.7,2.9,4.2,1.3,
                     6.2,2.9,4.3,1.3,
                     5.1,2.5,3.0,1.1,
                     5.7,2.8,4.1,1.3,
                     6.3,3.3,6.0,2.5,
                     5.8,2.7,5.1,1.9,
                     7.1,3.0,5.9,2.1,
                     6.3,2.9,5.6,1.8,
                     6.5,3.0,5.8,2.2,
                     7.6,3.0,6.6,2.1,
                     4.9,2.5,4.5,1.7,
                     7.3,2.9,6.3,1.8,
                     6.7,2.5,5.8,1.8,
                     7.2,3.6,6.1,2.5,
                     6.5,3.2,5.1,2.0,
                     6.4,2.7,5.3,1.9,
                     6.8,3.0,5.5,2.1,
                     5.7,2.5,5.0,2.0,
                     5.8,2.8,5.1,2.4,
                     6.4,3.2,5.3,2.3,
                     6.5,3.0,5.5,1.8,
                     7.7,3.8,6.7,2.2,
                     7.7,2.6,6.9,2.3,
                     6.0,2.2,5.0,1.5,
                     6.9,3.2,5.7,2.3,
                     5.6,2.8,4.9,2.0,
                     7.7,2.8,6.7,2.0,
                     6.3,2.7,4.9,1.8,
                     6.7,3.3,5.7,2.1,
                     7.2,3.2,6.0,1.8,
                     6.2,2.8,4.8,1.8,
                     6.1,3.0,4.9,1.8,
                     6.4,2.8,5.6,2.1,
                     7.2,3.0,5.8,1.6,
                     7.4,2.8,6.1,1.9,
                     7.9,3.8,6.4,2.0,
                     6.4,2.8,5.6,2.2,
                     6.3,2.8,5.1,1.5,
                     6.1,2.6,5.6,1.4,
                     7.7,3.0,6.1,2.3,
                     6.3,3.4,5.6,2.4,
                     6.4,3.1,5.5,1.8,
                     6.0,3.0,4.8,1.8,
                     6.9,3.1,5.4,2.1,
                     6.7,3.1,5.6,2.4,
                     6.9,3.1,5.1,2.3,
                     5.8,2.7,5.1,1.9,
                     6.8,3.2,5.9,2.3,
                     6.7,3.3,5.7,2.5,
                     6.7,3.0,5.2,2.3,
                     6.3,2.5,5.0,1.9,
                     6.5,3.0,5.2,2.0,
                     6.2,3.4,5.4,2.3,
                    5.9,3.0,5.1,1.8 N/A X N/A N/A FORA eval N/A math.Matrix('''%s'''.split(',').apply(Float64), (150, 4), `row) dataStr N/A X N/A N/A self dataFrameFromMatrix X N/A N/A N/A FORA eval dataframe.DataFrame(X.columns[,2]) N/A X X N/A generateDataset N/A N/A self count seed N/A N/A N/A N/A N/A N/A FORA eval 
            fun(count, seed) {
                let impulse = fun(x, y) {
                    if (x > 0 and y > 0)
                        return 100.0;
                    if (x <= 0)
                        return -1
                    return -2
                    };

                let normal = iterator(math.random.Normal(0.0, 1.0, seed));
                let x0 = [];
                let x1 = [];
                let y = [];
                for _ in sequence(count) 
                    {
                    let x0_val = pull normal;
                    let x1_val = pull normal;
                    let y_val = (pull normal) + impulse(x0_val, x1_val)

                    x0 = x0 :: x0_val;
                    x1 = x1 :: x1_val;
                    y = y :: y_val;
                    }
                
                dataframe.DataFrame([x0, x1, y], columnNames: ["X", "Y", "Z"])
                } count seed N/A dataFrameFromMatrix N/A N/A self elt N/A N/A N/A N/A N/A N/A FORA eval 
            fun(math.Matrix(...) m) {
	        let colData = m.columnMajorData();

	        let nRows = m.dim[0];

	        dataframe.DataFrame(
		        Vector.range(
			        m.dim[1],
			        fun(colIx) { colData[colIx * nRows, (colIx + 1) * nRows] }
			        )
		        )
	        }; elt N/A N/A N/A N/A __name__ __main__ N/A N/A ufora.config.Mainline Mainline N/A N/A N/A Mainline UnitTestMainline N/A