Logistic Regression and new tests

This commit is contained in:
Masha 2019-02-15 22:47:56 +00:00
parent 2feee7ebe5
commit d5753636bd
11 changed files with 2091 additions and 15 deletions

View File

@ -178,12 +178,28 @@ public:
} }
void predict_for_all(ColumnVector<Float64>::Container & container, Block & block, const ColumnNumbers & arguments, const std::vector<Float64> & weights, Float64 bias) const override void predict_for_all(ColumnVector<Float64>::Container & container, Block & block, const ColumnNumbers & arguments, const std::vector<Float64> & weights, Float64 bias) const override
{ {
// TODO size_t rows_num = block.rows();
std::ignore = container; std::vector<Float64> results(rows_num, bias);
std::ignore = block;
std::ignore = arguments; for (size_t i = 1; i < arguments.size(); ++i)
std::ignore = weights; {
std::ignore = bias; ColumnPtr cur_col = block.getByPosition(arguments[i]).column;
for (size_t row_num = 0; row_num != rows_num; ++row_num)
{
const auto &element = (*cur_col)[row_num];
if (element.getType() != Field::Types::Float64)
throw Exception("Prediction arguments must be values of type Float",
ErrorCodes::BAD_ARGUMENTS);
results[row_num] += weights[i - 1] * element.get<Float64>();
}
}
for (size_t row_num = 0; row_num != rows_num; ++row_num)
{
results[row_num] = 1 / (1 + exp(-results[row_num]));
container.emplace_back(results[row_num]);
}
} }
}; };
@ -218,31 +234,31 @@ public:
void update(UInt32 batch_size, std::vector<Float64> & weights, Float64 & bias, const std::vector<Float64> & batch_gradient) override { void update(UInt32 batch_size, std::vector<Float64> & weights, Float64 & bias, const std::vector<Float64> & batch_gradient) override {
/// batch_size is already checked to be greater than 0 /// batch_size is already checked to be greater than 0
if (hk_.size() == 0) if (accumulated_gradient.size() == 0)
{ {
hk_.resize(batch_gradient.size(), Float64{0.0}); accumulated_gradient.resize(batch_gradient.size(), Float64{0.0});
} }
for (size_t i = 0; i < batch_gradient.size(); ++i) for (size_t i = 0; i < batch_gradient.size(); ++i)
{ {
hk_[i] = hk_[i] * alpha_ + batch_gradient[i]; accumulated_gradient[i] = accumulated_gradient[i] * alpha_ + batch_gradient[i];
} }
for (size_t i = 0; i < weights.size(); ++i) for (size_t i = 0; i < weights.size(); ++i)
{ {
weights[i] += hk_[i] / batch_size; weights[i] += accumulated_gradient[i] / batch_size;
} }
bias += hk_[weights.size()] / batch_size; bias += accumulated_gradient[weights.size()] / batch_size;
} }
virtual void merge(const IWeightsUpdater & rhs, Float64 frac, Float64 rhs_frac) override { virtual void merge(const IWeightsUpdater & rhs, Float64 frac, Float64 rhs_frac) override {
const auto & momentum_rhs = dynamic_cast<const Momentum &>(rhs); auto & momentum_rhs = static_cast<const Momentum &>(rhs);
for (size_t i = 0; i < hk_.size(); ++i) for (size_t i = 0; i < accumulated_gradient.size(); ++i)
{ {
hk_[i] = hk_[i] * frac + momentum_rhs.hk_[i] * rhs_frac; accumulated_gradient[i] = accumulated_gradient[i] * frac + momentum_rhs.accumulated_gradient[i] * rhs_frac;
} }
} }
private: private:
Float64 alpha_{0.1}; Float64 alpha_{0.1};
std::vector<Float64> hk_; std::vector<Float64> accumulated_gradient;
}; };
class LinearModelData class LinearModelData

View File

