├── .travis.yml
├── LICENSE
├── README.md
├── cp
├── .gitignore
├── github-config.xml
├── pom.xml
├── src
│ ├── main
│ │ └── scala
│ │ │ └── se
│ │ │ └── uu
│ │ │ └── it
│ │ │ └── cp
│ │ │ ├── ICP.scala
│ │ │ ├── InductiveClassifier.scala
│ │ │ └── UnderlyingAlgorithm.scala
│ └── test
│ │ ├── resources
│ │ └── se
│ │ │ └── uu
│ │ │ └── it
│ │ │ └── cp
│ │ │ └── breast-cancer.data
│ │ └── scala
│ │ └── se
│ │ └── uu
│ │ └── it
│ │ └── cp
│ │ ├── LibLinTest.scala
│ │ └── SparkTest.scala
└── travis-config.xml
└── gpg-keys
├── .gitignore
├── public.asc
└── secret.asc.enc
/.travis.yml:
--------------------------------------------------------------------------------
1 | language: java
2 |
3 | branches:
4 | only:
5 | - master
6 |
7 | before_install:
8 | # Import decrypt and import gpg keys
9 | - >
10 | openssl aes-256-cbc
11 | -K $encrypted_4ba34fa7ea95_key -iv $encrypted_4ba34fa7ea95_iv
12 | -in gpg-keys/secret.asc.enc -out gpg-keys/secret.asc -d
13 | - gpg --import gpg-keys/public.asc
14 | - gpg --import gpg-keys/secret.asc
15 | # Enter the maven project folder
16 | - cd cp
17 |
18 | before_script:
19 | - mvn scala:doc -B # generate/test documentation
20 |
21 | after_success:
22 | - >
23 | if [ $TRAVIS_BRANCH = 'master' ] && [ $TRAVIS_PULL_REQUEST = 'false' ]; then
24 | mvn deploy --settings travis-config.xml -DskipTests=true -B
25 | mvn site --settings github-config.xml -B
26 | fi
27 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Apache License
2 | Version 2.0, January 2004
3 | http://www.apache.org/licenses/
4 |
5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6 |
7 | 1. Definitions.
8 |
9 | "License" shall mean the terms and conditions for use, reproduction,
10 | and distribution as defined by Sections 1 through 9 of this document.
11 |
12 | "Licensor" shall mean the copyright owner or entity authorized by
13 | the copyright owner that is granting the License.
14 |
15 | "Legal Entity" shall mean the union of the acting entity and all
16 | other entities that control, are controlled by, or are under common
17 | control with that entity. For the purposes of this definition,
18 | "control" means (i) the power, direct or indirect, to cause the
19 | direction or management of such entity, whether by contract or
20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the
21 | outstanding shares, or (iii) beneficial ownership of such entity.
22 |
23 | "You" (or "Your") shall mean an individual or Legal Entity
24 | exercising permissions granted by this License.
25 |
26 | "Source" form shall mean the preferred form for making modifications,
27 | including but not limited to software source code, documentation
28 | source, and configuration files.
29 |
30 | "Object" form shall mean any form resulting from mechanical
31 | transformation or translation of a Source form, including but
32 | not limited to compiled object code, generated documentation,
33 | and conversions to other media types.
34 |
35 | "Work" shall mean the work of authorship, whether in Source or
36 | Object form, made available under the License, as indicated by a
37 | copyright notice that is included in or attached to the work
38 | (an example is provided in the Appendix below).
39 |
40 | "Derivative Works" shall mean any work, whether in Source or Object
41 | form, that is based on (or derived from) the Work and for which the
42 | editorial revisions, annotations, elaborations, or other modifications
43 | represent, as a whole, an original work of authorship. For the purposes
44 | of this License, Derivative Works shall not include works that remain
45 | separable from, or merely link (or bind by name) to the interfaces of,
46 | the Work and Derivative Works thereof.
47 |
48 | "Contribution" shall mean any work of authorship, including
49 | the original version of the Work and any modifications or additions
50 | to that Work or Derivative Works thereof, that is intentionally
51 | submitted to Licensor for inclusion in the Work by the copyright owner
52 | or by an individual or Legal Entity authorized to submit on behalf of
53 | the copyright owner. For the purposes of this definition, "submitted"
54 | means any form of electronic, verbal, or written communication sent
55 | to the Licensor or its representatives, including but not limited to
56 | communication on electronic mailing lists, source code control systems,
57 | and issue tracking systems that are managed by, or on behalf of, the
58 | Licensor for the purpose of discussing and improving the Work, but
59 | excluding communication that is conspicuously marked or otherwise
60 | designated in writing by the copyright owner as "Not a Contribution."
61 |
62 | "Contributor" shall mean Licensor and any individual or Legal Entity
63 | on behalf of whom a Contribution has been received by Licensor and
64 | subsequently incorporated within the Work.
65 |
66 | 2. Grant of Copyright License. Subject to the terms and conditions of
67 | this License, each Contributor hereby grants to You a perpetual,
68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69 | copyright license to reproduce, prepare Derivative Works of,
70 | publicly display, publicly perform, sublicense, and distribute the
71 | Work and such Derivative Works in Source or Object form.
72 |
73 | 3. Grant of Patent License. Subject to the terms and conditions of
74 | this License, each Contributor hereby grants to You a perpetual,
75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76 | (except as stated in this section) patent license to make, have made,
77 | use, offer to sell, sell, import, and otherwise transfer the Work,
78 | where such license applies only to those patent claims licensable
79 | by such Contributor that are necessarily infringed by their
80 | Contribution(s) alone or by combination of their Contribution(s)
81 | with the Work to which such Contribution(s) was submitted. If You
82 | institute patent litigation against any entity (including a
83 | cross-claim or counterclaim in a lawsuit) alleging that the Work
84 | or a Contribution incorporated within the Work constitutes direct
85 | or contributory patent infringement, then any patent licenses
86 | granted to You under this License for that Work shall terminate
87 | as of the date such litigation is filed.
88 |
89 | 4. Redistribution. You may reproduce and distribute copies of the
90 | Work or Derivative Works thereof in any medium, with or without
91 | modifications, and in Source or Object form, provided that You
92 | meet the following conditions:
93 |
94 | (a) You must give any other recipients of the Work or
95 | Derivative Works a copy of this License; and
96 |
97 | (b) You must cause any modified files to carry prominent notices
98 | stating that You changed the files; and
99 |
100 | (c) You must retain, in the Source form of any Derivative Works
101 | that You distribute, all copyright, patent, trademark, and
102 | attribution notices from the Source form of the Work,
103 | excluding those notices that do not pertain to any part of
104 | the Derivative Works; and
105 |
106 | (d) If the Work includes a "NOTICE" text file as part of its
107 | distribution, then any Derivative Works that You distribute must
108 | include a readable copy of the attribution notices contained
109 | within such NOTICE file, excluding those notices that do not
110 | pertain to any part of the Derivative Works, in at least one
111 | of the following places: within a NOTICE text file distributed
112 | as part of the Derivative Works; within the Source form or
113 | documentation, if provided along with the Derivative Works; or,
114 | within a display generated by the Derivative Works, if and
115 | wherever such third-party notices normally appear. The contents
116 | of the NOTICE file are for informational purposes only and
117 | do not modify the License. You may add Your own attribution
118 | notices within Derivative Works that You distribute, alongside
119 | or as an addendum to the NOTICE text from the Work, provided
120 | that such additional attribution notices cannot be construed
121 | as modifying the License.
122 |
123 | You may add Your own copyright statement to Your modifications and
124 | may provide additional or different license terms and conditions
125 | for use, reproduction, or distribution of Your modifications, or
126 | for any such Derivative Works as a whole, provided Your use,
127 | reproduction, and distribution of the Work otherwise complies with
128 | the conditions stated in this License.
129 |
130 | 5. Submission of Contributions. Unless You explicitly state otherwise,
131 | any Contribution intentionally submitted for inclusion in the Work
132 | by You to the Licensor shall be under the terms and conditions of
133 | this License, without any additional terms or conditions.
134 | Notwithstanding the above, nothing herein shall supersede or modify
135 | the terms of any separate license agreement you may have executed
136 | with Licensor regarding such Contributions.
137 |
138 | 6. Trademarks. This License does not grant permission to use the trade
139 | names, trademarks, service marks, or product names of the Licensor,
140 | except as required for reasonable and customary use in describing the
141 | origin of the Work and reproducing the content of the NOTICE file.
142 |
143 | 7. Disclaimer of Warranty. Unless required by applicable law or
144 | agreed to in writing, Licensor provides the Work (and each
145 | Contributor provides its Contributions) on an "AS IS" BASIS,
146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147 | implied, including, without limitation, any warranties or conditions
148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149 | PARTICULAR PURPOSE. You are solely responsible for determining the
150 | appropriateness of using or redistributing the Work and assume any
151 | risks associated with Your exercise of permissions under this License.
152 |
153 | 8. Limitation of Liability. In no event and under no legal theory,
154 | whether in tort (including negligence), contract, or otherwise,
155 | unless required by applicable law (such as deliberate and grossly
156 | negligent acts) or agreed to in writing, shall any Contributor be
157 | liable to You for damages, including any direct, indirect, special,
158 | incidental, or consequential damages of any character arising as a
159 | result of this License or out of the use or inability to use the
160 | Work (including but not limited to damages for loss of goodwill,
161 | work stoppage, computer failure or malfunction, or any and all
162 | other commercial damages or losses), even if such Contributor
163 | has been advised of the possibility of such damages.
164 |
165 | 9. Accepting Warranty or Additional Liability. While redistributing
166 | the Work or Derivative Works thereof, You may choose to offer,
167 | and charge a fee for, acceptance of support, warranty, indemnity,
168 | or other liability obligations and/or rights consistent with this
169 | License. However, in accepting such obligations, You may act only
170 | on Your own behalf and on Your sole responsibility, not on behalf
171 | of any other Contributor, and only if You agree to indemnify,
172 | defend, and hold each Contributor harmless for any liability
173 | incurred by, or claims asserted against, such Contributor by reason
174 | of your accepting any such warranty or additional liability.
175 |
176 | END OF TERMS AND CONDITIONS
177 |
178 | APPENDIX: How to apply the Apache License to your work.
179 |
180 | To apply the Apache License to your work, attach the following
181 | boilerplate notice, with the fields enclosed by brackets "{}"
182 | replaced with your own identifying information. (Don't include
183 | the brackets!) The text should be enclosed in the appropriate
184 | comment syntax for the file format. We also recommend that a
185 | file or class name and description of purpose be included on the
186 | same "printed page" as the copyright notice for easier
187 | identification within third-party archives.
188 |
189 | Copyright {yyyy} {name of copyright owner}
190 |
191 | Licensed under the Apache License, Version 2.0 (the "License");
192 | you may not use this file except in compliance with the License.
193 | You may obtain a copy of the License at
194 |
195 | http://www.apache.org/licenses/LICENSE-2.0
196 |
197 | Unless required by applicable law or agreed to in writing, software
198 | distributed under the License is distributed on an "AS IS" BASIS,
199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200 | See the License for the specific language governing permissions and
201 | limitations under the License.
202 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Scala-CP
2 |
3 | [](https://travis-ci.org/mcapuccini/scala-cp)
4 | [](https://www.codacy.com/app/m-capuccini/scala-cp?utm_source=github.com&utm_medium=referral&utm_content=mcapuccini/scala-cp&utm_campaign=Badge_Grade)
5 |
6 | Scala-CP is a Scala implementation of the Conformal Prediction (CP) framework, introduced by Vovk *et. al.* in the book Algorithmic Learning in a Random World. When assigning confidence to machine learning models, CP is a nice alternative to cross-validation. Instead of predicting a value for a certain feature vector, a conformal predictor outputs a prediction set/region that contains the correct prediction with probability *1-𝜺*, where *𝜺* is a user-defined significance level. The choose of the significance level will of course influence the size of the prediction set/region. In alternative, using CP one can predict object-specific p-values for unseen examples.
7 |
8 | ## Table of Contents
9 | - [Getting started](#getting-started)
10 | - [Documentation](#documentation)
11 | - [Examples](#examples)
12 | - [Scala-CP with Spark MLlib](https://github.com/mcapuccini/scala-cp/blob/master/cp/src/test/scala/se/uu/it/cp/SparkTest.scala)
13 | - [Scala-CP with LIBLINEAR](https://github.com/mcapuccini/scala-cp/blob/master/cp/src/test/scala/se/uu/it/cp/LibLinTest.scala)
14 | - [ZeppelinHub: Scala-CP with Spark MLlib](https://www.zepl.com/viewer/notebooks/bm90ZTovL21hcmNvY2FwL3plcHBlbGluLWNwLzUyNjVlOGQyYjkxOTRmNGU4MWM4OGJjMzQyMDMzZDk5L25vdGUuanNvbg)
15 | - [List of publications](#list-of-publications)
16 | - [Roadmap](#roadmap)
17 |
18 | ## Getting started
19 | Scala-CP can be used along with any Scala/Java machine learning library and algorithm. All you have to do is to add the Scala-CP dependency to your *pom.xml* file:
20 |
21 | ```xml
22 |
23 | ...
24 |
25 | se.uu.it
26 | cp
27 | 0.1.0
28 |
29 | ...
30 |
31 | ```
32 |
33 | ## Documentation
34 | The API documentation is available at: https://mcapuccini.github.io/scala-cp/scaladocs/.
35 |
36 | ## Examples
37 | For some usage examples please refer to the unit tests:
38 |
39 | - [Scala-CP with Spark MLlib](https://github.com/mcapuccini/scala-cp/blob/master/cp/src/test/scala/se/uu/it/cp/SparkTest.scala)
40 | - [Scala-CP with LIBLINEAR](https://github.com/mcapuccini/scala-cp/blob/master/cp/src/test/scala/se/uu/it/cp/LibLinTest.scala)
41 |
42 | You can also refer to this Apache Zeppelin notebooks for more examples:
43 |
44 | - [ZeppelinHub: Scala-CP with Spark MLlib](https://www.zepl.com/viewer/notebooks/bm90ZTovL21hcmNvY2FwL3plcHBlbGluLWNwLzUyNjVlOGQyYjkxOTRmNGU4MWM4OGJjMzQyMDMzZDk5L25vdGUuanNvbg)
45 |
46 | ## List of publications
47 | - [M. Capuccini, L. Carlsson, U. Norinder and O. Spjuth, "Conformal Prediction in Spark: Large-Scale Machine Learning with Confidence," 2015 IEEE/ACM 2nd International Symposium on Big Data Computing (BDC), Limassol, 2015, pp. 61-67.](http://ieeexplore.ieee.org/document/7406330/)
48 | - [Ahmed, L., Georgiev, V., Capuccini, M., Toor, S., Schaal, W., Laure, E., & Spjuth, O. (2018). Efficient iterative virtual screening with Apache Spark and conformal prediction. Journal of cheminformatics, 10(1), 1-8.](https://jcheminf.biomedcentral.com/articles/10.1186/s13321-018-0265-z)
49 |
50 | ## Roadmap
51 |
52 | ### Inductive Conformal Prediction
53 | - [x] Classification
54 | - [ ] Regression
55 |
56 | ### Transductive Conformal Prediction
57 | - [ ] Classification
58 | - [ ] Regression
59 |
--------------------------------------------------------------------------------
/cp/.gitignore:
--------------------------------------------------------------------------------
1 | # use glob syntax.
2 | syntax: glob
3 | *.ser
4 | *.class
5 | *~
6 | *.bak
7 | #*.off
8 | *.old
9 |
10 | # eclipse conf file
11 | .settings
12 | .classpath
13 | .project
14 | .manager
15 | .scala_dependencies
16 |
17 | # idea
18 | .idea
19 | *.iml
20 |
21 | # building
22 | target
23 | build
24 | null
25 | tmp*
26 | temp*
27 | dist
28 | test-output
29 | build.log
30 |
31 | # other scm
32 | .svn
33 | .CVS
34 | .hg*
35 |
36 | # switch to regexp syntax.
37 | # syntax: regexp
38 | # ^\.pc/
39 |
40 | #SHITTY output not in target directory
41 | build.log
42 |
43 | # cache
44 | .cache*
45 |
--------------------------------------------------------------------------------
/cp/github-config.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | github
5 | mcapuccini
6 | ${env.GITHUB_PASSWORD}
7 |
8 |
9 |
--------------------------------------------------------------------------------
/cp/pom.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 | 4.0.0
5 | se.uu.it
6 | cp
7 | 0.2.0-SNAPSHOT
8 | ${project.artifactId}
9 | https://github.com/mcapuccini/scala-cp
10 |
11 |
12 | Scala-CP is a Conformal Prediction (by Vovk et. al.) Scala implementation
13 |
14 |
15 |
16 |
17 | Marco Capuccini
18 | marco.capuccini@it.uu.se
19 | http://www.example.com/jdoe
20 | pharmb.io
21 | https://pharmb.io/
22 |
23 |
24 |
25 |
26 |
27 | Apache License, Version 2.0
28 | http://www.apache.org/licenses/LICENSE-2.0.txt
29 | repo
30 |
31 |
32 |
33 |
34 | 1.7
35 | 1.7
36 | UTF-8
37 | 2.11.5
38 | 2.11
39 | github
40 |
41 |
42 |
43 |
44 | ossrh
45 | https://oss.sonatype.org/content/repositories/snapshots
46 |
47 |
48 | ossrh
49 | https://oss.sonatype.org/service/local/staging/deploy/maven2/
50 |
51 |
52 |
53 |
54 | scm:git:git://github.com/mcapuccini/scala-cp.git
55 | scm:git:git@github.com:mcapuccini/scala-cp.git
56 | https://github.com/mcapuccini/scala-cp/tree/master
57 |
58 |
59 |
60 |
61 | org.scala-lang
62 | scala-library
63 | ${scala.version}
64 |
65 |
66 | log4j
67 | log4j
68 | 1.2.17
69 |
70 |
71 |
72 | junit
73 | junit
74 | 4.11
75 | test
76 |
77 |
78 | org.specs2
79 | specs2-core_${scala.compat.version}
80 | 2.4.16
81 | test
82 |
83 |
84 | org.scalatest
85 | scalatest_${scala.compat.version}
86 | 2.2.4
87 | test
88 |
89 |
90 | org.apache.spark
91 | spark-mllib_${scala.compat.version}
92 | 2.1.1
93 | test
94 |
95 |
96 | de.bwaldvogel
97 | liblinear
98 | 1.95
99 | test
100 |
101 |
102 |
103 |
104 | src/main/scala
105 | src/test/scala
106 |
107 |
108 |
109 | net.alchim31.maven
110 | scala-maven-plugin
111 | 3.2.0
112 |
113 |
114 |
115 | compile
116 | testCompile
117 |
118 |
119 |
120 | -dependencyfile
121 | ${project.build.directory}/.scala_dependencies
122 |
123 |
124 |
125 |
126 | attach-javadocs
127 |
128 | doc-jar
129 |
130 |
131 |
132 |
133 |
134 | org.apache.maven.plugins
135 | maven-surefire-plugin
136 | 2.18.1
137 |
138 | false
139 | true
140 |
141 | **/*Test.*
142 | **/*Suite.*
143 |
144 |
145 |
146 |
147 | com.github.github
148 | site-maven-plugin
149 | 0.12
150 |
151 | Creating site for ${project.version}
152 |
153 |
154 |
155 |
156 | site
157 |
158 | site
159 |
160 |
161 |
162 |
163 | org.apache.maven.plugins
164 | maven-source-plugin
165 | 2.2.1
166 |
167 |
168 | attach-sources
169 |
170 | jar-no-fork
171 |
172 |
173 |
174 |
175 |
176 | org.apache.maven.plugins
177 | maven-gpg-plugin
178 | 1.5
179 |
180 |
181 | sign-artifacts
182 | verify
183 |
184 | sign
185 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 | org.eclipse.m2e
195 | lifecycle-mapping
196 | 1.0.0
197 |
198 |
199 |
200 |
201 |
202 | net.alchim31.maven
203 | scala-maven-plugin
204 | [3.2.0,)
205 |
206 | compile
207 | testCompile
208 |
209 |
210 |
211 |
212 |
213 |
214 |
215 |
216 |
217 |
218 |
219 |
220 |
221 |
222 |
223 |
--------------------------------------------------------------------------------
/cp/src/main/scala/se/uu/it/cp/ICP.scala:
--------------------------------------------------------------------------------
1 | package se.uu.it.cp
2 |
3 | object ICP {
4 |
5 | /**
6 | * Trains an inductive conformal classifier using the mondrian approach.
7 | *
8 | * @param algorithm an underlying algorithm to be used
9 | * @param nOfClasses number of classes
10 | * @param calibrationSet calibration set which is unseen to the underlying algorithm
11 | * training procedure
12 | * @return inductive conformal classifier
13 | */
14 | def trainClassifier[
15 | A <: UnderlyingAlgorithm[DataPoint],
16 | DataPoint <: Any](
17 | algorithm: A,
18 | nOfClasses: Int,
19 | calibrationSet: Seq[DataPoint]): InductiveClassifier[A, DataPoint] = {
20 | //Compute alphas for each class (mondrian approach)
21 | val alphas = (0 to nOfClasses - 1).map { i =>
22 | calibrationSet.filter(algorithm.getDataPointLabel(_) == i) //filter current label
23 | .map(newSmpl => algorithm.nonConformityMeasure(newSmpl)) //compute alpha
24 | }
25 | //Return an InductiveClassifier
26 | new InductiveClassifier(algorithm, alphas)
27 | }
28 |
29 | }
--------------------------------------------------------------------------------
/cp/src/main/scala/se/uu/it/cp/InductiveClassifier.scala:
--------------------------------------------------------------------------------
1 | package se.uu.it.cp
2 |
3 | import org.apache.log4j.Logger
4 |
5 | /**
6 | * Inductive conformal classification model.
7 | *
8 | * @constructor
9 | * @param alg an underlying algorithm
10 | * @param alphas nonconformity scores computed from a calibration set
11 | * (which is unseen to the underlying algorithm)
12 | */
13 | class InductiveClassifier[
14 | A <: UnderlyingAlgorithm[DataPoint],
15 | DataPoint <: Any](
16 | val alg: A,
17 | val alphas: Seq[Seq[Double]]) extends Serializable {
18 |
19 | @transient private lazy val log = Logger.getLogger(getClass.getName)
20 |
21 | /**
22 | * Given a feature sequence returns a p-value for each class.
23 | *
24 | * @param alg an underlying algorithm
25 | * @param alphas nonconformity scores computed from a calibration set
26 | * (which is unseen to the underlying algorithm)
27 | * @return a sequence of p-values (one for each class)
28 | */
29 | def mondrianPv(features: Seq[Double]) = {
30 | //Compute mondrian p-values
31 | (0 to alphas.length - 1).map { i =>
32 | //compute non-conformity for new example
33 | val alphaN = alg.nonConformityMeasure(alg.makeDataPoint(features, i))
34 | //compute p-value
35 | (alphas(i).count(_ >= alphaN) + 1).toDouble /
36 | (alphas(i).length.toDouble + 1)
37 | }
38 | }
39 |
40 | /**
41 | * Computes a prediction set for a feature sequence.
42 | *
43 | * @param features a feature sequence
44 | * @param significance a significance level bigger than 0 and smaller than 1
45 | * @return prediction set
46 | */
47 | def predict(features: Seq[Double], significance: Double) = {
48 | //Validate input
49 | require(significance > 0 && significance < 1, s"significance $significance is not in (0,1)")
50 | alphas.foreach { a =>
51 | if (a.length < 1 / significance - 1) {
52 | log.warn(s"too few calibration samples (${a.length}) for significance $significance")
53 | }
54 | }
55 | //Compute prediction set
56 | mondrianPv(features).zipWithIndex.map {
57 | case (pVal, c) =>
58 | if (pVal > significance) {
59 | Set(c.toDouble)
60 | } else {
61 | Set[Double]()
62 | }
63 | }.reduce(_ ++ _)
64 | }
65 |
66 | }
67 |
--------------------------------------------------------------------------------
/cp/src/main/scala/se/uu/it/cp/UnderlyingAlgorithm.scala:
--------------------------------------------------------------------------------
1 | package se.uu.it.cp
2 |
3 | /**
4 | * Defines an underlying algorithm to be used when training a conformal predictor.
5 | *
6 | * @constructor it trains a new underlying algorithm
7 | * @param properTrainingSet a training set that should be independent from the calibration set
8 | */
9 | abstract class UnderlyingAlgorithm[DataPoint <: Any]() extends Serializable {
10 |
11 | /**
12 | * Given a feature sequence and a label it makes a DataPoint.
13 | *
14 | * @param features data point feature sequence
15 | * @param label data point label
16 | * @return DataPoint with given feature sequence and label
17 | */
18 | def makeDataPoint(features: Seq[Double], label: Double): DataPoint
19 |
20 | /**
21 | * Given a DataPoint returns its feature sequence.
22 | *
23 | * @param dataPoint a data point
24 | * @return data point feature sequence
25 | */
26 | def getDataPointFeatures(dataPoint: DataPoint): Seq[Double]
27 |
28 | /**
29 | * Given a DataPoint returns its feature sequence.
30 | *
31 | * @param dataPoint a data point
32 | * @return data point label
33 | */
34 | def getDataPointLabel(dataPoint: DataPoint): Double
35 |
36 | /**
37 | * Given an unseen sample it returns a nonconformity score.
38 | *
39 | * @param newSample an unseen sample
40 | * @return nonconformity score for newSample
41 | */
42 | def nonConformityMeasure(newSample: DataPoint): Double
43 |
44 | }
--------------------------------------------------------------------------------
/cp/src/test/resources/se/uu/it/cp/breast-cancer.data:
--------------------------------------------------------------------------------
1 | 0 1:-0.860107 2:-0.111111 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
2 | 0 1:-0.859671 2:-0.111111 3:-0.333333 4:-0.333333 5:-0.111111 6:0.333333 7:1 8:-0.555556 9:-0.777778 10:-1
3 | 0 1:-0.857807 2:-0.555556 3:-1 4:-1 5:-1 6:-0.777778 7:-0.777778 8:-0.555556 9:-1 10:-1
4 | 0 1:-0.85768 2:0.111111 3:0.555556 4:0.555556 5:-1 6:-0.555556 7:-0.333333 8:-0.555556 9:0.333333 10:-1
5 | 0 1:-0.857569 2:-0.333333 3:-1 4:-1 5:-0.555556 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
6 | 1 1:-0.857554 2:0.555556 3:1 4:1 5:0.555556 6:0.333333 7:1 8:0.777778 9:0.333333 10:-1
7 | 0 1:-0.857408 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:1 8:-0.555556 9:-1 10:-1
8 | 0 1:-0.857339 2:-0.777778 3:-1 4:-0.777778 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
9 | 0 1:-0.855171 2:-0.777778 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-0.111111
10 | 0 1:-0.855171 2:-0.333333 3:-0.777778 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
11 | 0 1:-0.854841 2:-1 3:-1 4:-1 5:-1 6:-1 7:-1 8:-0.555556 9:-1 10:-1
12 | 0 1:-0.854709 2:-0.777778 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
13 | 1 1:-0.853868 2:-0.111111 3:-0.555556 4:-0.555556 5:-0.555556 6:-0.777778 7:-0.555556 8:-0.333333 9:-0.333333 10:-1
14 | 0 1:-0.85354 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-0.555556 8:-0.555556 9:-1 10:-1
15 | 1 1:-0.853454 2:0.555556 3:0.333333 4:-0.111111 5:1 6:0.333333 7:0.777778 8:-0.111111 9:-0.111111 10:-0.333333
16 | 1 1:-0.852997 2:0.333333 3:-0.333333 4:0.111111 5:-0.333333 6:0.111111 7:-1 8:-0.333333 9:-0.555556 10:-1
17 | 0 1:-0.852842 2:-0.333333 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
18 | 0 1:-0.852671 2:-0.333333 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
19 | 1 1:-0.852543 2:1 3:0.333333 4:0.333333 5:0.111111 6:-0.333333 7:1 8:-0.333333 9:-1 10:-0.777778
20 | 0 1:-0.852536 2:0.111111 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
21 | 1 1:-0.851958 2:0.333333 3:-0.555556 4:-0.777778 5:1 6:-0.111111 7:1 8:-0.111111 9:-0.333333 10:-0.333333
22 | 1 1:-0.851957 2:1 3:-0.111111 4:-0.111111 5:-0.555556 6:0.111111 7:0.333333 8:0.333333 9:1 10:-1
23 | 0 1:-0.85163 2:-0.555556 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
24 | 0 1:-0.851217 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
25 | 1 1:-0.850295 2:-0.111111 3:-0.777778 4:-0.555556 5:-0.333333 6:-0.777778 7:0.333333 8:-0.555556 9:0.111111 10:-1
26 | 0 1:-0.850198 2:-0.555556 3:-0.777778 4:-1 5:-1 6:-1 7:-1 8:-0.777778 9:-1 10:-1
27 | 0 1:-0.850107 2:-0.111111 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
28 | 0 1:-0.850038 2:-0.777778 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
29 | 0 1:-0.849517 2:-1 3:-1 4:-0.555556 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
30 | 0 1:-0.849517 2:-0.555556 3:-1 4:-1 5:-1 6:-1 7:-1 8:-0.777778 9:-1 10:-1
31 | 0 1:-0.849393 2:-0.777778 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
32 | 1 1:-0.849331 2:1 3:0.333333 4:0.333333 5:-0.555556 6:0.555556 7:-0.111111 8:0.333333 9:-0.333333 10:-0.555556
33 | 0 1:-0.848968 2:-0.777778 3:-1 4:-1 5:-0.777778 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
34 | 0 1:-0.848891 2:-0.555556 3:-1 4:-0.777778 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
35 | 0 1:-0.848267 2:-0.777778 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
36 | 1 1:-0.848135 2:1 3:1 4:1 5:0.555556 6:0.111111 7:-1 8:0.555556 9:0.777778 10:-1
37 | 0 1:-0.847895 2:0.111111 3:-0.777778 4:-1 5:-1 6:-1 7:-1 8:0.333333 9:-1 10:-1
38 | 1 1:-0.847478 2:-0.111111 3:-0.333333 4:-0.333333 5:0.777778 6:-0.777778 7:1 8:-0.111111 9:0.111111 10:-1
39 | 1 1:-0.846481 2:-0.777778 3:-0.111111 4:-0.555556 5:-0.555556 6:0.111111 7:0.333333 8:0.333333 9:-0.111111 10:-1
40 | 1 1:-0.845249 2:1 3:-0.333333 4:-0.555556 5:-1 6:-0.555556 7:-0.555556 8:0.111111 9:-0.111111 10:-0.777778
41 | 1 1:-0.845097 2:0.111111 3:1 4:1 5:-0.777778 6:0.555556 7:1 8:0.333333 9:-0.555556 10:-0.555556
42 | 1 1:-0.844791 2:-0.111111 3:0.111111 4:-0.111111 5:0.111111 6:1 7:-1 8:-0.555556 9:-1 10:-1
43 | 1 1:-0.844637 2:1 3:1 4:1 5:-0.333333 6:0.555556 7:-1 8:0.555556 9:1 10:-1
44 | 0 1:-0.84462 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-0.777778
45 | 1 1:-0.84439 2:-0.555556 3:0.333333 4:0.333333 5:-0.333333 6:-0.333333 7:0.777778 8:-0.333333 9:0.555556 10:-1
46 | 0 1:-0.844351 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
47 | 0 1:-0.844265 2:-0.333333 3:-1 4:-1 5:-0.555556 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
48 | 1 1:-0.844156 2:0.333333 3:0.555556 4:0.333333 5:-0.777778 6:-0.333333 7:0.555556 8:-0.555556 9:0.555556 10:-0.777778
49 | 1 1:-0.843926 2:0.777778 3:-0.111111 4:0.555556 5:-1 6:-0.777778 7:-0.555556 8:-0.777778 9:-1 10:-0.111111
50 | 1 1:-0.843914 2:-0.111111 3:-0.555556 4:-0.555556 5:-0.333333 6:-0.777778 7:-0.333333 8:-0.555556 9:-0.333333 10:-1
51 | 1 1:-0.843667 2:1 3:-0.555556 4:0.111111 5:-0.777778 6:-0.555556 7:-0.111111 8:-0.333333 9:1 10:-0.777778
52 | 1 1:-0.843607 2:-0.111111 3:-0.111111 4:-0.111111 5:0.555556 6:1 7:0.555556 8:0.333333 9:-0.555556 10:0.333333
53 | 1 1:-0.843604 2:1 3:-0.111111 4:-0.111111 5:0.111111 6:0.555556 7:0.555556 8:0.333333 9:-1 10:-1
54 | 1 1:-0.843496 2:1 3:0.111111 4:0.111111 5:-0.555556 6:-0.333333 7:-0.111111 8:-0.555556 9:0.111111 10:-1
55 | 1 1:-0.843352 2:0.555556 3:1 4:1 5:-1 6:-0.555556 7:0.111111 8:-0.555556 9:0.777778 10:-1
56 | 1 1:-0.843228 2:0.555556 3:-0.777778 4:-0.333333 5:-1 6:-0.111111 7:-1 8:-0.111111 9:-0.333333 10:-0.333333
57 | 1 1:-0.843162 2:-0.111111 3:-0.777778 4:-0.555556 5:-1 6:0.111111 7:1 8:-0.111111 9:-1 10:-1
58 | 1 1:-0.843099 2:0.777778 3:-0.111111 4:-0.111111 5:-0.777778 6:-0.777778 7:-0.777778 8:-0.111111 9:-1 10:-1
59 | 1 1:-0.842893 2:-0.111111 3:-0.555556 4:-0.111111 5:-0.111111 6:-0.555556 7:-0.555556 8:-0.333333 9:1 10:-1
60 | 0 1:-0.842892 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-0.777778 8:-0.777778 9:-1 10:-1
61 | 1 1:-0.842769 2:0.777778 3:1 4:1 5:-1 6:1 7:0.555556 8:-0.555556 9:-0.555556 10:-1
62 | 1 1:-0.842766 2:0.111111 3:-0.555556 4:-0.333333 5:-1 6:-0.111111 7:-0.777778 8:-0.555556 9:0.777778 10:-1
63 | 0 1:-0.842757 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
64 | 1 1:-0.842637 2:1 3:-0.333333 4:-0.777778 5:-1 6:-0.555556 7:-0.777778 8:-0.333333 9:-0.555556 10:1
65 | 0 1:-0.842614 2:-0.333333 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
66 | 1 1:-0.842481 2:-0.111111 3:-0.555556 4:-0.333333 5:-1 6:0.555556 7:1 8:-0.333333 9:0.777778 10:-1
67 | 1 1:-0.842105 2:0.555556 3:-0.555556 4:0.555556 5:-0.555556 6:-0.333333 7:0.777778 8:0.555556 9:0.777778 10:0.555556
68 | 0 1:-0.84193 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-0.777778 10:-1
69 | 0 1:-0.841902 2:-0.111111 3:-1 4:-0.555556 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
70 | 1 1:-0.841731 2:0.111111 3:1 4:-0.777778 5:0.555556 6:1 7:-0.777778 8:0.333333 9:0.555556 10:1
71 | 0 1:-0.841494 2:-1 3:-0.555556 4:-0.555556 5:-0.777778 6:-0.777778 7:-1 8:0.333333 9:-0.777778 10:-1
72 | 1 1:-0.841437 2:0.777778 3:-0.333333 4:-0.111111 5:1 6:0.111111 7:1 8:-0.333333 9:0.555556 10:-1
73 | 1 1:-0.84123 2:1 3:0.111111 4:-0.333333 5:-1 6:-0.555556 7:-0.333333 8:-0.555556 9:-0.777778 10:-0.555556
74 | 0 1:-0.840502 2:-1 3:-1 4:-0.777778 5:-1 6:-0.777778 7:-0.777778 8:-0.333333 9:-0.777778 10:-1
75 | 0 1:-0.840344 2:-1 3:-1 4:-0.333333 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
76 | 0 1:-0.840241 2:-0.111111 3:-0.555556 4:-1 5:-0.777778 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
77 | 0 1:-0.840227 2:-0.555556 3:-1 4:-1 5:-1 6:-0.777778 7:-0.555556 8:-0.555556 9:-1 10:-1
78 | 0 1:-0.839778 2:-0.777778 3:-1 4:-1 5:-1 6:-0.555556 7:-1 8:-0.777778 9:-1 10:-1
79 | 0 1:-0.839626 2:-0.777778 3:-0.777778 4:-0.777778 5:-1 6:-1 7:-1 8:0.333333 9:-1 10:-1
80 | 0 1:-0.838607 2:-0.333333 3:-1 4:-1 5:-0.777778 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
81 | 0 1:-0.838607 2:-0.111111 3:-0.777778 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
82 | 0 1:-0.838149 2:-0.555556 3:-1 4:-1 5:-1 6:-0.777778 7:-0.777778 8:0.333333 9:-1 10:-1
83 | 1 1:-0.838052 2:-0.555556 3:-0.111111 4:0.333333 5:0.555556 6:0.555556 7:0.777778 8:0.333333 9:1 10:0.333333
84 | 1 1:-0.838044 2:-0.111111 3:1 4:0.111111 5:-1 6:1 7:-0.333333 8:-0.333333 9:1 10:1
85 | 1 1:-0.837965 2:-0.555556 3:-0.555556 4:0.111111 5:-0.333333 6:-0.111111 7:0.555556 8:-0.333333 9:-0.333333 10:-1
86 | 1 1:-0.837876 2:-0.555556 3:0.111111 4:0.111111 5:0.111111 6:-0.111111 7:1 8:0.111111 9:0.555556 10:-0.555556
87 | 0 1:-0.83736 2:-0.333333 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
88 | 0 1:-0.83688 2:-0.777778 3:-1 4:-1 5:-0.777778 6:-0.555556 7:-1 8:-0.777778 9:-1 10:-1
89 | 0 1:-0.836771 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
90 | 0 1:-0.83667 2:-0.555556 3:-1 4:-1 5:-0.777778 6:-0.777778 7:-1 8:-1 9:-1 10:-1
91 | 0 1:-0.836553 2:-0.333333 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
92 | 0 1:-0.836476 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
93 | 0 1:-0.836143 2:-0.777778 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
94 | 0 1:-0.835607 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
95 | 0 1:-0.835423 2:-0.777778 3:-1 4:-1 5:-0.777778 6:-0.777778 7:-1 8:-1 9:-1 10:-1
96 | 0 1:-0.83535 2:-0.111111 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
97 | 1 1:-0.835329 2:0.777778 3:0.111111 4:0.777778 5:-0.777778 6:1 7:0.111111 8:-0.777778 9:0.777778 10:1
98 | 1 1:-0.835224 2:0.333333 3:-0.111111 4:0.111111 5:1 6:-0.111111 7:1 8:0.333333 9:0.777778 10:-0.333333
99 | 1 1:-0.835221 2:1 3:-0.555556 4:-0.111111 5:-1 6:1 7:-0.111111 8:-0.555556 9:1 10:-0.777778
100 | 1 1:-0.835103 2:-0.777778 3:-0.555556 4:-0.333333 5:-0.333333 6:-0.777778 7:-0.111111 8:-0.777778 9:-0.111111 10:-1
101 | 0 1:-0.835099 2:-0.333333 3:-1 4:-0.777778 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
102 | 1 1:-0.834966 2:0.555556 3:-0.777778 4:-0.555556 5:-1 6:0.111111 7:-0.555556 8:0.333333 9:-1 10:-1
103 | 1 1:-0.83491 2:1 3:1 4:1 5:1 6:1 7:-1 8:0.555556 9:0.555556 10:0.555556
104 | 1 1:-0.834863 2:0.333333 3:-0.555556 4:-0.333333 5:-0.333333 6:-0.555556 7:-0.555556 8:-0.555556 9:-0.777778 10:0.333333
105 | 1 1:-0.834658 2:1 3:1 4:1 5:0.555556 6:-0.777778 7:1 8:-0.333333 9:-1 10:-1
106 | 1 1:-0.834658 2:-1 3:0.111111 4:0.555556 5:1 6:0.555556 7:1 8:-0.111111 9:0.333333 10:-1
107 | 0 1:-0.834465 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-0.555556 10:-1
108 | 1 1:-0.834465 2:0.111111 3:-0.111111 4:-0.333333 5:-0.333333 6:-0.555556 7:0.777778 8:0.333333 9:0.555556 10:-0.555556
109 | 0 1:-0.834453 2:-1 3:-0.555556 4:-1 5:-0.777778 6:-0.777778 7:-0.777778 8:-0.111111 9:-0.555556 10:-0.777778
110 | 1 1:-0.834445 2:0.555556 3:0.111111 4:-0.333333 5:-0.555556 6:-0.111111 7:0.777778 8:-0.555556 9:-1 10:-1
111 | 1 1:-0.834399 2:1 3:-0.555556 4:-0.555556 5:1 6:-0.777778 7:1 8:0.333333 9:-0.555556 10:-0.555556
112 | 1 1:-0.83424 2:1 3:1 4:1 5:-0.555556 6:1 7:0.555556 8:0.555556 9:-1 10:-1
113 | 0 1:-0.834238 2:-0.555556 3:-0.555556 4:-0.777778 5:-1 6:-0.777778 7:-0.555556 8:-0.555556 9:-1 10:-1
114 | 0 1:-0.834221 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-0.111111 8:-1 9:-1 10:-1
115 | 0 1:-0.834221 2:0.555556 3:-0.555556 4:-0.555556 5:-1 6:-0.777778 7:-0.777778 8:-0.555556 9:-0.777778 10:-1
116 | 1 1:-0.834197 2:-0.333333 3:-0.111111 4:-0.111111 5:1 6:-0.333333 7:1 8:0.333333 9:-0.111111 10:0.555556
117 | 0 1:-0.834196 2:-1 3:-1 4:-1 5:-1 6:-0.333333 7:-0.555556 8:-1 9:-1 10:-1
118 | 0 1:-0.834171 2:-0.555556 3:-0.777778 4:-1 5:-1 6:-0.777778 7:-0.777778 8:-0.555556 9:-1 10:-1
119 | 0 1:-0.834115 2:-1 3:-1 4:-0.777778 5:-0.777778 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
120 | 0 1:-0.834115 2:-0.333333 3:-0.777778 4:-1 5:-1 6:-0.777778 7:-0.777778 8:-0.555556 9:-1 10:-1
121 | 1 1:-0.834104 2:1 3:1 4:1 5:-0.777778 6:1 7:1 8:-0.111111 9:-0.555556 10:-0.555556
122 | 1 1:-0.834059 2:-0.111111 3:-0.555556 4:-0.111111 5:-1 6:0.555556 7:1 8:-0.111111 9:-0.555556 10:-1
123 | 1 1:-0.833834 2:-0.111111 3:-0.333333 4:0.111111 5:0.333333 6:0.777778 7:0.333333 8:0.555556 9:1 10:-1
124 | 0 1:-0.833764 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
125 | 1 1:-0.833693 2:0.333333 3:-0.111111 4:-0.555556 5:0.333333 6:-0.333333 7:1 8:0.333333 9:-0.111111 10:-0.111111
126 | 0 1:-0.833671 2:-0.555556 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
127 | 1 1:-0.833616 2:0.555556 3:-0.555556 4:-0.111111 5:-0.333333 6:-0.111111 7:1 8:-1 9:0.111111 10:-0.777778
128 | 0 1:-0.833599 2:-1 3:-1 4:-1 5:-1 6:1 7:-1 8:-1 9:-1 10:-1
129 | 0 1:-0.833439 2:-0.111111 3:-1 4:-0.555556 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
130 | 0 1:-0.833254 2:-0.777778 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
131 | 1 1:-0.833198 2:-0.111111 3:1 4:0.555556 5:1 6:0.555556 7:1 8:-0.555556 9:0.111111 10:-0.555556
132 | 0 1:-0.833149 2:-0.555556 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-0.777778 10:-1
133 | 0 1:-0.833103 2:-0.555556 3:-1 4:-1 5:-1 6:-0.555556 7:-1 8:-0.777778 9:-1 10:-1
134 | 0 1:-0.833025 2:-0.111111 3:-1 4:-1 5:-1 6:-0.777778 7:-0.777778 8:-0.555556 9:-0.555556 10:-1
135 | 0 1:-0.832868 2:-0.333333 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
136 | 0 1:-0.832867 2:-0.555556 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
137 | 0 1:-0.832743 2:-0.333333 3:-1 4:-0.777778 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
138 | 0 1:-0.832702 2:-0.555556 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
139 | 0 1:-0.832643 2:-0.777778 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
140 | 1 1:-0.832632 2:0.777778 3:-0.111111 4:-0.111111 5:-0.333333 6:-0.333333 7:-0.111111 8:-0.333333 9:-0.555556 10:-0.555556
141 | 0 1:-0.832602 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-0.111111 8:-1 9:-1 10:-1
142 | 0 1:-0.832594 2:-0.777778 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
143 | 1 1:-0.83239 2:-0.555556 3:-0.333333 4:-0.111111 5:-0.777778 6:0.111111 7:0.555556 8:-0.333333 9:-1 10:-1
144 | 0 1:-0.832389 2:-1 3:-1 4:-1 5:-1 6:-0.555556 7:-0.777778 8:-0.777778 9:-1 10:-1
145 | 0 1:-0.832114 2:-0.555556 3:-1 4:-1 5:-0.555556 6:0.555556 7:-1 8:-0.111111 9:0.555556 10:-1
146 | 1 1:-0.832062 2:0.555556 3:0.555556 4:0.333333 5:-0.333333 6:1 7:1 8:0.333333 9:0.555556 10:0.333333
147 | 0 1:-0.831962 2:-1 3:-1 4:-1 5:-1 6:-1 7:-1 8:-0.555556 9:-1 10:-1
148 | 1 1:-0.831843 2:0.333333 3:-0.777778 4:-0.333333 5:-1 6:0.111111 7:1 8:-0.111111 9:-0.333333 10:-0.555556
149 | 1 1:-0.83184 2:1 3:1 4:0.555556 5:0.111111 6:-0.333333 7:-0.111111 8:0.555556 9:1 10:-1
150 | 0 1:-0.831675 2:-0.333333 3:-1 4:-1 5:-1 6:-0.777778 7:-0.555556 8:-1 9:-1 10:-1
151 | 0 1:-0.831661 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
152 | 1 1:-0.831386 2:-0.111111 3:-0.111111 4:-0.111111 5:0.111111 6:-0.555556 7:1 8:-0.555556 9:-1 10:-1
153 | 0 1:-0.831272 2:-1 3:-0.777778 4:-0.777778 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
154 | 0 1:-0.831254 2:-0.777778 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
155 | 1 1:-0.830794 2:0.777778 3:0.777778 4:1 5:-0.555556 6:0.111111 7:1 8:0.333333 9:1 10:0.111111
156 | 1 1:-0.830701 2:1 3:0.333333 4:0.333333 5:-0.333333 6:-0.111111 7:1 8:-0.111111 9:0.333333 10:-0.777778
157 | 0 1:-0.830676 2:-0.333333 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-0.777778 10:-1
158 | 0 1:-0.830648 2:-0.555556 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
159 | 0 1:-0.830623 2:-1 3:-1 4:-1 5:-0.777778 6:-1 7:-0.555556 8:-1 9:-1 10:0.333333
160 | 0 1:-0.830542 2:-0.333333 3:-1 4:-1 5:-1 6:-0.777778 7:-0.777778 8:-0.555556 9:-0.777778 10:-1
161 | 1 1:-0.83054 2:-0.111111 3:0.111111 4:0.333333 5:0.555556 6:0.555556 7:1 8:-0.555556 9:1 10:-0.555556
162 | 1 1:-0.83052 2:1 3:0.555556 4:1 5:1 6:0.111111 7:-1 8:-0.555556 9:-1 10:1
163 | 0 1:-0.830443 2:-0.555556 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
164 | 0 1:-0.830357 2:-1 3:-1 4:-1 5:-0.777778 6:-1 7:-1 8:-1 9:-1 10:-1
165 | 0 1:-0.83028 2:-0.555556 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
166 | 0 1:-0.830243 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
167 | 0 1:-0.830125 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
168 | 1 1:-0.830114 2:0.111111 3:1 4:1 5:1 6:0.555556 7:1 8:1 9:1 10:0.333333
169 | 1 1:-0.830107 2:0.555556 3:0.111111 4:-0.111111 5:-0.333333 6:-0.555556 7:1 8:0.111111 9:-1 10:-1
170 | 1 1:-0.830098 2:-0.111111 3:0.555556 4:0.333333 5:0.333333 6:1 7:1 8:-0.111111 9:0.333333 10:-1
171 | 0 1:-0.829966 2:-0.777778 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
172 | 1 1:-0.829951 2:-0.111111 3:1 4:1 5:-0.555556 6:0.555556 7:-1 8:-0.111111 9:1 10:-0.555556
173 | 0 1:-0.829923 2:-0.333333 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
174 | 1 1:-0.82982 2:-0.111111 3:-0.555556 4:-0.555556 5:-0.555556 6:0.111111 7:1 8:-0.555556 9:-1 10:-1
175 | 0 1:-0.829778 2:-1 3:-1 4:-1 5:-1 6:-1 7:-1 8:-0.555556 9:-1 10:-1
176 | 0 1:-0.829607 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
177 | 0 1:-0.829509 2:0.111111 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
178 | 1 1:-0.829473 2:-0.111111 3:0.555556 4:0.555556 5:0.555556 6:-0.111111 7:1 8:0.333333 9:0.555556 10:-1
179 | 1 1:-0.829407 2:0.555556 3:0.333333 4:0.111111 5:-0.333333 6:-0.333333 7:1 8:-0.111111 9:-1 10:-1
180 | 0 1:-0.829331 2:-0.777778 3:-1 4:-1 5:-1 6:-1 7:-1 8:-0.555556 9:-1 10:-1
181 | 1 1:-0.82924 2:-1 3:-0.111111 4:0.555556 5:0.111111 6:-0.111111 7:0.555556 8:0.333333 9:1 10:-1
182 | 1 1:-0.829218 2:1 3:-0.111111 4:0.111111 5:1 6:0.111111 7:1 8:0.333333 9:0.333333 10:1
183 | 1 1:-0.829047 2:-0.111111 3:0.555556 4:-0.333333 5:1 6:-0.111111 7:0.555556 8:0.777778 9:1 10:-1
184 | 0 1:-0.829 2:-1 3:-0.777778 4:-0.555556 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
185 | 1 1:-0.828603 2:1 3:1 4:1 5:0.555556 6:0.111111 7:0.555556 8:0.333333 9:1 10:-1
186 | 1 1:-0.828567 2:0.333333 3:-0.111111 4:1 5:1 6:1 7:1 8:-0.333333 9:1 10:-0.555556
187 | 0 1:-0.828413 2:-0.111111 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
188 | 0 1:-0.82841 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
189 | 0 1:-0.828385 2:-0.555556 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
190 | 0 1:-0.828385 2:-0.333333 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
191 | 0 1:-0.828243 2:0.555556 3:-0.333333 4:-0.333333 5:-0.111111 6:-0.333333 7:0.333333 8:0.333333 9:0.555556 10:-0.777778
192 | 0 1:-0.828241 2:-0.111111 3:-1 4:-1 5:-0.333333 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
193 | 0 1:-0.828135 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
194 | 0 1:-0.828066 2:-0.555556 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
195 | 1 1:-0.828005 2:0.777778 3:0.333333 4:0.333333 5:-0.111111 6:-0.111111 7:1 8:0.333333 9:0.555556 10:-0.555556
196 | 1 1:-0.827747 2:1 3:0.555556 4:0.555556 5:-0.333333 6:1 7:1 8:0.555556 9:-1 10:-1
197 | 0 1:-0.827709 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
198 | 0 1:-0.827694 2:-0.111111 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
199 | 0 1:-0.827662 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
200 | 1 1:-0.827536 2:-0.111111 3:1 4:1 5:0.777778 6:0.111111 7:1 8:0.333333 9:1 10:-0.111111
201 | 1 1:-0.827441 2:1 3:1 4:0.777778 5:-0.555556 6:0.333333 7:-0.111111 8:-0.555556 9:-0.111111 10:-1
202 | 0 1:-0.827423 2:-1 3:-1 4:-1 5:-1 6:-1 7:-1 8:-0.555556 9:-1 10:-1
203 | 0 1:-0.827423 2:-1 3:-1 4:-1 5:-1 6:-1 7:-1 8:-0.555556 9:-1 10:-1
204 | 0 1:-0.827342 2:-0.111111 3:-1 4:-1 5:-1 6:-1 7:-1 8:-0.555556 9:-1 10:-1
205 | 1 1:-0.827324 2:0.555556 3:1 4:1 5:1 6:-0.111111 7:1 8:0.555556 9:1 10:0.111111
206 | 1 1:-0.827274 2:0.555556 3:1 4:0.555556 5:0.555556 6:-0.333333 7:0.555556 8:0.333333 9:0.333333 10:-1
207 | 0 1:-0.827204 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
208 | 1 1:-0.826975 2:1 3:1 4:1 5:1 6:0.333333 7:1 8:0.333333 9:1 10:-0.333333
209 | 1 1:-0.826947 2:1 3:1 4:1 5:1 6:-0.555556 7:1 8:1 9:0.111111 10:-1
210 | 1 1:-0.826815 2:0.555556 3:0.333333 4:0.555556 5:0.333333 6:-0.111111 7:-0.111111 8:-0.111111 9:1 10:-0.777778
211 | 0 1:-0.826763 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
212 | 0 1:-0.826741 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
213 | 1 1:-0.826687 2:0.111111 3:1 4:0.333333 5:0.333333 6:0.111111 7:-0.333333 8:0.555556 9:1 10:-0.777778
214 | 0 1:-0.826661 2:0.111111 3:-1 4:-0.555556 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
215 | 0 1:-0.826607 2:-1 3:-1 4:-1 5:-0.777778 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
216 | 1 1:-0.826387 2:1 3:0.111111 4:-0.333333 5:-0.555556 6:1 7:1 8:0.777778 9:1 10:-1
217 | 1 1:-0.826355 2:-0.333333 3:-1 4:-1 5:-0.555556 6:-1 7:-0.111111 8:-0.777778 9:-1 10:-1
218 | 1 1:-0.826266 2:0.333333 3:-0.111111 4:0.111111 5:-0.555556 6:-0.555556 7:0.555556 8:0.333333 9:-0.333333 10:-1
219 | 1 1:-0.826176 2:1 3:-0.111111 4:-0.111111 5:0.111111 6:-0.555556 7:1 8:0.333333 9:0.777778 10:-0.777778
220 | 0 1:-0.826171 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
221 | 1 1:-0.826136 2:1 3:-0.111111 4:0.333333 5:-0.333333 6:-0.333333 7:1 8:0.555556 9:0.777778 10:-1
222 | 1 1:-0.826036 2:0.555556 3:0.777778 4:0.777778 5:-0.111111 6:-0.555556 7:-0.111111 8:0.333333 9:0.333333 10:-1
223 | 0 1:-0.826012 2:-1 3:-1 4:-1 5:-1 6:-1 7:-1 8:-0.555556 9:-1 10:-1
224 | 1 1:-0.825733 2:1 3:1 4:1 5:-0.555556 6:1 7:1 8:0.777778 9:1 10:-1
225 | 1 1:-0.825657 2:0.333333 3:-0.333333 4:0.333333 5:-0.333333 6:-0.555556 7:0.333333 8:0.333333 9:0.111111 10:-1
226 | 1 1:-0.825552 2:0.111111 3:0.555556 4:0.333333 5:-0.111111 6:0.111111 7:0.555556 8:0.555556 9:0.777778 10:-0.777778
227 | 0 1:-0.825505 2:0.555556 3:-0.333333 4:0.111111 5:-0.555556 6:-0.555556 7:-1 8:-0.333333 9:-0.555556 10:-1
228 | 1 1:-0.825427 2:1 3:-0.333333 4:-0.111111 5:-0.111111 6:-0.111111 7:1 8:-0.333333 9:-1 10:-1
229 | 0 1:-0.824857 2:-0.555556 3:-0.555556 4:-0.777778 5:-1 6:-0.555556 7:-1 8:-0.555556 9:0.111111 10:-1
230 | 1 1:-0.824033 2:1 3:0.555556 4:0.555556 5:-0.777778 6:0.555556 7:1 8:-0.333333 9:0.555556 10:1
231 | 1 1:-0.824015 2:0.777778 3:0.555556 4:0.555556 5:-0.111111 6:0.111111 7:-0.777778 8:-0.333333 9:1 10:-0.333333
232 | 1 1:-0.823913 2:0.555556 3:1 4:1 5:0.555556 6:0.111111 7:0.777778 8:-0.555556 9:1 10:1
233 | 1 1:-0.82378 2:1 3:-0.333333 4:-0.555556 5:-0.777778 6:-0.555556 7:1 8:-0.111111 9:-0.555556 10:-0.777778
234 | 0 1:-0.819714 2:-0.111111 3:-1 4:-0.555556 5:-0.555556 6:-0.777778 7:-0.777778 8:-0.777778 9:-0.555556 10:-1
235 | 0 1:-0.818876 2:-0.555556 3:-1 4:-1 5:-0.555556 6:-1 7:-1 8:-0.555556 9:-1 10:-1
236 | 0 1:-0.818737 2:-0.777778 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
237 | 0 1:-0.990339 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-0.111111 8:-0.111111 9:-1 10:-1
238 | 0 1:-0.817466 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
239 | 0 1:-0.817131 2:-0.111111 3:-1 4:-1 5:-0.777778 6:-0.777778 7:-0.777778 8:-0.555556 9:-1 10:-1
240 | 1 1:-0.987826 2:0.555556 3:1 4:1 5:0.555556 6:-0.111111 7:1 8:0.333333 9:0.555556 10:-1
241 | 1 1:-0.987742 2:0.555556 3:-0.333333 4:-0.333333 5:-1 6:-0.777778 7:0.777778 8:-0.555556 9:-0.555556 10:-1
242 | 0 1:-0.984444 2:-0.333333 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:0.111111 10:-1
243 | 0 1:-0.981997 2:-1 3:-0.777778 4:-0.777778 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
244 | 1 1:-0.980901 2:1 3:-0.333333 4:-0.333333 5:1 6:-0.777778 7:1 8:-0.111111 9:-0.555556 10:-0.555556
245 | 0 1:-0.857569 2:0.111111 3:-0.555556 4:-0.555556 5:-0.111111 6:-0.555556 7:1 8:-0.555556 9:-0.111111 10:-0.555556
246 | 1 1:-0.845097 2:0.111111 3:1 4:1 5:-0.777778 6:0.555556 7:1 8:0.333333 9:-0.555556 10:-0.555556
247 | 1 1:-0.842769 2:0.777778 3:1 4:1 5:-1 6:1 7:0.555556 8:-0.555556 9:-0.555556 10:-1
248 | 1 1:-0.83491 2:-0.111111 3:0.111111 4:0.111111 5:-0.777778 6:-0.333333 7:1 8:-0.555556 9:0.111111 10:-1
249 | 0 1:-0.832868 2:-0.555556 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
250 | 0 1:-0.832868 2:-0.555556 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
251 | 0 1:-0.830443 2:-0.555556 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
252 | 0 1:-0.973177 2:-0.111111 3:0.333333 4:0.333333 5:-1 6:-0.111111 7:0.555556 8:-0.555556 9:-0.333333 10:-1
253 | 1 1:-0.971284 2:1 3:-0.111111 4:0.555556 5:1 6:-0.555556 7:1 8:-0.111111 9:-1 10:-0.555556
254 | 1 1:-0.970105 2:-0.111111 3:1 4:1 5:0.111111 6:1 7:1 8:1 9:0.111111 10:-0.111111
255 | 1 1:-0.968522 2:0.555556 3:0.555556 4:0.777778 5:-0.333333 6:-0.111111 7:1 8:0.333333 9:0.555556 10:-1
256 | 1 1:-0.964179 2:1 3:-0.333333 4:-0.333333 5:1 6:0.111111 7:1 8:-0.111111 9:-0.111111 10:-1
257 | 1 1:-0.962504 2:0.333333 3:0.777778 4:-0.333333 5:1 6:1 7:-0.555556 8:-0.111111 9:-0.555556 10:-0.555556
258 | 0 1:-0.832868 2:-0.111111 3:-1 4:-0.333333 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-0.777778 10:-1
259 | 1 1:-0.830443 2:1 3:1 4:0.111111 5:-0.555556 6:-0.555556 7:1 8:-0.333333 9:-0.555556 10:-0.777778
260 | 1 1:-0.961571 2:-0.555556 3:-0.555556 4:-0.111111 5:-0.777778 6:-0.555556 7:1 8:0.333333 9:-1 10:-1
261 | 1 1:-0.961011 2:1 3:0.555556 4:0.555556 5:-0.777778 6:-0.555556 7:-0.333333 8:0.555556 9:0.333333 10:0.555556
262 | 0 1:-0.951949 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
263 | 1 1:-0.951092 2:0.555556 3:-0.333333 4:0.333333 5:-1 6:-0.555556 7:1 8:-0.555556 9:0.777778 10:-0.777778
264 | 0 1:-0.948013 2:-0.111111 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
265 | 1 1:-0.961571 2:-0.555556 3:-0.555556 4:-0.111111 5:-0.777778 6:-0.555556 7:1 8:0.333333 9:-1 10:-1
266 | 1 1:-0.945407 2:0.333333 3:-0.777778 4:-0.333333 5:-1 6:-0.555556 7:-0.333333 8:-0.555556 9:-0.555556 10:-1
267 | 0 1:-0.94502 2:-0.555556 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-0.777778 10:-1
268 | 0 1:-0.944568 2:-0.555556 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
269 | 0 1:-0.941918 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
270 | 0 1:-0.941318 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
271 | 1 1:-0.938238 2:1 3:-0.111111 4:0.333333 5:-0.555556 6:-0.555556 7:0.333333 8:-0.555556 9:-0.555556 10:0.555556
272 | 0 1:-0.936837 2:-0.555556 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
273 | 0 1:-0.93678 2:-0.777778 3:-1 4:-1 5:-0.777778 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
274 | 1 1:-0.936555 2:-1 3:-0.333333 4:-0.555556 5:1 6:-0.333333 7:1 8:-0.111111 9:0.111111 10:-1
275 | 1 1:-0.935943 2:1 3:-0.333333 4:0.111111 5:-1 6:-0.777778 7:1 8:-0.111111 9:-0.555556 10:-1
276 | 1 1:-0.933558 2:0.333333 3:-0.333333 4:-0.111111 5:1 6:-0.777778 7:1 8:-0.555556 9:0.555556 10:-0.777778
277 | 1 1:-0.930701 2:0.555556 3:1 4:1 5:1 6:0.555556 7:1 8:1 9:0.333333 10:-0.555556
278 | 1 1:-0.930408 2:1 3:1 4:1 5:1 6:1 7:1 8:-0.333333 9:1 10:1
279 | 0 1:-0.929511 2:-0.555556 3:-1 4:-1 5:-1 6:-0.555556 7:-1 8:-0.777778 9:-1 10:-1
280 | 1 1:-0.928283 2:0.111111 3:-1 4:-0.555556 5:-1 6:-0.333333 7:-0.111111 8:-0.111111 9:1 10:-1
281 | 1 1:-0.926428 2:-0.111111 3:0.111111 4:0.111111 5:0.555556 6:0.111111 7:1 8:-0.333333 9:1 10:-0.333333
282 | 0 1:-0.925725 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
283 | 0 1:-0.925606 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
284 | 1 1:-0.919664 2:1 3:-0.333333 4:-0.333333 5:0.111111 6:-0.777778 7:1 8:-0.777778 9:-0.555556 10:-1
285 | 1 1:-0.918849 2:-0.111111 3:-0.111111 4:0.333333 5:0.555556 6:0.111111 7:1 8:0.333333 9:-0.333333 10:-1
286 | 0 1:-0.917427 2:-0.111111 3:-0.555556 4:-0.333333 5:-0.555556 6:-0.333333 7:-0.111111 8:-0.333333 9:0.333333 10:-1
287 | 0 1:-0.916089 2:0.555556 3:-0.777778 4:-1 5:-1 6:-0.111111 7:-1 8:-1 9:-1 10:-1
288 | 1 1:-1 2:0.777778 3:-1 4:-0.777778 5:0.111111 6:-0.333333 7:1 8:0.333333 9:0.333333 10:-0.777778
289 | 1 1:-0.914499 2:0.555556 3:-0.333333 4:1 5:-0.111111 6:-0.333333 7:-0.333333 8:0.333333 9:1 10:-1
290 | 0 1:-0.914457 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
291 | 1 1:-0.913767 2:1 3:1 4:1 5:0.333333 6:0.777778 7:1 8:0.333333 9:1 10:1
292 | 0 1:-0.912847 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
293 | 1 1:-0.911821 2:0.555556 3:-0.555556 4:-0.333333 5:0.777778 6:-0.555556 7:1 8:-0.555556 9:-0.555556 10:-1
294 | 1 1:-0.910945 2:1 3:0.555556 4:-0.333333 5:-0.333333 6:-0.333333 7:1 8:-0.555556 9:1 10:-0.333333
295 | 0 1:-0.909982 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
296 | 0 1:-0.909855 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
297 | 1 1:-0.909816 2:0.333333 3:0.555556 4:0.333333 5:0.111111 6:-0.333333 7:-0.555556 8:0.555556 9:0.555556 10:-0.333333
298 | 0 1:-0.908855 2:-0.555556 3:-1 4:-1 5:-1 6:-0.777778 7:-0.111111 8:-0.111111 9:-1 10:-1
299 | 0 1:-0.907164 2:-0.777778 3:-1 4:-1 5:-1 6:-0.555556 7:-1 8:-0.777778 9:-1 10:-1
300 | 0 1:-0.906705 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
301 | 1 1:-0.906168 2:0.555556 3:0.111111 4:-0.333333 5:1 6:1 7:-1 8:-0.555556 9:-0.111111 10:-1
302 | 0 1:-0.905858 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
303 | 0 1:-0.904305 2:-1 3:-1 4:-1 5:-1 6:-1 7:-1 8:-0.777778 9:-1 10:-1
304 | 1 1:-0.903958 2:-0.111111 3:-0.111111 4:-0.111111 5:-0.777778 6:-0.111111 7:1 8:-0.333333 9:-0.555556 10:-1
305 | 1 1:-0.90353 2:0.111111 3:0.555556 4:0.333333 5:0.555556 6:0.111111 7:0.555556 8:0.555556 9:0.777778 10:-1
306 | 0 1:-0.902133 2:-1 3:-1 4:-1 5:-1 6:-0.111111 7:-1 8:-0.555556 9:-1 10:-1
307 | 0 1:-0.901709 2:-0.333333 3:-0.333333 4:-0.333333 5:-0.333333 6:0.111111 7:-0.111111 8:0.333333 9:-0.555556 10:-1
308 | 1 1:-0.900305 2:0.333333 3:0.111111 4:-0.555556 5:-0.777778 6:-0.111111 7:1 8:0.333333 9:-0.333333 10:0.111111
309 | 0 1:-0.899893 2:-0.555556 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
310 | 1 1:-0.899866 2:-0.111111 3:-0.333333 4:0.111111 5:1 6:-0.777778 7:1 8:-0.333333 9:-1 10:-1
311 | 0 1:-0.89887 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
312 | 0 1:-0.898443 2:-0.555556 3:-0.777778 4:-0.777778 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-0.555556 10:-1
313 | 1 1:-0.897016 2:1 3:-1 4:-1 5:-1 6:-0.777778 7:1 8:-0.111111 9:-0.333333 10:-1
314 | 0 1:-0.896533 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
315 | 1 1:-0.895956 2:0.555556 3:1 4:-0.555556 5:-0.777778 6:0.111111 7:-0.333333 8:-0.555556 9:1 10:-1
316 | 1 1:-0.89592 2:1 3:-0.333333 4:0.111111 5:-0.333333 6:-0.111111 7:1 8:0.333333 9:-1 10:-1
317 | 1 1:-0.998056 2:1 3:-0.333333 4:0.333333 5:-0.777778 6:-0.777778 7:0.555556 8:0.111111 9:-1 10:-1
318 | 0 1:-0.895213 2:-0.111111 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-0.777778
319 | 0 1:-0.894453 2:-0.111111 3:-0.777778 4:-0.777778 5:-0.777778 6:-0.777778 7:-1 8:-0.777778 9:-0.777778 10:-1
320 | 1 1:-0.892191 2:-0.111111 3:-0.333333 4:0.111111 5:0.111111 6:-0.333333 7:1 8:-0.333333 9:-0.555556 10:-1
321 | 1 1:-0.89213 2:0.555556 3:0.111111 4:0.333333 5:-0.555556 6:-0.555556 7:1 8:-0.555556 9:-0.333333 10:-0.777778
322 | 0 1:-0.891066 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
323 | 1 1:-0.890381 2:0.111111 3:-0.111111 4:-0.111111 5:0.555556 6:-0.333333 7:1 8:-0.555556 9:-0.333333 10:-1
324 | 0 1:-0.890217 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
325 | 0 1:-0.904305 2:-1 3:-1 4:-1 5:-1 6:-1 7:-1 8:-0.777778 9:-1 10:-1
326 | 1 1:-0.889023 2:0.555556 3:-0.111111 4:-0.111111 5:-0.111111 6:-0.777778 7:1 8:-0.333333 9:-0.555556 10:-1
327 | 1 1:-0.888501 2:1 3:-0.555556 4:-0.555556 5:-1 6:-0.777778 7:1 8:0.333333 9:0.111111 10:-1
328 | 0 1:-0.888473 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
329 | 0 1:-0.887851 2:-0.777778 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
330 | 0 1:-0.887755 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
331 | 1 1:-0.886572 2:0.333333 3:0.111111 4:-0.333333 5:0.555556 6:1 7:1 8:0.777778 9:-0.111111 10:-0.555556
332 | 0 1:-0.885961 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
333 | 0 1:-0.885398 2:-0.111111 3:-0.777778 4:-0.777778 5:-0.777778 6:-0.555556 7:-1 8:-1 9:-0.555556 10:-1
334 | 0 1:-0.885312 2:-1 3:-1 4:-1 5:-1 6:-1 7:-1 8:-1 9:-0.555556 10:-1
335 | 1 1:-0.885169 2:-0.555556 3:-0.333333 4:-0.333333 5:1 6:-0.111111 7:-1 8:-0.555556 9:-0.555556 10:-1
336 | 1 1:-0.885118 2:-0.333333 3:-0.777778 4:-0.555556 5:-0.111111 6:-0.555556 7:0.555556 8:0.333333 9:0.111111 10:-1
337 | 0 1:-0.88454 2:-0.111111 3:-1 4:-1 5:-0.555556 6:-0.777778 7:-1 8:-1 9:-1 10:-1
338 | 0 1:-0.884444 2:-0.777778 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
339 | 0 1:-0.882987 2:-0.555556 3:-0.333333 4:-0.111111 5:-0.555556 6:0.333333 7:-0.555556 8:-0.333333 9:0.111111 10:-1
340 | 1 1:-0.88239 2:-0.777778 3:0.333333 4:1 5:1 6:0.333333 7:1 8:-0.333333 9:0.777778 10:-0.333333
341 | 0 1:-0.881689 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
342 | 0 1:-0.881353 2:-0.333333 3:-1 4:-1 5:-1 6:-0.555556 7:-1 8:-0.777778 9:-0.777778 10:-1
343 | 1 1:-0.881145 2:-0.111111 3:-0.555556 4:-0.555556 5:-1 6:-0.555556 7:-0.555556 8:-0.555556 9:-0.555556 10:-0.555556
344 | 1 1:-0.881118 2:0.555556 3:1 4:1 5:0.333333 6:1 7:1 8:0.333333 9:-0.555556 10:0.555556
345 | 1 1:-0.880076 2:0.555556 3:1 4:-0.111111 5:-0.555556 6:0.555556 7:-0.333333 8:-0.333333 9:1 10:-0.555556
346 | 1 1:-0.878997 2:1 3:-0.555556 4:-0.111111 5:-0.333333 6:-0.555556 7:0.333333 8:-0.555556 9:-0.111111 10:-0.555556
347 | 1 1:-0.878438 2:0.111111 3:1 4:1 5:1 6:1 7:1 8:0.555556 9:1 10:1
348 | 1 1:-0.878341 2:-0.555556 3:1 4:-0.555556 5:1 6:0.111111 7:1 8:-0.111111 9:-1 10:-0.333333
349 | 0 1:-0.876813 2:-0.555556 3:-0.777778 4:-0.777778 5:-1 6:-0.333333 7:-0.555556 8:-0.777778 9:-1 10:-1
350 | 0 1:-0.876761 2:-0.333333 3:-0.333333 4:-0.333333 5:-0.777778 6:-0.777778 7:-0.555556 8:-0.777778 9:-1 10:-1
351 | 0 1:-0.875584 2:-0.777778 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
352 | 0 1:-0.875469 2:-0.777778 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
353 | 1 1:-0.995169 2:0.111111 3:1 4:1 5:1 6:0.555556 7:1 8:0.333333 9:1 10:0.333333
354 | 1 1:-0.985524 2:-0.111111 3:0.555556 4:0.555556 5:1 6:-0.111111 7:1 8:0.555556 9:1 10:-0.555556
355 | 0 1:-0.95835 2:-1 3:-1 4:-0.555556 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
356 | 0 1:-0.945452 2:-1 3:-1 4:-0.555556 5:-1 6:-1 7:-1 8:-0.777778 9:-1 10:-1
357 | 0 1:-0.935899 2:-0.333333 3:-0.555556 4:-0.777778 5:-1 6:-0.555556 7:-1 8:-0.777778 9:-1 10:-1
358 | 0 1:-0.935766 2:-1 3:-1 4:-0.555556 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
359 | 0 1:-0.935766 2:-0.333333 3:-1 4:-0.777778 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
360 | 0 1:-0.931586 2:-0.111111 3:-1 4:-1 5:-0.777778 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
361 | 0 1:-0.925725 2:-0.555556 3:-1 4:-0.777778 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
362 | 0 1:-0.914411 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
363 | 0 1:-0.913772 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
364 | 0 1:-0.911751 2:-1 3:-1 4:-1 5:-1 6:-1 7:-1 8:-0.777778 9:-1 10:-1
365 | 0 1:-0.911227 2:-0.555556 3:-1 4:-1 5:-0.333333 6:-0.555556 7:-1 8:-0.777778 9:-0.777778 10:-1
366 | 0 1:-0.907012 2:-0.111111 3:-0.555556 4:-0.333333 5:-1 6:-0.333333 7:-1 8:-0.555556 9:-1 10:-1
367 | 0 1:-0.889168 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
368 | 1 1:-0.883048 2:1 3:0.111111 4:-0.555556 5:0.111111 6:-0.333333 7:1 8:0.333333 9:0.555556 10:-0.333333
369 | 0 1:-0.859737 2:-0.555556 3:-0.777778 4:-0.777778 5:-0.777778 6:-0.777778 7:-1 8:-0.555556 9:-0.777778 10:-1
370 | 0 1:-0.856787 2:-0.777778 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
371 | 0 1:-0.85621 2:-0.777778 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
372 | 0 1:-0.849494 2:-0.555556 3:-0.555556 4:-0.777778 5:-0.777778 6:-0.555556 7:-1 8:-1 9:-0.777778 10:-0.555556
373 | 1 1:-0.848128 2:0.333333 3:0.111111 4:0.111111 5:-0.555556 6:-0.777778 7:1 8:0.333333 9:-1 10:-1
374 | 0 1:-0.843 2:-0.111111 3:-0.555556 4:-0.555556 5:-0.777778 6:-0.555556 7:-1 8:-0.555556 9:-1 10:-1
375 | 0 1:-0.843 2:-0.777778 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-0.777778 10:-1
376 | 0 1:-0.842679 2:-0.111111 3:-1 4:-1 5:-1 6:-0.555556 7:-0.777778 8:-0.777778 9:-0.777778 10:-1
377 | 0 1:-0.840484 2:-1 3:-1 4:-1 5:-0.777778 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
378 | 1 1:-0.837449 2:1 3:0.555556 4:0.333333 5:-0.333333 6:-0.555556 7:1 8:0.333333 9:0.777778 10:-1
379 | 0 1:-0.836809 2:-0.555556 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
380 | 0 1:-0.836476 2:-1 3:-1 4:-1 5:-1 6:-1 7:-1 8:-1 9:-1 10:-1
381 | 0 1:-0.836453 2:-1 3:-0.777778 4:-0.555556 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
382 | 0 1:-0.834978 2:-0.555556 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
383 | 0 1:-0.833797 2:-0.555556 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
384 | 0 1:-0.830798 2:-0.333333 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
385 | 0 1:-0.830767 2:-0.555556 3:-0.777778 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-0.777778 10:-1
386 | 0 1:-0.829297 2:-1 3:-0.777778 4:-0.555556 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
387 | 1 1:-0.828558 2:-0.555556 3:1 4:0.555556 5:0.333333 6:0.111111 7:0.777778 8:0.777778 9:-0.555556 10:0.555556
388 | 0 1:-0.828181 2:-0.555556 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
389 | 0 1:-0.826805 2:-0.111111 3:-0.555556 4:-0.555556 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
390 | 0 1:-0.826759 2:-0.555556 3:-1 4:-1 5:-1 6:-0.777778 7:-0.333333 8:-1 9:-1 10:-1
391 | 0 1:-0.826724 2:-1 3:-0.777778 4:-1 5:-0.555556 6:-0.777778 7:-1 8:-1 9:-0.777778 10:-1
392 | 0 1:-0.82577 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
393 | 0 1:-0.825483 2:-0.333333 3:-0.777778 4:-0.777778 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
394 | 0 1:-0.825079 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
395 | 0 1:-0.824738 2:-0.777778 3:-0.555556 4:-0.777778 5:-0.777778 6:-0.777778 7:-0.777778 8:-0.555556 9:-1 10:-1
396 | 0 1:-0.824613 2:-0.555556 3:-1 4:-0.777778 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
397 | 0 1:-0.824562 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
398 | 1 1:-0.82447 2:1 3:1 4:1 5:0.111111 6:0.555556 7:-0.333333 8:0.555556 9:-0.111111 10:-1
399 | 0 1:-0.824428 2:-0.111111 3:-1 4:-0.777778 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
400 | 1 1:-0.824423 2:0.555556 3:-0.111111 4:0.111111 5:-0.777778 6:-0.555556 7:1 8:0.111111 9:0.111111 10:-1
401 | 0 1:-0.824381 2:-0.555556 3:-0.555556 4:-0.777778 5:0.111111 6:-0.555556 7:-0.555556 8:-0.555556 9:-0.111111 10:-1
402 | 1 1:-0.824364 2:0.555556 3:0.333333 4:0.555556 5:-0.111111 6:1 7:1 8:0.333333 9:-0.777778 10:-1
403 | 0 1:-0.824271 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
404 | 0 1:-0.824216 2:-0.111111 3:-0.777778 4:-0.777778 5:-0.777778 6:-0.777778 7:-0.777778 8:-0.555556 9:-0.777778 10:-0.777778
405 | 0 1:-0.822249 2:-0.777778 3:-0.555556 4:-1 5:-1 6:-0.111111 7:-1 8:-1 9:-1 10:-1
406 | 0 1:-0.821968 2:-0.555556 3:-0.777778 4:-0.777778 5:-0.555556 6:-0.777778 7:-0.555556 8:-0.555556 9:-1 10:-1
407 | 1 1:-0.821697 2:1 3:1 4:1 5:0.333333 6:1 7:1 8:0.555556 9:-0.777778 10:-1
408 | 0 1:-0.82163 2:-0.333333 3:-0.555556 4:-0.555556 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-0.555556 10:-1
409 | 0 1:-0.821605 2:-0.111111 3:-1 4:-0.555556 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
410 | 0 1:-0.821587 2:-0.555556 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
411 | 1 1:-0.821496 2:0.777778 3:1 4:1 5:1 6:1 7:1 8:1 9:1 10:-1
412 | 0 1:-0.821495 2:-0.111111 3:-0.555556 4:0.111111 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
413 | 1 1:-0.82036 2:0.555556 3:0.333333 4:0.555556 5:-0.777778 6:-0.333333 7:-0.777778 8:-0.111111 9:1 10:-1
414 | 0 1:-0.819481 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
415 | 0 1:-0.818876 2:-0.777778 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
416 | 0 1:-0.818876 2:-1 3:-0.555556 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-0.777778 10:-1
417 | 0 1:-0.818876 2:-0.111111 3:-1 4:-1 5:-0.555556 6:-0.333333 7:-1 8:-0.555556 9:-0.777778 10:-1
418 | 0 1:-0.818646 2:-0.111111 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-0.777778 10:-1
419 | 0 1:-0.816285 2:-0.555556 3:-0.777778 4:-0.777778 5:-0.555556 6:-0.777778 7:-1 8:-1 9:-1 10:-1
420 | 0 1:-0.816285 2:0.111111 3:0.777778 4:0.333333 5:-0.111111 6:-0.111111 7:0.555556 8:-0.333333 9:-0.777778 10:-1
421 | 1 1:-0.816117 2:1 3:0.555556 4:1 5:-1 6:-0.555556 7:1 8:-0.111111 9:-1 10:-1
422 | 1 1:-0.816024 2:1 3:1 4:1 5:-1 6:0.111111 7:-1 8:-0.777778 9:0.555556 10:-1
423 | 0 1:-0.930705 2:-0.333333 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
424 | 0 1:-0.926045 2:-0.333333 3:-1 4:-0.555556 5:-0.555556 6:-0.777778 7:-1 8:-1 9:-1 10:-1
425 | 0 1:-0.924855 2:-0.111111 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
426 | 1 1:-0.918634 2:1 3:-0.333333 4:-0.555556 5:1 6:-0.333333 7:1 8:1 9:-1 10:-1
427 | 0 1:-0.908217 2:-0.111111 3:-0.777778 4:-0.777778 5:-0.333333 6:-0.777778 7:-0.333333 8:-1 9:-1 10:-1
428 | 0 1:-0.899823 2:-1 3:-1 4:-1 5:-0.555556 6:-0.777778 7:-0.555556 8:-1 9:-1 10:-1
429 | 0 1:-0.899823 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-0.777778 8:-1 9:-1 10:-1
430 | 0 1:-0.892886 2:-0.111111 3:-1 4:-1 5:0.111111 6:-0.555556 7:-1 8:-0.777778 9:-1 10:-1
431 | 0 1:-0.885856 2:-0.777778 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
432 | 0 1:-0.852668 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
433 | 0 1:-0.851322 2:-0.111111 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
434 | 0 1:-0.832868 2:-1 3:-1 4:-1 5:-1 6:-1 7:-1 8:-1 9:-1 10:-1
435 | 1 1:-0.831204 2:-0.111111 3:0.333333 4:0.777778 5:0.555556 6:0.111111 7:1 8:0.555556 9:1 10:-1
436 | 0 1:-0.829961 2:-0.333333 3:-1 4:-1 5:-0.555556 6:-1 7:-1 8:-0.777778 9:-1 10:-1
437 | 0 1:-0.829904 2:-0.111111 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
438 | 0 1:-0.826196 2:-0.555556 3:-1 4:-1 5:-0.555556 6:-0.777778 7:-1 8:-1 9:-1 10:-1
439 | 1 1:-0.825611 2:-0.333333 3:-0.111111 4:-0.111111 5:0.555556 6:0.111111 7:1 8:1 9:0.333333 10:-1
440 | 0 1:-0.824503 2:-0.777778 3:-0.555556 4:-1 5:-1 6:-0.555556 7:-1 8:-1 9:-1 10:-1
441 | 1 1:-0.823286 2:1 3:-0.777778 4:-0.777778 5:-1 6:-0.777778 7:0.111111 8:-1 9:-1 10:-0.777778
442 | 1 1:-0.821657 2:1 3:0.111111 4:-0.111111 5:0.555556 6:-0.111111 7:1 8:0.555556 9:0.111111 10:-1
443 | 1 1:-0.821427 2:0.555556 3:0.555556 4:0.777778 5:0.111111 6:0.111111 7:-0.555556 8:1 9:1 10:-1
444 | 0 1:-0.820364 2:-0.111111 3:-1 4:-0.777778 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
445 | 0 1:-0.820099 2:-0.111111 3:-1 4:-0.555556 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
446 | 0 1:-0.820037 2:-0.111111 3:-1 4:-1 5:-0.555556 6:-0.777778 7:-1 8:-1 9:-1 10:-1
447 | 0 1:-0.819964 2:-0.555556 3:-1 4:-1 5:-1 6:-0.777778 7:-0.111111 8:-1 9:-1 10:-1
448 | 0 1:-0.818876 2:0.111111 3:-1 4:-1 5:-0.555556 6:-0.777778 7:-1 8:-1 9:-1 10:-1
449 | 0 1:-0.818253 2:-0.333333 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-0.777778 10:-1
450 | 0 1:-0.816206 2:-0.333333 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
451 | 1 1:-0.815817 2:1 3:0.777778 4:0.555556 5:0.333333 6:0.111111 7:-0.333333 8:0.333333 9:1 10:-0.555556
452 | 1 1:-0.815541 2:1 3:0.111111 4:0.111111 5:-0.777778 6:-0.333333 7:1 8:0.777778 9:0.333333 10:-1
453 | 1 1:-0.815365 2:0.111111 3:0.111111 4:0.111111 5:-0.111111 6:-0.333333 7:1 8:0.333333 9:0.111111 10:-0.777778
454 | 0 1:-0.844351 2:-0.333333 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
455 | 0 1:-0.832976 2:-1 3:-1 4:-0.777778 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
456 | 0 1:-0.828509 2:-0.555556 3:-1 4:-1 5:-1 6:-1 7:-1 8:-0.777778 9:-1 10:-1
457 | 0 1:-0.824449 2:0.111111 3:-1 4:-1 5:-0.555556 6:-0.777778 7:-1 8:-1 9:-1 10:-1
458 | 0 1:-0.821636 2:0.111111 3:-1 4:-1 5:-1 6:-1 7:-1 8:-1 9:-1 10:-1
459 | 0 1:-0.819849 2:-0.333333 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
460 | 0 1:-0.818718 2:-0.111111 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
461 | 0 1:-0.817204 2:-0.555556 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
462 | 0 1:-0.815898 2:-0.333333 3:-1 4:-0.777778 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
463 | 0 1:-0.815863 2:-0.333333 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
464 | 0 1:-0.815814 2:-0.111111 3:-0.777778 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
465 | 1 1:-0.81543 2:-0.333333 3:0.555556 4:0.333333 5:1 6:-0.333333 7:1 8:0.333333 9:-0.111111 10:-1
466 | 0 1:-0.815014 2:-0.111111 3:-1 4:-1 5:-1 6:-1 7:-1 8:-1 9:-1 10:-1
467 | 0 1:-0.814942 2:-0.111111 3:-0.555556 4:-0.777778 5:-0.333333 6:-0.777778 7:-1 8:-1 9:-1 10:-1
468 | 1 1:-0.812591 2:0.777778 3:1 4:1 5:1 6:1 7:-0.111111 8:1 9:1 10:1
469 | 1 1:-0.938647 2:0.555556 3:0.333333 4:0.555556 5:-0.111111 6:-0.111111 7:1 8:0.777778 9:1 10:-1
470 | 0 1:-0.891856 2:-0.111111 3:-1 4:-0.777778 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
471 | 0 1:-0.859809 2:-1 3:-1 4:-1 5:-0.555556 6:-1 7:-0.555556 8:-1 9:-1 10:-1
472 | 0 1:-0.849578 2:-0.555556 3:-1 4:-1 5:-1 6:-1 7:-1 8:-0.777778 9:-1 10:-1
473 | 1 1:-0.849065 2:1 3:1 4:1 5:1 6:0.111111 7:1 8:0.555556 9:-1 10:-0.111111
474 | 1 1:-0.848708 2:-0.555556 3:0.111111 4:-0.333333 5:1 6:-0.555556 7:-0.555556 8:-0.555556 9:-0.333333 10:-1
475 | 1 1:-0.847545 2:0.111111 3:-0.555556 4:-0.777778 5:-1 6:-0.555556 7:-0.333333 8:-0.333333 9:-1 10:-1
476 | 0 1:-0.842892 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
477 | 1 1:-0.84231 2:-0.111111 3:0.555556 4:0.777778 5:-0.333333 6:-0.555556 7:1 8:0.333333 9:-1 10:-1
478 | 0 1:-0.840099 2:-0.333333 3:-1 4:-1 5:-1 6:-1 7:-1 8:-0.777778 9:-1 10:-1
479 | 1 1:-0.838797 2:-0.111111 3:1 4:1 5:1 6:0.111111 7:1 8:0.111111 9:-0.111111 10:-0.777778
480 | 0 1:-0.836817 2:-0.111111 3:-1 4:-0.777778 5:1 6:-0.333333 7:-0.111111 8:-0.777778 9:-1 10:-1
481 | 0 1:-0.83458 2:-0.555556 3:-1 4:-1 5:-1 6:-1 7:-1 8:-0.777778 9:-1 10:-1
482 | 0 1:-0.832993 2:-1 3:-1 4:-1 5:-1 6:-1 7:-1 8:-1 9:-1 10:-1
483 | 0 1:-0.832868 2:-0.333333 3:-0.777778 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
484 | 0 1:-0.829559 2:-0.333333 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
485 | 0 1:-0.827559 2:-0.333333 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
486 | 0 1:-0.826571 2:0.111111 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
487 | 0 1:-0.824537 2:-0.333333 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
488 | 0 1:-0.822187 2:-0.333333 3:-1 4:-1 5:-0.777778 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
489 | 0 1:-0.820398 2:-0.333333 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
490 | 0 1:-0.81997 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
491 | 0 1:-0.8187 2:-0.555556 3:-0.555556 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
492 | 1 1:-0.817255 2:0.555556 3:1 4:1 5:1 6:0.333333 7:-0.111111 8:-0.333333 9:0.555556 10:0.333333
493 | 0 1:-0.815976 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-0.333333 8:-1 9:-1 10:-1
494 | 0 1:-0.815704 2:-0.111111 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
495 | 0 1:-0.815675 2:-0.777778 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
496 | 0 1:-0.81555 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
497 | 0 1:-0.815316 2:-0.111111 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
498 | 0 1:-0.815306 2:-0.111111 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
499 | 0 1:-0.814618 2:-0.555556 3:-1 4:-1 5:-1 6:-1 7:-1 8:-0.777778 9:-1 10:-1
500 | 1 1:-0.814366 2:0.111111 3:0.111111 4:0.333333 5:1 6:-0.555556 7:1 8:0.555556 9:1 10:-0.777778
501 | 1 1:-0.813315 2:-0.333333 3:1 4:-0.333333 5:0.333333 6:-0.555556 7:1 8:0.777778 9:1 10:-1
502 | 0 1:-0.812306 2:-1 3:-1 4:-1 5:-1 6:-1 7:-1 8:-1 9:-1 10:-1
503 | 0 1:-0.812306 2:-1 3:-1 4:-1 5:-1 6:-1 7:-1 8:-0.777778 9:-1 10:-1
504 | 0 1:-0.812272 2:-0.555556 3:-1 4:-0.777778 5:-0.777778 6:-0.777778 7:-1 8:-1 9:-1 10:-1
505 | 1 1:-0.810759 2:-0.333333 3:0.333333 4:0.555556 5:-0.555556 6:-0.333333 7:1 8:0.777778 9:-1 10:-1
506 | 0 1:-0.959716 2:-1 3:-1 4:-1 5:-1 6:-0.555556 7:-1 8:-1 9:-1 10:-1
507 | 0 1:-0.954269 2:-0.333333 3:-1 4:-1 5:-1 6:-0.555556 7:-1 8:-1 9:-1 10:-1
508 | 1 1:-0.947887 2:1 3:-0.333333 4:-0.111111 5:-0.333333 6:-0.555556 7:-0.111111 8:0.333333 9:-0.555556 10:-1
509 | 1 1:-0.909082 2:0.333333 3:-0.111111 4:0.111111 5:1 6:-0.333333 7:1 8:-0.111111 9:-0.555556 10:-1
510 | 0 1:-0.897501 2:-0.555556 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
511 | 0 1:-0.89452 2:-0.555556 3:-1 4:-1 5:-0.777778 6:-0.777778 7:-1 8:-1 9:-1 10:-1
512 | 0 1:-0.89452 2:-0.333333 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
513 | 0 1:-0.890217 2:-0.333333 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
514 | 0 1:-0.888838 2:0.111111 3:-1 4:-0.555556 5:-0.777778 6:-0.777778 7:-1 8:-1 9:-1 10:-1
515 | 0 1:0.220274 2:-0.333333 3:-1 4:-1 5:-1 6:-1 7:-1 8:-0.777778 9:-1 10:-1
516 | 1 1:-0.884384 2:0.333333 3:-0.333333 4:-0.333333 5:-0.555556 6:-0.333333 7:1 8:0.111111 9:0.777778 10:-1
517 | 0 1:-0.879917 2:-0.333333 3:-0.777778 4:-0.777778 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
518 | 0 1:-0.879553 2:-1 3:-1 4:-1 5:-1 6:-1 7:-1 8:-0.555556 9:-1 10:-1
519 | 0 1:-0.853679 2:-0.555556 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
520 | 0 1:-0.851722 2:-0.777778 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
521 | 0 1:-0.850853 2:-1 3:-1 4:-0.555556 5:-0.777778 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
522 | 0 1:-0.843225 2:-0.111111 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
523 | 0 1:-0.842757 2:-0.111111 3:-1 4:-0.777778 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
524 | 0 1:-0.839935 2:-0.333333 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
525 | 0 1:-0.838392 2:0.111111 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
526 | 0 1:-0.83649 2:-0.111111 3:-1 4:-1 5:-1 6:-0.777778 7:-0.777778 8:-0.777778 9:-1 10:-1
527 | 0 1:-0.834485 2:-0.555556 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
528 | 0 1:-0.833998 2:-0.111111 3:-0.555556 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
529 | 0 1:-0.832542 2:-0.333333 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
530 | 0 1:-0.832191 2:-0.777778 3:-1 4:-0.555556 5:-0.777778 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
531 | 0 1:-0.83061 2:-0.111111 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
532 | 1 1:-0.826885 2:0.111111 3:1 4:1 5:1 6:-0.333333 7:1 8:0.333333 9:1 10:-1
533 | 0 1:-0.824176 2:-0.777778 3:-1 4:-1 5:-1 6:-1 7:-1 8:-1 9:-1 10:-1
534 | 0 1:-0.824176 2:-0.555556 3:-1 4:-1 5:-1 6:-1 7:-1 8:-1 9:-1 10:-1
535 | 1 1:-0.824111 2:0.333333 3:0.555556 4:-0.555556 5:0.333333 6:-0.333333 7:-0.111111 8:0.333333 9:0.555556 10:-0.777778
536 | 0 1:-0.817101 2:-0.555556 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
537 | 0 1:-0.816889 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
538 | 0 1:-0.815316 2:-0.555556 3:-0.777778 4:-0.777778 5:-0.777778 6:-0.777778 7:-1 8:-0.333333 9:-0.777778 10:-1
539 | 0 1:-0.814358 2:-0.333333 3:-0.333333 4:-0.777778 5:-1 6:-0.777778 7:-0.111111 8:-0.777778 9:-1 10:-0.777778
540 | 0 1:-0.813265 2:-0.555556 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
541 | 0 1:-0.813216 2:-0.333333 3:-0.555556 4:-1 5:-1 6:-0.777778 7:-1 8:-0.333333 9:0.555556 10:-1
542 | 0 1:-0.812129 2:-0.111111 3:-0.777778 4:-0.777778 5:-0.777778 6:-1 7:-1 8:-0.777778 9:-1 10:-1
543 | 0 1:-0.81212 2:-0.111111 3:-1 4:-1 5:-0.555556 6:-0.777778 7:-1 8:-1 9:-1 10:-1
544 | 0 1:-0.812116 2:-0.777778 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
545 | 0 1:-0.812029 2:-0.111111 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
546 | 0 1:-0.812028 2:-0.111111 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
547 | 0 1:-0.812028 2:-0.111111 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
548 | 0 1:-0.811073 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
549 | 0 1:-0.81101 2:-0.555556 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
550 | 0 1:-0.810614 2:-0.333333 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-0.777778 10:-1
551 | 1 1:-0.810613 2:-0.111111 3:0.333333 4:1 5:1 6:-0.111111 7:1 8:1 9:1 10:-1
552 | 0 1:-0.810361 2:-0.555556 3:-1 4:-0.777778 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
553 | 0 1:-0.810216 2:-0.333333 3:-1 4:-1 5:-1 6:-0.777778 7:-0.555556 8:-0.777778 9:-1 10:-1
554 | 1 1:-0.808872 2:0.555556 3:-0.333333 4:-0.333333 5:-1 6:0.111111 7:1 8:-0.777778 9:-0.111111 10:-0.777778
555 | 1 1:-0.808827 2:1 3:1 4:0.555556 5:1 6:0.111111 7:-0.111111 8:1 9:-0.555556 10:-1
556 | 1 1:-0.808715 2:0.555556 3:1 4:-0.333333 5:-0.333333 6:0.555556 7:1 8:0.555556 9:-0.777778 10:-1
557 | 1 1:-0.988118 2:0.333333 3:0.111111 4:1 5:-0.111111 6:-0.555556 7:1 8:0.777778 9:1 10:-0.777778
558 | 0 1:-0.981994 2:-0.555556 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
559 | 0 1:-0.961017 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
560 | 1 1:-0.952968 2:1 3:0.777778 4:0.333333 5:-0.555556 6:-0.333333 7:-0.777778 8:0.333333 9:0.333333 10:-1
561 | 0 1:-0.951949 2:-0.111111 3:-1 4:-0.777778 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
562 | 0 1:-0.906328 2:-0.111111 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
563 | 0 1:-0.90565 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
564 | 0 1:-0.905631 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
565 | 0 1:-0.88636 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
566 | 0 1:-0.879296 2:-0.111111 3:-1 4:-0.777778 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
567 | 1 1:-0.878279 2:-0.111111 3:0.333333 4:1 5:0.111111 6:-0.111111 7:1 8:0.333333 9:-0.111111 10:-1
568 | 1 1:-0.844028 2:0.111111 3:1 4:-0.111111 5:-0.111111 6:-0.333333 7:1 8:0.111111 9:1 10:-1
569 | 0 1:-0.842821 2:-0.555556 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
570 | 0 1:-0.827594 2:-0.111111 3:-1 4:-1 5:0.111111 6:-0.555556 7:-1 8:-1 9:-1 10:-1
571 | 0 1:-0.824353 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
572 | 1 1:-0.822095 2:0.555556 3:1 4:1 5:1 6:0.111111 7:1 8:1 9:1 10:-1
573 | 0 1:-0.821017 2:-0.111111 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-0.777778 10:-1
574 | 1 1:-0.820043 2:0.777778 3:0.555556 4:0.555556 5:0.777778 6:0.111111 7:-0.555556 8:-0.333333 9:-1 10:-1
575 | 0 1:-0.819462 2:-0.111111 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
576 | 1 1:-0.816162 2:-0.333333 3:1 4:0.555556 5:-0.111111 6:-0.333333 7:-1 8:1 9:-1 10:-1
577 | 1 1:-0.815973 2:-0.777778 3:-0.111111 4:0.333333 5:0.111111 6:-0.333333 7:1 8:0.333333 9:0.111111 10:-1
578 | 1 1:-0.815531 2:1 3:-0.555556 4:-0.333333 5:-0.111111 6:-0.555556 7:1 8:-0.333333 9:-1 10:-1
579 | 0 1:-0.813531 2:-0.111111 3:-1 4:-0.777778 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
580 | 1 1:-0.812989 2:-0.333333 3:0.555556 4:0.111111 5:-0.555556 6:-0.333333 7:1 8:0.333333 9:-1 10:-1
581 | 0 1:-0.812297 2:-0.111111 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
582 | 0 1:-0.811525 2:-0.333333 3:-1 4:-0.777778 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
583 | 0 1:-0.810367 2:-0.111111 3:-1 4:-0.555556 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
584 | 0 1:-0.810302 2:-0.555556 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
585 | 0 1:-0.810128 2:-0.111111 3:-0.777778 4:-0.333333 5:-1 6:-1 7:-1 8:-1 9:-1 10:-1
586 | 0 1:-0.809809 2:-0.555556 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
587 | 0 1:-0.808666 2:-1 3:-1 4:-1 5:-1 6:-1 7:-1 8:-0.777778 9:-1 10:-1
588 | 0 1:-0.807752 2:-0.333333 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
589 | 1 1:-0.807439 2:-0.111111 3:-0.333333 4:0.111111 5:0.555556 6:-0.333333 7:-1 8:0.555556 9:1 10:-1
590 | 1 1:-0.981337 2:-0.111111 3:-0.555556 4:-0.777778 5:0.555556 6:-0.111111 7:1 8:0.555556 9:-1 10:-0.777778
591 | 1 1:-0.956828 2:1 3:-0.111111 4:1 5:-0.555556 6:-0.111111 7:0.555556 8:0.333333 9:0.555556 10:-0.555556
592 | 0 1:-0.956729 2:-0.333333 3:-1 4:-1 5:-0.777778 6:-0.777778 7:-1 8:-1 9:-1 10:-1
593 | 0 1:-0.948013 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
594 | 1 1:-0.926188 2:-0.111111 3:1 4:1 5:1 6:1 7:1 8:1 9:-1 10:-1
595 | 0 1:-0.91442 2:-0.111111 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
596 | 1 1:-0.899518 2:1 3:-0.333333 4:-0.555556 5:1 6:-0.555556 7:1 8:0.333333 9:-1 10:-0.777778
597 | 1 1:-0.889455 2:-0.111111 3:1 4:1 5:1 6:-0.111111 7:-0.777778 8:0.555556 9:-0.111111 10:-1
598 | 1 1:-0.886572 2:0.555556 3:1 4:1 5:1 6:0.111111 7:1 8:1 9:1 10:1
599 | 0 1:-0.857627 2:-0.777778 3:-0.555556 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
600 | 0 1:-0.85539 2:-0.777778 3:-1 4:-1 5:-1 6:-1 7:-1 8:-0.777778 9:-1 10:-1
601 | 0 1:-0.853981 2:-0.333333 3:-1 4:-0.555556 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
602 | 0 1:-0.853801 2:-0.555556 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
603 | 0 1:-0.850853 2:-0.333333 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
604 | 0 1:-0.849083 2:-0.111111 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
605 | 0 1:-0.847593 2:-0.555556 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
606 | 0 1:-0.84572 2:0.111111 3:-0.555556 4:-0.555556 5:-0.555556 6:-0.555556 7:-0.777778 8:0.111111 9:-1 10:-1
607 | 0 1:-0.839112 2:0.333333 3:-1 4:-0.777778 5:-0.555556 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
608 | 0 1:-0.837775 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
609 | 0 1:-0.834122 2:-0.111111 3:-1 4:-1 5:-0.777778 6:-1 7:-1 8:-0.777778 9:-1 10:-1
610 | 0 1:-0.83269 2:-0.555556 3:-1 4:-0.555556 5:-1 6:-0.555556 7:-0.333333 8:-1 9:-1 10:-1
611 | 1 1:-0.831676 2:-0.333333 3:0.111111 4:0.111111 5:-0.111111 6:0.333333 7:0.111111 8:0.333333 9:0.333333 10:-0.555556
612 | 0 1:-0.831652 2:-0.777778 3:-1 4:-1 5:-1 6:-0.777778 7:-0.111111 8:-1 9:-1 10:-1
613 | 0 1:-0.828258 2:-0.777778 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
614 | 0 1:-0.827405 2:-0.333333 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
615 | 0 1:-0.826449 2:0.111111 3:-0.777778 4:-0.555556 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
616 | 0 1:-0.824892 2:-0.111111 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
617 | 0 1:-0.824449 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
618 | 1 1:-0.822182 2:0.555556 3:0.333333 4:-0.333333 5:-0.333333 6:-0.111111 7:-0.555556 8:-0.111111 9:1 10:-1
619 | 0 1:-0.821672 2:-0.555556 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
620 | 0 1:-0.82118 2:-0.555556 3:-1 4:-0.333333 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
621 | 1 1:-0.819942 2:1 3:1 4:0.333333 5:0.555556 6:0.333333 7:-1 8:1 9:1 10:-0.555556
622 | 0 1:-0.818918 2:-0.333333 3:-0.777778 4:-0.333333 5:-0.555556 6:-0.777778 7:-0.777778 8:-0.777778 9:-1 10:-1
623 | 0 1:-0.818622 2:-0.333333 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
624 | 0 1:-0.818622 2:-0.111111 3:-1 4:-1 5:-0.555556 6:-0.777778 7:-1 8:-1 9:-1 10:-1
625 | 0 1:-0.817437 2:-0.333333 3:-1 4:-1 5:-0.555556 6:-0.777778 7:-1 8:-1 9:-1 10:-1
626 | 0 1:-0.817006 2:-0.555556 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
627 | 0 1:-0.816768 2:-0.555556 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
628 | 0 1:-0.816139 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
629 | 0 1:-0.815365 2:-0.777778 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
630 | 0 1:-0.814784 2:-0.555556 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
631 | 0 1:-0.813657 2:-1 3:-0.777778 4:-0.777778 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
632 | 0 1:-0.813646 2:-1 3:-1 4:-1 5:-0.555556 6:-0.777778 7:-1 8:-1 9:-1 10:-1
633 | 1 1:-0.812944 2:-0.111111 3:1 4:1 5:1 6:1 7:-0.777778 8:1 9:1 10:1
634 | 0 1:-0.812516 2:-0.555556 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
635 | 0 1:-0.812376 2:-0.555556 3:-1 4:-1 5:-0.777778 6:-0.555556 7:-0.333333 8:-1 9:-1 10:-1
636 | 0 1:-0.811798 2:-1 3:-0.777778 4:-1 5:-0.555556 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
637 | 0 1:-0.811635 2:-0.111111 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-0.777778 10:-1
638 | 0 1:-0.811619 2:-0.333333 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
639 | 0 1:-0.811547 2:-0.555556 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
640 | 0 1:-0.811288 2:-0.555556 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
641 | 0 1:-0.81077 2:-0.111111 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
642 | 0 1:-0.810245 2:-0.111111 3:-0.333333 4:-0.111111 5:-1 6:0.555556 7:-1 8:-0.555556 9:0.111111 10:-1
643 | 1 1:-0.810224 2:0.333333 3:0.555556 4:0.555556 5:0.333333 6:-0.555556 7:1 8:0.333333 9:-0.777778 10:-0.555556
644 | 0 1:-0.810127 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
645 | 0 1:-0.809363 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
646 | 0 1:-0.809363 2:-0.333333 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
647 | 0 1:1 2:-1 3:-1 4:-0.555556 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
648 | 0 1:-0.808516 2:-1 3:-1 4:-0.555556 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
649 | 0 1:-0.808495 2:-0.555556 3:-1 4:-1 5:-0.555556 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
650 | 0 1:-0.808173 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
651 | 0 1:-0.808144 2:-0.111111 3:-0.777778 4:-0.777778 5:-0.777778 6:-0.777778 7:-1 8:-1 9:-1 10:-0.777778
652 | 0 1:-0.808009 2:-0.555556 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
653 | 1 1:-0.807789 2:-0.111111 3:0.333333 4:-0.333333 5:-1 6:0.111111 7:-1 8:0.333333 9:1 10:-0.555556
654 | 1 1:-0.807774 2:-0.111111 3:1 4:1 5:0.555556 6:-0.111111 7:-0.111111 8:0.333333 9:1 10:-1
655 | 1 1:-0.807412 2:-0.555556 3:1 4:0.333333 5:0.555556 6:-0.111111 7:0.555556 8:0.333333 9:-0.333333 10:-1
656 | 0 1:-0.807375 2:-0.555556 3:-0.777778 4:-1 5:-0.777778 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
657 | 0 1:-0.807114 2:-0.777778 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-1 10:-1
658 | 0 1:-0.807114 2:-0.111111 3:-0.555556 4:-0.777778 5:-1 6:-0.555556 7:-1 8:-1 9:-1 10:-1
659 | 0 1:-0.807051 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
660 | 0 1:-0.805586 2:-0.333333 3:-1 4:-0.333333 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
661 | 0 1:-0.805548 2:-1 3:-1 4:-0.777778 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-1
662 | 0 1:-0.805109 2:-0.111111 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
663 | 0 1:-0.805108 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
664 | 0 1:-0.805017 2:-0.777778 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
665 | 1 1:-0.804877 2:1 3:1 4:1 5:1 6:-0.111111 7:1 8:1 9:1 10:0.333333
666 | 1 1:-0.804697 2:-0.111111 3:1 4:1 5:1 6:-0.333333 7:1 8:-0.111111 9:0.111111 10:-0.555556
667 | 0 1:-0.804563 2:-0.111111 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.555556 9:-0.777778 10:-1
668 | 0 1:-0.939731 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
669 | 0 1:-0.939731 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
670 | 0 1:-0.929627 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
671 | 0 1:-0.929306 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
672 | 0 1:-0.924879 2:-0.555556 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-0.555556 10:-1
673 | 0 1:-0.919383 2:-0.333333 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
674 | 0 1:-0.911706 2:-1 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:0.555556
675 | 0 1:-0.911706 2:-1 3:-1 4:-1 5:-0.555556 6:-0.777778 7:-1 8:-1 9:-1 10:-1
676 | 1 1:-0.90565 2:-0.111111 3:1 4:1 5:-0.111111 6:-0.333333 7:-0.111111 8:-0.333333 9:-0.333333 10:-1
677 | 0 1:-0.902821 2:-0.555556 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
678 | 0 1:-0.895473 2:-0.555556 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-0.777778 9:-1 10:-0.777778
679 | 0 1:-0.89346 2:-0.555556 3:-1 4:-1 5:-1 6:-0.555556 7:-0.777778 8:-1 9:-1 10:-1
680 | 0 1:-0.883744 2:-0.777778 3:-1 4:-1 5:-1 6:-0.777778 7:-1 8:-1 9:-1 10:-1
681 | 1 1:-0.876716 2:-0.111111 3:1 4:1 5:-0.555556 6:0.333333 7:-0.555556 8:0.555556 9:1 10:-0.777778
682 | 1 1:-0.875424 2:-0.333333 3:0.555556 4:0.111111 5:-0.333333 6:-0.555556 7:-0.333333 8:1 9:0.111111 10:-1
683 | 1 1:-0.875424 2:-0.333333 3:0.555556 4:0.555556 5:-0.111111 6:-0.333333 7:-0.111111 8:1 9:-0.333333 10:-1
684 |
--------------------------------------------------------------------------------
/cp/src/test/scala/se/uu/it/cp/LibLinTest.scala:
--------------------------------------------------------------------------------
1 | package se.uu.it.cp
2 |
3 | import scala.io.Source
4 | import scala.util.Random
5 |
6 | import org.junit.runner.RunWith
7 | import org.scalatest.FunSuite
8 | import org.scalatest.junit.JUnitRunner
9 |
10 | import de.bwaldvogel.liblinear.Feature
11 | import de.bwaldvogel.liblinear.FeatureNode
12 | import de.bwaldvogel.liblinear.Linear
13 | import de.bwaldvogel.liblinear.Parameter
14 | import de.bwaldvogel.liblinear.Problem
15 | import de.bwaldvogel.liblinear.SolverType
16 |
17 | @RunWith(classOf[JUnitRunner])
18 | class LibLinTest extends FunSuite {
19 |
20 | test("Train an inductive classifier with LIBLINEAR") {
21 |
22 | // Define a LIBLINEAR data point
23 | case class LibLinPoint(features: Array[Feature], label: Double)
24 |
25 | // Define a LIBLINEAR underlying algorithm
26 | class LibLinAlg(val properTrainingSet: Seq[LibLinPoint])
27 | extends UnderlyingAlgorithm[LibLinPoint] {
28 |
29 | // First describe how to access LIBLINEAR data point structure
30 | override def makeDataPoint(features: Seq[Double], label: Double) = {
31 | val libLinFeat = features.zipWithIndex.map {
32 | case (f, i) =>
33 | new FeatureNode(i + 1, f).asInstanceOf[Feature]
34 | }
35 | LibLinPoint(libLinFeat.toArray, label)
36 | }
37 | override def getDataPointFeatures(p: LibLinPoint) = p.features.map(_.getValue)
38 | override def getDataPointLabel(p: LibLinPoint) = p.label
39 |
40 | // Train a Logistic Regression model
41 | val lrModel = {
42 | val problem = new Problem()
43 | problem.l = properTrainingSet.length
44 | problem.n = properTrainingSet(0).features.length
45 | problem.x = properTrainingSet.map(_.features).toArray
46 | problem.y = properTrainingSet.map(_.label).toArray
47 | val solver = SolverType.L2R_LR
48 | val parameter = new Parameter(solver, 1.0, 0.01)
49 | Linear.train(problem, parameter)
50 | }
51 |
52 | // Define nonconformity measure as probability of wrong prediction
53 | override def nonConformityMeasure(p: LibLinPoint) = {
54 | val estimates = Array.fill(2)(0.0)
55 | Linear.predictProbability(lrModel, p.features, estimates)
56 | estimates((p.label - 1).abs.toInt)
57 | }
58 |
59 | }
60 |
61 | // Load and parse dataset
62 | val dataPath = getClass.getResource("breast-cancer.data").getPath
63 | val dataset = Source.fromFile(dataPath).getLines
64 | .map { line =>
65 | val split = line.split(" ")
66 | val label = split(0).toDouble
67 | val features = split.drop(1).map { featureString =>
68 | val split = featureString.split(":")
69 | new FeatureNode(split(0).toInt,split(1).toDouble)
70 | .asInstanceOf[Feature]
71 | }
72 | LibLinPoint(features,label)
73 | }.toSeq
74 |
75 | // Split data
76 | Random.setSeed(11L)
77 | val (training,test) = Random.shuffle(dataset).splitAt(450)
78 | val (properTraining, calibrationSet) = Random.shuffle(training).splitAt(400)
79 |
80 | // Train an inductive conformal classifier
81 | val cp = ICP.trainClassifier(
82 | new LibLinAlg(properTraining), nOfClasses = 2, calibrationSet)
83 |
84 | // Make some predictions, and compute error fraction
85 | val significance = 0.05
86 | val nOfCorrect = test.count { p =>
87 | val pSet = cp.predict(p.features.map(_.getValue), significance)
88 | !pSet.contains(p.label)
89 | }
90 | val errorFract = nOfCorrect.toDouble / test.length
91 |
92 | // Error fraction should be at most significance
93 | assert(errorFract <= significance)
94 |
95 | }
96 |
97 | }
--------------------------------------------------------------------------------
/cp/src/test/scala/se/uu/it/cp/SparkTest.scala:
--------------------------------------------------------------------------------
1 | package se.uu.it.cp
2 |
3 | import org.apache.spark.SparkConf
4 | import org.apache.spark.SparkContext
5 | import org.apache.spark.mllib.classification.SVMWithSGD
6 | import org.apache.spark.mllib.linalg.Vectors
7 | import org.apache.spark.mllib.regression.LabeledPoint
8 | import org.apache.spark.mllib.util.MLUtils
9 | import org.apache.spark.rdd.RDD
10 | import org.junit.runner.RunWith
11 | import org.scalatest.FunSuite
12 | import org.scalatest.junit.JUnitRunner
13 |
14 | // Define a MLlib SVM underlying algorithm
15 | class MLlibSVM(val properTrainingSet: RDD[LabeledPoint])
16 | extends UnderlyingAlgorithm[LabeledPoint] {
17 |
18 | // First describe how to access Spark's LabeledPoint structure
19 | override def makeDataPoint(features: Seq[Double], label: Double) =
20 | new LabeledPoint(label, Vectors.dense(features.toArray))
21 | override def getDataPointFeatures(lp: LabeledPoint) = lp.features.toArray
22 | override def getDataPointLabel(lp: LabeledPoint) = lp.label
23 |
24 | // Train a SVM model
25 | val svmModel = {
26 | // Train with SVMWithSGD
27 | val svmModel = SVMWithSGD.train(properTrainingSet, numIterations = 100)
28 | svmModel.clearThreshold // set to return distance from hyperplane
29 | svmModel
30 | }
31 |
32 | // Define nonconformity measure as signed distance from the dividing hyperplane
33 | override def nonConformityMeasure(lp: LabeledPoint) = {
34 | if (lp.label == 1.0) {
35 | -svmModel.predict(lp.features)
36 | } else {
37 | svmModel.predict(lp.features)
38 | }
39 | }
40 |
41 | }
42 |
43 | @RunWith(classOf[JUnitRunner])
44 | class SparkTest extends FunSuite {
45 |
46 | test("Train an inductive classifier with Apache Spark SVM") {
47 |
48 | // Start SparkContext
49 | val conf = new SparkConf().setMaster("local[*]").setAppName("test")
50 | val sc = new SparkContext(conf)
51 |
52 | // Load a dataset
53 | val dataPath = getClass.getResource("breast-cancer.data").getPath
54 | val data = MLUtils.loadLibSVMFile(sc, dataPath)
55 |
56 | // Split data
57 | // Warning: calibration fraction should be lower for big datasets
58 | val Array(training, test) = data.randomSplit(Array(0.7, 0.3), seed = 11L)
59 | val Array(properTraining, calibrationSet) =
60 | training.randomSplit(Array(0.7, 0.3), seed = 11L)
61 |
62 | // Train an inductive conformal classifier
63 | val cp = ICP.trainClassifier(
64 | new MLlibSVM(properTraining.cache()), nOfClasses = 2, calibrationSet.collect)
65 |
66 | // Make some predictions, and compute error fraction
67 | val significance = 0.05
68 | val nOfCorrect = test.filter { lp =>
69 | val pSet = cp.predict(lp.features.toArray, significance)
70 | !pSet.contains(lp.label)
71 | }.count
72 | val errorFract = nOfCorrect.toDouble / test.count
73 |
74 | // Error fraction should be at most significance
75 | assert(errorFract <= significance)
76 |
77 | // Stop SparkContext
78 | sc.stop
79 |
80 | }
81 |
82 | }
83 |
--------------------------------------------------------------------------------
/cp/travis-config.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | ossrh
6 | mcapuccini
7 | ${env.SONATYPE_PASSWORD}
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/gpg-keys/.gitignore:
--------------------------------------------------------------------------------
1 | secret.asc
2 |
3 |
--------------------------------------------------------------------------------
/gpg-keys/public.asc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcapuccini/scala-cp/31f95a767a40ab48a02488df95cceea4fd967a37/gpg-keys/public.asc
--------------------------------------------------------------------------------
/gpg-keys/secret.asc.enc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcapuccini/scala-cp/31f95a767a40ab48a02488df95cceea4fd967a37/gpg-keys/secret.asc.enc
--------------------------------------------------------------------------------