零基础学习Mahout
Mahout
Mahout 是 Apache Software Foundation(ASF) 旗下的一个开源项目,提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。Mahout包含许多实现,包括聚类、分类、推荐过滤、频繁子项挖掘。此外,通过使用 Apache Hadoop 库,Mahout 可以有效地扩展到云中。
安装Maven
Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。
Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且公司项目采用 Maven 的比例在持续增长。
Maven这个单词来自于意第绪语(犹太语),意为知识的积累,最初在Jakata Turbine项目中用来简化构建过程。当时有一些项目(有各自Ant build文件),仅有细微的差别,而JAR文件都由CVS来维护。于是希望有一种标准化的方式构建项目,一个清晰的方式定义项目的组成,一个容易的方式发布项目的信息,以及一种简单的方式在多个项目中共享JARs。
使用Maven构建Mahout项目
运行 IntelliJ IDEA
,通过菜单 File
> New
> Project
新建项目,选择 Maven
勾上 Create from archetype
选择 maven-archetype-quickstart
再选择 Next
输入 GroupId
和 ArtifactId
,可以根据自己喜好随便命名
剩下的全部按键盘 Enter
工程创建完毕后,点击右下角的 Enable Auto-Import
开启自动导入
下载完毕后,打开 pom.xml
替换 <properties>
和 <dependencies>
内容
1 |
|
修改 App.java
1 | package com.aliatry.mahout; |
控制台输出
1 | "C:\Program Files\Java\jdk1.8.0_144\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2019.1\lib\idea_rt.jar=61415:C:\Program Files\JetBrains\IntelliJ IDEA 2019.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_144\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\rt.jar;D:\IdeaProjects\practice\target\classes;C:\Users\Simon\.m2\repository\org\apache\mahout\mahout-core\0.9\mahout-core-0.9.jar;C:\Users\Simon\.m2\repository\org\codehaus\jackson\jackson-core-asl\1.9.12\jackson-core-asl-1.9.12.jar;C:\Users\Simon\.m2\repository\org\codehaus\jackson\jackson-mapper-asl\1.9.12\jackson-mapper-asl-1.9.12.jar;C:\Users\Simon\.m2\repository\org\apache\commons\commons-lang3\3.1\commons-lang3-3.1.jar;C:\Users\Simon\.m2\repository\com\thoughtworks\xstream\xstream\1.4.4\xstream-1.4.4.jar;C:\Users\Simon\.m2\repository\xmlpull\xmlpull\1.1.3.1\xmlpull-1.1.3.1.jar;C:\Users\Simon\.m2\repository\xpp3\xpp3_min\1.1.4c\xpp3_min-1.1.4c.jar;C:\Users\Simon\.m2\repository\org\apache\lucene\lucene-core\4.6.1\lucene-core-4.6.1.jar;C:\Users\Simon\.m2\repository\org\apache\lucene\lucene-analyzers-common\4.6.1\lucene-analyzers-common-4.6.1.jar;C:\Users\Simon\.m2\repository\org\apache\mahout\commons\commons-cli\2.0-mahout\commons-cli-2.0-mahout.jar;C:\Users\Simon\.m2\repository\org\apache\commons\commons-math3\3.2\commons-math3-3.2.jar;C:\Users\Simon\.m2\repository\org\apache\solr\solr-commons-csv\3.5.0\solr-commons-csv-3.5.0.jar;C:\Users\Simon\.m2\repository\org\apache\hadoop\hadoop-core\1.2.1\hadoop-core-1.2.1.jar;C:\Users\Simon\.m2\repository\commons-cli\commons-cli\1.2\commons-cli-1.2.jar;C:\Users\Simon\.m2\repository\com\sun\jersey\jersey-core\1.8\jersey-core-1.8.jar;C:\Users\Simon\.m2\repository\com\sun\jersey\jersey-json\1.8\jersey-json-1.8.jar;C:\Users\Simon\.m2\repository\org\codehaus\jettison\jettison\1.1\jettison-1.1.jar;C:\Users\Simon\.m2\repository\stax\stax-api\1.0.1\stax-api-1.0.1.jar;C:\Users\Simon\.m2\repository\com\sun\xml\bind\jaxb-impl\2.2.3-1\jaxb-impl-2.2.3-1.jar;C:\Users\Simon\.m2\repository\javax\xml\bind\jaxb-api\2.2.2\jaxb-api-2.2.2.jar;C:\Users\Simon\.m2\repository\javax\xml\stream\stax-api\1.0-2\stax-api-1.0-2.jar;C:\Users\Simon\.m2\repository\javax\activation\activation\1.1\activation-1.1.jar;C:\Users\Simon\.m2\repository\org\codehaus\jackson\jackson-jaxrs\1.7.1\jackson-jaxrs-1.7.1.jar;C:\Users\Simon\.m2\repository\org\codehaus\jackson\jackson-xc\1.7.1\jackson-xc-1.7.1.jar;C:\Users\Simon\.m2\repository\com\sun\jersey\jersey-server\1.8\jersey-server-1.8.jar;C:\Users\Simon\.m2\repository\asm\asm\3.1\asm-3.1.jar;C:\Users\Simon\.m2\repository\commons-httpclient\commons-httpclient\3.0.1\commons-httpclient-3.0.1.jar;C:\Users\Simon\.m2\repository\commons-logging\commons-logging\1.0.3\commons-logging-1.0.3.jar;C:\Users\Simon\.m2\repository\commons-codec\commons-codec\1.4\commons-codec-1.4.jar;C:\Users\Simon\.m2\repository\org\apache\commons\commons-math\2.1\commons-math-2.1.jar;C:\Users\Simon\.m2\repository\commons-configuration\commons-configuration\1.6\commons-configuration-1.6.jar;C:\Users\Simon\.m2\repository\commons-collections\commons-collections\3.2.1\commons-collections-3.2.1.jar;C:\Users\Simon\.m2\repository\commons-lang\commons-lang\2.4\commons-lang-2.4.jar;C:\Users\Simon\.m2\repository\commons-digester\commons-digester\1.8\commons-digester-1.8.jar;C:\Users\Simon\.m2\repository\commons-beanutils\commons-beanutils\1.7.0\commons-beanutils-1.7.0.jar;C:\Users\Simon\.m2\repository\commons-beanutils\commons-beanutils-core\1.8.0\commons-beanutils-core-1.8.0.jar;C:\Users\Simon\.m2\repository\commons-net\commons-net\1.4.1\commons-net-1.4.1.jar;C:\Users\Simon\.m2\repository\commons-el\commons-el\1.0\commons-el-1.0.jar;C:\Users\Simon\.m2\repository\org\apache\mahout\mahout-integration\0.9\mahout-integration-0.9.jar;C:\Users\Simon\.m2\repository\commons-io\commons-io\2.4\commons-io-2.4.jar;C:\Users\Simon\.m2\repository\org\apache\mahout\mahout-math\0.9\mahout-math-0.9.jar;C:\Users\Simon\.m2\repository\com\google\guava\guava\16.0\guava-16.0.jar;C:\Users\Simon\.m2\repository\org\apache\mahout\mahout-examples\0.9\mahout-examples-0.9.jar;C:\Users\Simon\.m2\repository\org\apache\lucene\lucene-benchmark\4.6.1\lucene-benchmark-4.6.1.jar;C:\Users\Simon\.m2\repository\org\apache\lucene\lucene-highlighter\4.6.1\lucene-highlighter-4.6.1.jar;C:\Users\Simon\.m2\repository\org\apache\lucene\lucene-queries\4.6.1\lucene-queries-4.6.1.jar;C:\Users\Simon\.m2\repository\org\apache\lucene\lucene-memory\4.6.1\lucene-memory-4.6.1.jar;C:\Users\Simon\.m2\repository\org\apache\lucene\lucene-queryparser\4.6.1\lucene-queryparser-4.6.1.jar;C:\Users\Simon\.m2\repository\org\apache\lucene\lucene-sandbox\4.6.1\lucene-sandbox-4.6.1.jar;C:\Users\Simon\.m2\repository\jakarta-regexp\jakarta-regexp\1.4\jakarta-regexp-1.4.jar;C:\Users\Simon\.m2\repository\org\apache\lucene\lucene-facet\4.6.1\lucene-facet-4.6.1.jar;C:\Users\Simon\.m2\repository\org\apache\lucene\lucene-spatial\4.6.1\lucene-spatial-4.6.1.jar;C:\Users\Simon\.m2\repository\com\spatial4j\spatial4j\0.3\spatial4j-0.3.jar;C:\Users\Simon\.m2\repository\com\ibm\icu\icu4j\49.1\icu4j-49.1.jar;C:\Users\Simon\.m2\repository\net\sourceforge\nekohtml\nekohtml\1.9.17\nekohtml-1.9.17.jar;C:\Users\Simon\.m2\repository\org\apache\commons\commons-compress\1.4.1\commons-compress-1.4.1.jar;C:\Users\Simon\.m2\repository\xerces\xercesImpl\2.9.1\xercesImpl-2.9.1.jar;C:\Users\Simon\.m2\repository\org\slf4j\slf4j-log4j12\1.7.25\slf4j-log4j12-1.7.25.jar;C:\Users\Simon\.m2\repository\log4j\log4j\1.2.17\log4j-1.2.17.jar;C:\Users\Simon\.m2\repository\org\slf4j\slf4j-api\1.7.25\slf4j-api-1.7.25.jar" com.aliatry.mahout.App |