@ -0,0 +1,92 @@
0.014756373152892969
0.9981703893717232
0.014756373152892969
0.9981703893717232
0.014756373152892969
0.9981703893717232
0.014756373152892969
0.9981703893717232
0.014756373152892969
0.9981703893717232
0.014756373152892969
0.9981703893717232
0.014756373152892969
0.9981703893717232
0.014756373152892969
0.9981703893717232
0.014756373152892969
0.9981703893717232
0.014756373152892969
0.9981703893717232
0.014756373152892969
0.9981703893717232
0.014756373152892969
0.9981703893717232
0.014756373152892969
0.9981703893717232
0.014756373152892969
0.9981703893717232
0.014756373152892969
0.9981703893717232
0.014756373152892969
0.9981703893717232
0.014756373152892969
0.9981703893717232
0.014756373152892969
0.9981703893717232
0.014756373152892969
0.9981703893717232
0.014756373152892969
0.9981703893717232
0.014756373152892969
0.9981703893717232
0.014756373152892969
0.9981703893717232
0.014756373152892969
0.9981703893717232
0.014756373152892969
0.9981703893717232
0.014756373152892969
0.9981703893717232
0.014756373152892969
0.9981703893717232
0.014756373152892969
0.9981703893717232
0.014756373152892969
0.9981703893717232
0.014756373152892969
0.9981703893717232
0.014756373152892969
0.9981703893717232
0.014756373152892969
0.9981703893717232
0.014756373152892969
0.9981703893717232
0.014756373152892969
0.9981703893717232
0.014756373152892969
0.9981703893717232
0.014756373152892969
0.9981703893717232
0.014756373152892969
0.9981703893717232
0.014756373152892969
0.9981703893717232
0.014756373152892969
0.9981703893717232
0.014756373152892969
0.9981703893717232
0.014756373152892969
0.9981703893717232
0.014756373152892969
0.9981703893717232
0.014756373152892969
0.9981703893717232
0.014756373152892969
0.9981703893717232
0.014756373152892969
0.9981703893717232
0.014756373152892969
0.9981703893717232
0.014756373152892969
0.9981703893717232

View File

@ -0,0 +1,16 @@
CREATE DATABASE IF NOT EXISTS test;
DROP TABLE IF EXISTS test.defaults;
CREATE TABLE IF NOT EXISTS test.defaults
(
param1 Float64,
param2 Float64,
target Float64,
predict1 Float64,
predict2 Float64
) ENGINE = Memory;
insert into test.defaults values (1,2,1,-1,-2),(-1,-2,0,1,2),(1,2,1,-1,-2),(-1,-2,0,1,2),(1,2,1,-1,-2),(-1,-2,0,1,2),(1,2,1,-1,-2),(-1,-2,0,1,2),(1,2,1,-1,-2),(-1,-2,0,1,2),(1,2,1,-1,-2),(-1,-2,0,1,2),(1,2,1,-1,-2),(-1,-2,0,1,2),(1,2,1,-1,-2),(-1,-2,0,1,2),(1,2,1,-1,-2),(-1,-2,0,1,2),(1,2,1,-1,-2),(-1,-2,0,1,2),(1,2,1,-1,-2),(-1,-2,0,1,2),(1,2,1,-1,-2),(-1,-2,0,1,2),(1,2,1,-1,-2),(-1,-2,0,1,2),(1,2,1,-1,-2),(-1,-2,0,1,2),(1,2,1,-1,-2),(-1,-2,0,1,2),(1,2,1,-1,-2),(-1,-2,0,1,2),(1,2,1,-1,-2),(-1,-2,0,1,2),(1,2,1,-1,-2),(-1,-2,0,1,2),(1,2,1,-1,-2),(-1,-2,0,1,2),(1,2,1,-1,-2),(-1,-2,0,1,2),(1,2,1,-1,-2),(-1,-2,0,1,2),(1,2,1,-1,-2),(-1,-2,0,1,2),(1,2,1,-1,-2),(-1,-2,0,1,2),(1,2,1,-1,-2),(-1,-2,0,1,2),(1,2,1,-1,-2),(-1,-2,0,1,2),(1,2,1,-1,-2),(-1,-2,0,1,2),(1,2,1,-1,-2),(-1,-2,0,1,2),(1,2,1,-1,-2),(-1,-2,0,1,2),(1,2,1,-1,-2),(-1,-2,0,1,2),(1,2,1,-1,-2),(-1,-2,0,1,2),(1,2,1,-1,-2),(-1,-2,0,1,2),(1,2,1,-1,-2),(-1,-2,0,1,2),(1,2,1,-1,-2),(-1,-2,0,1,2),(1,2,1,-1,-2),(-1,-2,0,1,2),(1,2,1,-1,-2),(-1,-2,0,1,2),(1,2,1,-1,-2),(-1,-2,0,1,2),(1,2,1,-1,-2),(-1,-2,0,1,2),(1,2,1,-1,-2),(-1,-2,0,1,2),(1,2,1,-1,-2),(-1,-2,0,1,2),(1,2,1,-1,-2),(-1,-2,0,1,2),(1,2,1,-1,-2),(-1,-2,0,1,2),(1,2,1,-1,-2),(-1,-2,0,1,2),(1,2,1,-1,-2),(-1,-2,0,1,2),(1,2,1,-1,-2),(-1,-2,0,1,2),(1,2,1,-1,-2),(-1,-2,0,1,2),(1,2,1,-1,-2),(-1,-2,0,1,2)
DROP TABLE IF EXISTS test.model;
create table test.model engine = Memory as select LogisticRegressionState(0.1, 5, 1.0)(target, param1, param2) as state from test.defaults;
with (select state from test.model) as model select evalMLMethod(model, predict1, predict2) from test.defaults;

