首页 文章 精选 留言 我的

精选列表

搜索[软件构建],共10000篇文章
优秀的个人博客,低调大师

如何使用JavaScript构建机器学习模型

目前,机器学习领域建模的主要语言是 Python 和 R,前不久腾讯推出的机器学习框架 Angel 则支持 Java 和 Scala。本文作者 Abhishek Soni 则用行动告诉我们,开发机器学习模型,JavaScript 也可以。 JavaScript?我不是应该使用 Python 吗?甚至 Scikit-learn 在 JavaScript 上都不工作。 这是可能的,实际上,连我自己都惊讶于开发者对此忽视的态度。就 Scikit-learn 而言,Javascript 的开发者事实上已经推出了适用的库,它会在本文中有所提及。那么,让我们看看 Javascript 在机器学习上能够做什么吧。 根据人工智能先驱 Arthur Samuel 的说法,机器学习为计算机提供了无需明确编程的学习能力。换句话说,它使得计算机能够自我学习并执行正确的指令,无需人类提供全部指导。 谷歌已经把自己移动优先的策略转换到人工智能优先很久了。 为什么 JavaScript 在机器学习界未被提及过? · 慢(真的假的?) · 矩阵操作很困难(这里有库,比如 math.js) · 仅用于 Web 开发(然而这里还有 Node.js) · 机器学习库通常是在 Python 上的(还好,JS 的开发者人数也不少) 在 JavaScript 中有一些可供使用的预制库,其中包含一些机器学习算法,如线性回归、SVM、朴素贝叶斯等等,以下是其中的一部分。 · brain.js(神经网络) · Synaptic(神经网络) · Natural(自然语言处理) · ConvNetJS(卷积神经网络) · mljs(一组具有多种功能的子库) 首先,我们将使用 mljs 回归库来进行一些线性回归操作。 参考代码:https://github.com/abhisheksoni27/machine-learning-with-js 1. 安装库 $ npm install ml-regression csvtojson $ yarn add ml-regression csvtojson ml-regression 正如其名,负责机器学习的线性回归。 csvtojson 是一个用于 node.js 的快速 CSV 解析器,它允许加载 CSV 数据文件并将其转换为 JSON。 2. 初始化并加载数据 下载数据文件(.csv),并将其加入你的项目。 链接: http://www-bcf.usc.edu/~gareth/ISL/Advertising.csv 如果你已经初始化了一个空的 npm 项目,打开 index.js,输入以下代码。 我把文件放在了项目的根目录下,如果你想放在其他地方,请记得更新 csvFilePath。 现在我们使用 csvtojson 的 fromFile 方法加载数据文件: 3. 打包数据,准备执行 JSON 对象被存储在 csvData 中,我们还需要输入数据点数组和输出数据点。我们通过一个填充 X 和 Y 变量的 dressData 函数来运行数据。 4. 训练模型开始预测 数据已经打包完毕,是时候训练我们的模型了。 为此,我们需要写一个 performRegression 函数: performRegression 函数有一个方法 toString,它为浮点输出获取一个名为 precision 的参数。predictOutput 函数能让你输入数值,然后将模型的输出传到控制台。它是这样的(注意,我使用的是 Node.js 的 readline 工具): 以下是为了增加阅读用户的代码 5. 大功告成! 到你的终端上运行 node index.js,得到的输出会是这样: 恭喜!你刚刚在 JavaScript 中训练了第一个线性回归模型。(PS. 你注意到速度了吗?) 文章来源:机器之心 原文地址 欢迎关注个人公众号,查看更多好文。

优秀的个人博客,低调大师

使用StreamingPro 快速构建Spark SQL on CarbonData

