├── .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 | [![Build Status](https://travis-ci.org/mcapuccini/scala-cp.svg?branch=master)](https://travis-ci.org/mcapuccini/scala-cp) 4 | [![Codacy Badge](https://api.codacy.com/project/badge/Grade/810ed0d38e6f47079eab3426f6bf6f95)](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 --------------------------------------------------------------------------------