View File

@ -0,0 +1,370 @@
0.72
0.72
0.72
0.72
0.72
0.72
0.72
0.72
0.72
0.72
0.72
0.72
0.72
0.89
0.89
0.89
0.89
0.89
0.89
0.89
0.89
0.89
0.89
0.89
0.89
0.95
0.95
0.95
0.95
0.95
0.95
0.95
0.95
0.95
0.95
0.95
0.95
0.79
0.79
0.79
0.79
0.79
0.79
0.79
0.79
0.79
0.79
0.79
0.79
0.79
0.39
0.39
0.39
0.39
0.39
0.39
0.39
0.39
0.39
0.39
0.39
0.39
0.38
0.38
0.38
0.38
0.38
0.38
0.38
0.38
0.38
0.38
0.38
0.38
0.34
0.34
0.34
0.34
0.34
0.34
0.34
0.34
0.34
0.34
0.34
0.34
0.34
0.47
0.47
0.47
0.47
0.47
0.47
0.47
0.47
0.47
0.47
0.47
0.47
0.56
0.56
0.56
0.56
0.56
0.56
0.56
0.56
0.56
0.56
0.56
0.56
0.71
0.71
0.71
0.71
0.71
0.71
0.71
0.71
0.71
0.71
0.71
0.71
0.71
0.78
0.78
0.78
0.78
0.78
0.78
0.78
0.78
0.78
0.78
0.78
0.78
0.73
0.73
0.73
0.73
0.73
0.73
0.73
0.73
0.73
0.73
0.73
0.73
0.82
0.82
0.82
0.82
0.82
0.82
0.82
0.82
0.82
0.82
0.82
0.82
0.82
0.62
0.62
0.62
0.62
0.62
0.62
0.62
0.62
0.62
0.62
0.62
0.62
0.96
0.96
0.96
0.96
0.96
0.96
0.96
0.96
0.96
0.96
0.96
0.96
0.96
0.96
0.96
0.96
0.96
0.96
0.96
0.96
0.96
0.96
0.96
0.96
0.96
0.46
0.46
0.46
0.46
0.46
0.46
0.46
0.46
0.46
0.46
0.46
0.46
0.53
0.53
0.53
0.53
0.53
0.53
0.53
0.53
0.53
0.53
0.53
0.53
0.49
0.49
0.49
0.49
0.49
0.49
0.49
0.49
0.49
0.49
0.49
0.49
0.49
0.76
0.76
0.76
0.76
0.76
0.76
0.76
0.76
0.76
0.76
0.76
0.76
0.64
0.64
0.64
0.64
0.64
0.64
0.64
0.64
0.64
0.64
0.64
0.64
0.71
0.71
0.71
0.71
0.71
0.71
0.71
0.71
0.71
0.71
0.71
0.71
0.71
0.84
0.84
0.84
0.84
0.84
0.84
0.84
0.84
0.84
0.84
0.84
0.84
0.77
0.77
0.77
0.77
0.77
0.77
0.77
0.77
0.77
0.77
0.77
0.77
0.89
0.89
0.89
0.89
0.89
0.89
0.89
0.89
0.89
0.89
0.89
0.89
0.89
0.82
0.82
0.82
0.82
0.82
0.82
0.82
0.82
0.82
0.82
0.82
0.82
0.84
0.84
0.84
0.84
0.84
0.84
0.84
0.84
0.84
0.84
0.84
0.84
0.91
0.91
0.91
0.91
0.91
0.91
0.91
0.91
0.91
0.91
0.91
0.91
0.91
0.67
0.67
0.67
0.67
0.67
0.67
0.67
0.67
0.67
0.67
0.67
0.67
0.95
0.95
0.95
0.95
0.95
0.95
0.95
0.95
0.95
0.95
0.95
0.95