前言 CarbonData已经发布了1.0版本,变更还是很快的,这个版本已经移除了kettle了,使得部署和使用 变得很简单,而且支持1.6+ ,2.0+等多个Spark版本。 StreamingPro可以使得你很简单通过一个命令就能体验Carbondata,并且支持Http/JDBC的访问形态。 下载Spark发行版 比如我下载后的版本是这个: spark-1.6.3-bin-hadoop2.6。 下载StreamingPro 地址在这: https://pan.baidu.com/s/1eRO5Wga ,你会得到一个比较大的Jar包。 同时你需要到maven下载一个 carbondata-spark-1.0.0-incubating.jar ,这个因为一些特殊原因才会用到。 你需要一个数据库 因为我们用到了Hive 的mysql,所以你需要准备一个可以连接的数据库。只要能连接就行。如果没有,比如你是mac的话,用 brew install mysql即可。然后brew services start mysql 创建一个数据库: create database hive CHARACTER SET latin1 //如果数据库包字符异常啥的,启动完streamingpro后到数据库做如下更改: alter table PARTITIONS convert to character set latin1; alter table PARTITION_KEYS convert to character set latin1; 写一个hive-site.xml文件 <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://127.0.0.1:3306/hive?createDatabaseIfNoExist=true</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>你的mysql账号</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>你的mysql密码</value> </property> <property> <name>hive.metastore.warehouse.dir</name> <value>file:///tmp/user/hive/warehouse</value> </property> <property> <name>hive.exec.scratchdir</name> <value>file:///tmp/hive/scratchdir</value> </property> <property> <name>hive.metastore.uris</name> <value></value> </property> <property> <name>datanucleus.autoCreateSchema</name> <value>true</value> </property> </configuration> 可以启动了 //streamingpro jar包所处的目录, //里面新建一个query.json文件,里面放一个大括号就行 SHome=/Users/allwefantasy/streamingpro ./bin/spark-submit --class streaming.core.StreamingApp \ --master local[2] \ --name sql-interactive \ --jars /Users/allwefantasy/.m2/repository/org/apache/carbondata/carbondata-spark/1.0.0-incubating/carbondata-spark-1.0.0-incubating.jar \ --files $SHome/hive-site.xml \ --conf "spark.sql.hive.thriftServer.singleSession=true" \ $SHome/streamingpro-0.4.8-SNAPSHOT-online-1.6.1.jar \ -streaming.name sql-interactive \ -streaming.job.file.path file://$SHome/query.json \ -streaming.platform spark \ -streaming.rest true \ -streaming.driver.port 9004 \ -streaming.spark.service true \ -streaming.thrift true \ -streaming.enableCarbonDataSupport true \ -streaming.enableHiveSupport true \ -streaming.carbondata.store /tmp/carbondata/store \ -streaming.carbondata.meta /tmp/carbondata/meta参数比较多。大家不用管他。 这样http端口是9004, jdbc端口是 10000。 我们可以通过http创建一张表 , city string, age Int) STORED BY 'carbondata' curl --request POST \ --url http://127.0.0.1:9004/run/sql \ --header 'cache-control: no-cache' \ --header 'content-type: application/x-www-form-urlencoded' \ --header 'postman-token: 731441ac-c398-9a1b-2f06-8725ddbe84cd' \ --data 'sql=CREATE%20TABLE%20IF%20NOT%20EXISTS%20test_table4(id%20string%2C%20name%20string%2C%20city%20string%2C%20age%20Int)%20STORED%20BY%20'\''carbondata'\'''写入数据前,我们建立一个sample.csv的文件, id,name,city,age 1,david,shenzhen,31 2,eason,shenzhen,27 3,jarry,wuhan,35然后将这个文件导入: //实际SQL:LOAD DATA LOCAL INPATH '/Users/allwefantasy/streamingpro/sample.csv' INTO TABLE test_table4 curl --request POST \ --url http://127.0.0.1:9004/run/sql \ --header 'cache-control: no-cache' \ --header 'content-type: application/x-www-form-urlencoded' \ --header 'postman-token: 5eb19ab4-653c-d05f-29ab-6003d7e83755' \ --data 'sql=LOAD%20DATA%20LOCAL%20INPATH%20%20'\''%2FUsers%2Fallwefantasy%2Fstreamingpro%2Fsample.csv'\''%20%20INTO%20TABLE%20test_table4'这个使用我们可以用http查询: //sql: SELECT * FROM test_table4 curl --request POST \ --url http://127.0.0.1:9004/run/sql \ --header 'cache-control: no-cache' \ --header 'content-type: application/x-www-form-urlencoded' \ --header 'postman-token: d99349ae-b226-8a4e-4d65-d92b1771c111' \ --data 'sql=SELECT%20*%20FROM%20test_table4'你也可以写一个jdbc程序: object ScalaJdbcConnectSelect { def main(args: Array[String]) { // connect to the database named "mysql" on the localhost val driver = "com.mysql.jdbc.Driver" val url = "jdbc:hive2://localhost:10000/default" // there's probably a better way to do this var connection:Connection = null try { // make the connection Class.forName(driver) connection = DriverManager.getConnection(url) // create the statement, and run the select query val statement = connection.createStatement() val resultSet = statement.executeQuery("SELECT * FROM test_table4 ") while ( resultSet.next() ) { println(" city = "+ resultSet.getString("city") ) } } catch { case e => e.printStackTrace } connection.close() } }完成。

优秀的个人博客,低调大师

使用Spark SQL构建批处理程序

前言 今天介绍利用 StreamingPro 完成批处理的流程。 准备工作 下载StreamingPro README中有下载地址 我们假设您将文件放在了/tmp目录下。 填写配置文件 实例一,我要把数据从ES导出到HDFS,并且形成csv格式。 gist 启动StreamingPro Local模式: cd $SPARK_HOME ./bin/spark-submit --class streaming.core.StreamingApp \ --master local[2] \ --name test \ /tmp/streamingpro-0.2.1-SNAPSHOT-dev-1.6.1.jar \ -streaming.name test \ -streaming.platform spark \ -streaming.job.file.path file:///tmp/test.json 访问 http://127.0.0.1:4040 可进入Spark UI 集群模式: cd $SPARK_HOME ./bin/spark-submit --class streaming.core.StreamingApp \ --master yarn-cluster \ --name test \ /tmp/streamingpro-0.2.1-SNAPSHOT-dev-1.6.1.jar \ -streaming.name test \ -streaming.platform spark \ -streaming.job.file.path hdfs://cluster/tmp/test.json 这里需要注意的是,配置文件并蓄放到HDFS上,并且需要协商hdfs前缀。这是一个标准的Spark 批处理程序

资源下载

更多资源
Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册