View File

@ -0,0 +1 @@
0.00676015

View File

@ -0,0 +1,370 @@
0.6542885368159769
0.6542885368159769
0.6542885368159769
0.6542885368159769
0.6542885368159769
0.6542885368159769
0.6542885368159769
0.6542885368159769
0.6542885368159769
0.6542885368159769
0.6542885368159769
0.6542885368159769
0.6542885368159769
0.8444267125384497
0.8444267125384497
0.8444267125384497
0.8444267125384497
0.8444267125384497
0.8444267125384497
0.8444267125384497
0.8444267125384497
0.8444267125384497
0.8444267125384497
0.8444267125384497
0.8444267125384497
0.9683751248474649
0.9683751248474649
0.9683751248474649
0.9683751248474649
0.9683751248474649
0.9683751248474649
0.9683751248474649
0.9683751248474649
0.9683751248474649
0.9683751248474649
0.9683751248474649
0.9683751248474649
0.7836319925339996
0.7836319925339996
0.7836319925339996
0.7836319925339996
0.7836319925339996
0.7836319925339996
0.7836319925339996
0.7836319925339996
0.7836319925339996
0.7836319925339996
0.7836319925339996
0.7836319925339996
0.7836319925339996
0.6375535053362572
0.6375535053362572
0.6375535053362572
0.6375535053362572
0.6375535053362572
0.6375535053362572
0.6375535053362572
0.6375535053362572
0.6375535053362572
0.6375535053362572
0.6375535053362572
0.6375535053362572
0.5871709781307677
0.5871709781307677
0.5871709781307677
0.5871709781307677
0.5871709781307677
0.5871709781307677
0.5871709781307677
0.5871709781307677
0.5871709781307677
0.5871709781307677
0.5871709781307677
0.5871709781307677
0.5202091999924413
0.5202091999924413
0.5202091999924413
0.5202091999924413
0.5202091999924413
0.5202091999924413
0.5202091999924413
0.5202091999924413
0.5202091999924413
0.5202091999924413
0.5202091999924413
0.5202091999924413
0.5202091999924413
0.5130525169352177
0.5130525169352177
0.5130525169352177
0.5130525169352177
0.5130525169352177
0.5130525169352177
0.5130525169352177
0.5130525169352177
0.5130525169352177
0.5130525169352177
0.5130525169352177
0.5130525169352177
0.5581075117249047
0.5581075117249047
0.5581075117249047
0.5581075117249047
0.5581075117249047
0.5581075117249047
0.5581075117249047
0.5581075117249047
0.5581075117249047
0.5581075117249047
0.5581075117249047
0.5581075117249047
0.6798311701936688
0.6798311701936688
0.6798311701936688
0.6798311701936688
0.6798311701936688
0.6798311701936688
0.6798311701936688
0.6798311701936688
0.6798311701936688
0.6798311701936688
0.6798311701936688
0.6798311701936688
0.6798311701936688
0.7995193250661652
0.7995193250661652
0.7995193250661652
0.7995193250661652
0.7995193250661652
0.7995193250661652
0.7995193250661652
0.7995193250661652
0.7995193250661652
0.7995193250661652
0.7995193250661652
0.7995193250661652
0.7773509726916165
0.7773509726916165
0.7773509726916165
0.7773509726916165
0.7773509726916165
0.7773509726916165
0.7773509726916165
0.7773509726916165
0.7773509726916165
0.7773509726916165
0.7773509726916165
0.7773509726916165
0.8606987912604607
0.8606987912604607
0.8606987912604607
0.8606987912604607
0.8606987912604607
0.8606987912604607
0.8606987912604607
0.8606987912604607
0.8606987912604607
0.8606987912604607
0.8606987912604607
0.8606987912604607
0.8606987912604607
0.6352934050115681
0.6352934050115681
0.6352934050115681
0.6352934050115681
0.6352934050115681
0.6352934050115681
0.6352934050115681
0.6352934050115681
0.6352934050115681
0.6352934050115681
0.6352934050115681
0.6352934050115681
0.9771089703353684
0.9771089703353684
0.9771089703353684
0.9771089703353684
0.9771089703353684
0.9771089703353684
0.9771089703353684
0.9771089703353684
0.9771089703353684
0.9771089703353684
0.9771089703353684
0.9771089703353684
0.9955717835823895
0.9955717835823895
0.9955717835823895
0.9955717835823895
0.9955717835823895
0.9955717835823895
0.9955717835823895
0.9955717835823895
0.9955717835823895
0.9955717835823895
0.9955717835823895
0.9955717835823895
0.9955717835823895
0.6124539775938347
0.6124539775938347
0.6124539775938347
0.6124539775938347
0.6124539775938347
0.6124539775938347
0.6124539775938347
0.6124539775938347
0.6124539775938347
0.6124539775938347
0.6124539775938347
0.6124539775938347
0.6564358792397615
0.6564358792397615
0.6564358792397615
0.6564358792397615
0.6564358792397615
0.6564358792397615
0.6564358792397615
0.6564358792397615
0.6564358792397615
0.6564358792397615
0.6564358792397615
0.6564358792397615
0.552111558999158
0.552111558999158
0.552111558999158
0.552111558999158
0.552111558999158
0.552111558999158
0.552111558999158
0.552111558999158
0.552111558999158
0.552111558999158
0.552111558999158
0.552111558999158
0.552111558999158
0.7792659923782862
0.7792659923782862
0.7792659923782862
0.7792659923782862
0.7792659923782862
0.7792659923782862
0.7792659923782862
0.7792659923782862
0.7792659923782862
0.7792659923782862
0.7792659923782862
0.7792659923782862
0.6656871036437929
0.6656871036437929
0.6656871036437929
0.6656871036437929
0.6656871036437929
0.6656871036437929
0.6656871036437929
0.6656871036437929
0.6656871036437929
0.6656871036437929
0.6656871036437929
0.6656871036437929
0.7435137743371989
0.7435137743371989
0.7435137743371989
0.7435137743371989
0.7435137743371989
0.7435137743371989
0.7435137743371989
0.7435137743371989
0.7435137743371989
0.7435137743371989
0.7435137743371989
0.7435137743371989
0.7435137743371989
0.8688023472919777
0.8688023472919777
0.8688023472919777
0.8688023472919777
0.8688023472919777
0.8688023472919777
0.8688023472919777
0.8688023472919777
0.8688023472919777
0.8688023472919777
0.8688023472919777
0.8688023472919777
0.7225690042828818
0.7225690042828818
0.7225690042828818
0.7225690042828818
0.7225690042828818
0.7225690042828818
0.7225690042828818
0.7225690042828818
0.7225690042828818
0.7225690042828818
0.7225690042828818
0.7225690042828818
0.8866100282141612
0.8866100282141612
0.8866100282141612
0.8866100282141612
0.8866100282141612
0.8866100282141612
0.8866100282141612
0.8866100282141612
0.8866100282141612
0.8866100282141612
0.8866100282141612
0.8866100282141612
0.8866100282141612
0.8374461350184257
0.8374461350184257
0.8374461350184257
0.8374461350184257
0.8374461350184257
0.8374461350184257
0.8374461350184257
0.8374461350184257
0.8374461350184257
0.8374461350184257
0.8374461350184257
0.8374461350184257
0.8365104788783658
0.8365104788783658
0.8365104788783658
0.8365104788783658
0.8365104788783658
0.8365104788783658
0.8365104788783658
0.8365104788783658
0.8365104788783658
0.8365104788783658
0.8365104788783658
0.8365104788783658
0.928892180915439
0.928892180915439
0.928892180915439
0.928892180915439
0.928892180915439
0.928892180915439
0.928892180915439
0.928892180915439
0.928892180915439
0.928892180915439
0.928892180915439
0.928892180915439
0.928892180915439
0.7275019293899534
0.7275019293899534
0.7275019293899534
0.7275019293899534
0.7275019293899534
0.7275019293899534
0.7275019293899534
0.7275019293899534
0.7275019293899534
0.7275019293899534
0.7275019293899534
0.7275019293899534
0.9516437185963472
0.9516437185963472
0.9516437185963472
0.9516437185963472
0.9516437185963472
0.9516437185963472
0.9516437185963472
0.9516437185963472
0.9516437185963472
0.9516437185963472
0.9516437185963472
0.9516437185963472

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,580 @@
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.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.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.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.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.0
0.0
0.0
0.0
0.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.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.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.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.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.0
0.0
0.0
0.0
0.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.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.0
0.0
0.0
0.0
0.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0

View File

@ -0,0 +1,580 @@
0.645206721297782
0.645206721297782
0.645206721297782
0.645206721297782
0.645206721297782
0.645206721297782
0.645206721297782
0.645206721297782
0.645206721297782
0.645206721297782
0.645206721297782
0.645206721297782
0.645206721297782
0.645206721297782
0.645206721297782
0.645206721297782
0.645206721297782
0.645206721297782
0.645206721297782
0.645206721297782
0.645206721297782
0.645206721297782
0.645206721297782
0.645206721297782
0.645206721297782
0.645206721297782
0.645206721297782
0.645206721297782
0.645206721297782
0.6694443959224505
0.6694443959224505
0.6694443959224505
0.6694443959224505
0.6694443959224505
0.6694443959224505
0.6694443959224505
0.6694443959224505
0.6694443959224505
0.6694443959224505
0.6694443959224505
0.6694443959224505
0.6694443959224505
0.6694443959224505
0.6694443959224505
0.6694443959224505
0.6694443959224505
0.6694443959224505
0.6694443959224505
0.6694443959224505
0.6694443959224505
0.6694443959224505
0.6694443959224505
0.6694443959224505
0.6694443959224505
0.6694443959224505
0.6694443959224505
0.6694443959224505
0.6694443959224505
0.4493293816391796
0.4493293816391796
0.4493293816391796
0.4493293816391796
0.4493293816391796
0.4493293816391796
0.4493293816391796
0.4493293816391796
0.4493293816391796
0.4493293816391796
0.4493293816391796
0.4493293816391796
0.4493293816391796
0.4493293816391796
0.4493293816391796
0.4493293816391796
0.4493293816391796
0.4493293816391796
0.4493293816391796
0.4493293816391796
0.4493293816391796
0.4493293816391796
0.4493293816391796
0.4493293816391796
0.4493293816391796
0.4493293816391796
0.4493293816391796
0.4493293816391796
0.4493293816391796
0.600720195229028
0.600720195229028
0.600720195229028
0.600720195229028
0.600720195229028
0.600720195229028
0.600720195229028
0.600720195229028
0.600720195229028
0.600720195229028
0.600720195229028
0.600720195229028
0.600720195229028
0.600720195229028
0.600720195229028
0.600720195229028
0.600720195229028
0.600720195229028
0.600720195229028
0.600720195229028
0.600720195229028
0.600720195229028
0.600720195229028
0.600720195229028
0.600720195229028
0.600720195229028
0.600720195229028
0.600720195229028
0.600720195229028
0.6762784661885577
0.6762784661885577
0.6762784661885577
0.6762784661885577
0.6762784661885577
0.6762784661885577
0.6762784661885577
0.6762784661885577
0.6762784661885577
0.6762784661885577
0.6762784661885577
0.6762784661885577
0.6762784661885577
0.6762784661885577
0.6762784661885577
0.6762784661885577
0.6762784661885577
0.6762784661885577
0.6762784661885577
0.6762784661885577
0.6762784661885577
0.6762784661885577
0.6762784661885577
0.6762784661885577
0.6762784661885577
0.6762784661885577
0.6762784661885577
0.6762784661885577
0.6762784661885577
0.559635760952823
0.559635760952823
0.559635760952823
0.559635760952823
0.559635760952823
0.559635760952823
0.559635760952823
0.559635760952823
0.559635760952823
0.559635760952823
0.559635760952823
0.559635760952823
0.559635760952823
0.559635760952823
0.559635760952823
0.559635760952823
0.559635760952823
0.559635760952823
0.559635760952823
0.559635760952823
0.559635760952823
0.559635760952823
0.559635760952823
0.559635760952823
0.559635760952823
0.559635760952823
0.559635760952823
0.559635760952823
0.559635760952823
0.6353300559297663
0.6353300559297663
0.6353300559297663
0.6353300559297663
0.6353300559297663
0.6353300559297663
0.6353300559297663
0.6353300559297663
0.6353300559297663
0.6353300559297663
0.6353300559297663
0.6353300559297663
0.6353300559297663
0.6353300559297663
0.6353300559297663
0.6353300559297663
0.6353300559297663
0.6353300559297663
0.6353300559297663
0.6353300559297663
0.6353300559297663
0.6353300559297663
0.6353300559297663
0.6353300559297663
0.6353300559297663
0.6353300559297663
0.6353300559297663
0.6353300559297663
0.6353300559297663
0.6635807616996307
0.6635807616996307
0.6635807616996307
0.6635807616996307
0.6635807616996307
0.6635807616996307
0.6635807616996307
0.6635807616996307
0.6635807616996307
0.6635807616996307
0.6635807616996307
0.6635807616996307
0.6635807616996307
0.6635807616996307
0.6635807616996307
0.6635807616996307
0.6635807616996307
0.6635807616996307
0.6635807616996307
0.6635807616996307
0.6635807616996307
0.6635807616996307
0.6635807616996307
0.6635807616996307
0.6635807616996307
0.6635807616996307
0.6635807616996307
0.6635807616996307
0.6635807616996307
0.4615908676549731
0.4615908676549731
0.4615908676549731
0.4615908676549731
0.4615908676549731
0.4615908676549731
0.4615908676549731
0.4615908676549731
0.4615908676549731
0.4615908676549731
0.4615908676549731
0.4615908676549731
0.4615908676549731
0.4615908676549731
0.4615908676549731
0.4615908676549731
0.4615908676549731
0.4615908676549731
0.4615908676549731
0.4615908676549731
0.4615908676549731
0.4615908676549731
0.4615908676549731
0.4615908676549731
0.4615908676549731
0.4615908676549731
0.4615908676549731
0.4615908676549731
0.4615908676549731
0.6148954951112843
0.6148954951112843
0.6148954951112843
0.6148954951112843
0.6148954951112843
0.6148954951112843
0.6148954951112843
0.6148954951112843
0.6148954951112843
0.6148954951112843
0.6148954951112843
0.6148954951112843
0.6148954951112843
0.6148954951112843
0.6148954951112843
0.6148954951112843
0.6148954951112843
0.6148954951112843
0.6148954951112843
0.6148954951112843
0.6148954951112843
0.6148954951112843
0.6148954951112843
0.6148954951112843
0.6148954951112843
0.6148954951112843
0.6148954951112843
0.6148954951112843
0.6148954951112843
0.724525500316245
0.724525500316245
0.724525500316245
0.724525500316245
0.724525500316245
0.724525500316245
0.724525500316245
0.724525500316245
0.724525500316245
0.724525500316245
0.724525500316245
0.724525500316245
0.724525500316245
0.724525500316245
0.724525500316245
0.724525500316245
0.724525500316245
0.724525500316245
0.724525500316245
0.724525500316245
0.724525500316245
0.724525500316245
0.724525500316245
0.724525500316245
0.724525500316245
0.724525500316245
0.724525500316245
0.724525500316245
0.724525500316245
0.6814712987389229
0.6814712987389229
0.6814712987389229
0.6814712987389229
0.6814712987389229
0.6814712987389229
0.6814712987389229
0.6814712987389229
0.6814712987389229
0.6814712987389229
0.6814712987389229
0.6814712987389229
0.6814712987389229
0.6814712987389229
0.6814712987389229
0.6814712987389229
0.6814712987389229
0.6814712987389229
0.6814712987389229
0.6814712987389229
0.6814712987389229
0.6814712987389229
0.6814712987389229
0.6814712987389229
0.6814712987389229
0.6814712987389229
0.6814712987389229
0.6814712987389229
0.6814712987389229
0.39027824250652915
0.39027824250652915
0.39027824250652915
0.39027824250652915
0.39027824250652915
0.39027824250652915
0.39027824250652915
0.39027824250652915
0.39027824250652915
0.39027824250652915
0.39027824250652915
0.39027824250652915
0.39027824250652915
0.39027824250652915
0.39027824250652915
0.39027824250652915
0.39027824250652915
0.39027824250652915
0.39027824250652915
0.39027824250652915
0.39027824250652915
0.39027824250652915
0.39027824250652915
0.39027824250652915
0.39027824250652915
0.39027824250652915
0.39027824250652915
0.39027824250652915
0.39027824250652915
0.5406362537321668
0.5406362537321668
0.5406362537321668
0.5406362537321668
0.5406362537321668
0.5406362537321668
0.5406362537321668
0.5406362537321668
0.5406362537321668
0.5406362537321668
0.5406362537321668
0.5406362537321668
0.5406362537321668
0.5406362537321668
0.5406362537321668
0.5406362537321668
0.5406362537321668
0.5406362537321668
0.5406362537321668
0.5406362537321668
0.5406362537321668
0.5406362537321668
0.5406362537321668
0.5406362537321668
0.5406362537321668
0.5406362537321668
0.5406362537321668
0.5406362537321668
0.5406362537321668
0.6581480265671044
0.6581480265671044
0.6581480265671044
0.6581480265671044
0.6581480265671044
0.6581480265671044
0.6581480265671044
0.6581480265671044
0.6581480265671044
0.6581480265671044
0.6581480265671044
0.6581480265671044
0.6581480265671044
0.6581480265671044
0.6581480265671044
0.6581480265671044
0.6581480265671044
0.6581480265671044
0.6581480265671044
0.6581480265671044
0.6581480265671044
0.6581480265671044
0.6581480265671044
0.6581480265671044
0.6581480265671044
0.6581480265671044
0.6581480265671044
0.6581480265671044
0.6581480265671044
0.604770630344337
0.604770630344337
0.604770630344337
0.604770630344337
0.604770630344337
0.604770630344337
0.604770630344337
0.604770630344337
0.604770630344337
0.604770630344337
0.604770630344337
0.604770630344337
0.604770630344337
0.604770630344337
0.604770630344337
0.604770630344337
0.604770630344337
0.604770630344337
0.604770630344337
0.604770630344337
0.604770630344337
0.604770630344337
0.604770630344337
0.604770630344337
0.604770630344337
0.604770630344337
0.604770630344337
0.604770630344337
0.604770630344337
0.6124292530568871
0.6124292530568871
0.6124292530568871
0.6124292530568871
0.6124292530568871
0.6124292530568871
0.6124292530568871
0.6124292530568871
0.6124292530568871
0.6124292530568871
0.6124292530568871
0.6124292530568871
0.6124292530568871
0.6124292530568871
0.6124292530568871
0.6124292530568871
0.6124292530568871
0.6124292530568871
0.6124292530568871
0.6124292530568871
0.6124292530568871
0.6124292530568871
0.6124292530568871
0.6124292530568871
0.6124292530568871
0.6124292530568871
0.6124292530568871
0.6124292530568871
0.6124292530568871
0.5652923919041697
0.5652923919041697
0.5652923919041697
0.5652923919041697
0.5652923919041697
0.5652923919041697
0.5652923919041697
0.5652923919041697
0.5652923919041697
0.5652923919041697
0.5652923919041697
0.5652923919041697
0.5652923919041697
0.5652923919041697
0.5652923919041697
0.5652923919041697
0.5652923919041697
0.5652923919041697
0.5652923919041697
0.5652923919041697
0.5652923919041697
0.5652923919041697
0.5652923919041697
0.5652923919041697
0.5652923919041697
0.5652923919041697
0.5652923919041697
0.5652923919041697
0.5652923919041697
0.5347192073584655
0.5347192073584655
0.5347192073584655
0.5347192073584655
0.5347192073584655
0.5347192073584655
0.5347192073584655
0.5347192073584655
0.5347192073584655
0.5347192073584655
0.5347192073584655
0.5347192073584655
0.5347192073584655
0.5347192073584655
0.5347192073584655
0.5347192073584655
0.5347192073584655
0.5347192073584655
0.5347192073584655
0.5347192073584655
0.5347192073584655
0.5347192073584655
0.5347192073584655
0.5347192073584655
0.5347192073584655
0.5347192073584655
0.5347192073584655
0.5347192073584655
0.5347192073584655
0.6777439840889651
0.6777439840889651
0.6777439840889651
0.6777439840889651
0.6777439840889651
0.6777439840889651
0.6777439840889651
0.6777439840889651
0.6777439840889651
0.6777439840889651
0.6777439840889651
0.6777439840889651
0.6777439840889651
0.6777439840889651
0.6777439840889651
0.6777439840889651
0.6777439840889651
0.6777439840889651
0.6777439840889651
0.6777439840889651
0.6777439840889651
0.6777439840889651
0.6777439840889651
0.6777439840889651
0.6777439840889651
0.6777439840889651
0.6777439840889651
0.6777439840889651
0.6777439840889651

View File

@ -0,0 +1 @@
0.7692307692307693

File diff suppressed because one or more lines are too long