Kā instalēt un izmantot Apache PredictionIO mašīnmācībai operētājsistēmā CentOS 7

Tradicionālās pieejas datu analīzei nav iespējams izmantot, ja datu kopas sasniedz noteiktu lielumu. Mūsdienīga alternatīva milzīgo datu kopu analīzei ir mašīnmācīšanās metožu izmantošana. Mašīnmācība spēj radīt precīzus rezultātus, izmantojot ātru un efektīvu algoritmu.

Apache PredictionIO ir atvērtā koda mašīnmācīšanās serveris, ko izmanto, lai izveidotu prognozēšanas dzinējus jebkuram mašīnmācīšanās uzdevumam. Tas saīsina mašīnmācīšanās lietojumprogrammas laiku no laboratorijas līdz ražošanai, izmantojot pielāgojamas programmas veidnes, kuras var ātri izveidot un izvietot. Tas nodrošina datu vākšanas un apkalpošanas komponentus, kā arī pamatā esošo tehnoloģiju kopsavilkumus, lai atklātu API, kas ļauj izstrādātājiem koncentrēties uz transformācijas komponentiem. Kad PredictionIO dzinēja serveris ir izvietots kā tīmekļa pakalpojums, tas var reaģēt uz dinamiskiem vaicājumiem reāllaikā.

Apache PredictionIO sastāv no dažādiem komponentiem.

  • PredictionIO platforma : atvērtā pirmkoda mašīnmācīšanās steks, kas izveidots, izmantojot jaunākās atvērtā koda lietojumprogrammas, piemēram, Apache Spark, Apache Hadoop, Apache HBase un Elasticsearch.
  • Notikumu serveris : tas nepārtraukti apkopo datus no jūsu tīmekļa servera vai mobilās lietojumprogrammas servera reāllaika režīmā vai pakešu režīmā. Savāktos datus var izmantot, lai apmācītu dzinēju vai nodrošinātu vienotu skatījumu datu analīzei. Notikumu serveris datu glabāšanai izmanto Apache HBase.
  • Dzinēja serveris : dzinēja serveris ir atbildīgs par faktisko prognozi. Tas nolasa apmācības datus no datu krātuves un izmanto vienu vai vairākus mašīnmācīšanās algoritmus, lai izveidotu paredzamos modeļus. Dzinējs, kad tas ir izvietots kā tīmekļa pakalpojums, atbild uz tīmekļa vai mobilās lietotnes veiktajiem vaicājumiem, izmantojot REST API vai SDK.
  • Veidņu galerija : šī galerija piedāvā dažāda veida iepriekš izveidotas dzinēja veidnes. Varat izvēlēties veidni, kas ir līdzīga jūsu lietošanas gadījumam, un mainīt to atbilstoši savām prasībām.

Priekšnoteikumi

Šajā apmācībā mēs izmantosim 192.0.2.1kā servera publisko IP adresi. Aizstājiet visus gadījumus 192.0.2.1ar savu Vultr publisko IP adresi.

Atjauniniet savu bāzes sistēmu, izmantojot rokasgrāmatu Kā atjaunināt CentOS 7 . Kad sistēma ir atjaunināta, turpiniet instalēt Java.

Instalējiet Java

Daudzām PredictionIO sastāvdaļām ir nepieciešama JDK jeb Java izstrādes komplekta 8. versija. Tā atbalsta gan OpenJDK, gan Oracle Java. Šajā apmācībā mēs instalēsim OpenJDK versiju 8.

OpenJDK var viegli instalēt, jo pakotne ir pieejama noklusējuma YUM repozitorijā.

sudo yum -y install java-1.8.0-openjdk-devel

Pārbaudiet Java versiju, lai pārliecinātos, ka tā ir instalēta pareizi.

java -version

Jūs saņemsiet līdzīgu rezultātu.

[user@vultr ~]$ java -version
openjdk version "1.8.0_151"
OpenJDK Runtime Environment (build 1.8.0_151-b12)
OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode)

Lai varētu turpināt, mums būs jāiestata JAVA_HOMEun JRE_HOMEvides mainīgie. Atrodiet savā sistēmā JAVA izpildāmā faila absolūto ceļu.

readlink -f $(which java)

Jūs redzēsit līdzīgu izvadi.

[user@vultr ~]$ readlink -f $(which java)
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64/jre/bin/java

Tagad iestatiet JAVA_HOMEun JRE_HOMEvides mainīgo atbilstoši Java direktorija ceļam.

echo "export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64" >> ~/.bash_profile
echo "export JRE_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64/jre" >> ~/.bash_profile

Izpildiet bash_profilefailu.

source ~/.bash_profile

Tagad varat palaist echo $JAVA_HOMEkomandu, lai pārbaudītu, vai vides mainīgais ir iestatīts.

[user@vultr ~]$ echo $JAVA_HOME
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64

Instalējiet PredictionIO

Apache nodrošina PredictionIO avota failus, kurus var lejupielādēt un apkopot lokāli. Izveidojiet jaunu pagaidu direktoriju, lai lejupielādētu un apkopotu avota failu.

mkdir /tmp/pio_sourcefiles && cd /tmp/pio_sourcefiles

Lejupielādējiet PredictionIO avota failu arhīvu, izmantojot jebkuru Apache Mirror vietni .

wget http://apache.mirror.vexxhost.com/incubator/predictionio/0.12.0-incubating/apache-predictionio-0.12.0-incubating.tar.gz

Izņemiet arhīvu un apkopojiet avotu, lai izveidotu PredictionIO izplatīšanu.

tar xf apache-predictionio-0.12.0-incubating.tar.gz
./make-distribution.sh

Iepriekš minētais sadalījums tiks veidots atbilstoši noklusējuma atkarību versijām, kas ir Scala 2.11.8, Spark 2.1.1, Hadoop 2.7.3un ElasticSearch 5.5.2. Pagaidiet, līdz tiks pabeigta būvēšana. Atkarībā no sistēmas veiktspējas, tā pabeigšana prasīs apmēram desmit minūtes.

Piezīme . Varat brīvi izmantot jaunāko atbalstīto atkarību versiju, taču, iespējams, izveides laikā tiks parādīti brīdinājumi, jo dažas funkcijas var būt novecojušas. Palaidiet ./make-distribution.sh -Dscala.version=2.11.11 -Dspark.version=2.1.2 -Dhadoop.version=2.7.4 -Delasticsearch.version=5.5.3, aizstājot versijas numuru pēc jūsu izvēles.

Kad būvēšana būs veiksmīgi pabeigta, beigās tiks parādīts šāds ziņojums.

...
PredictionIO-0.12.0-incubating/python/pypio/__init__.py
PredictionIO-0.12.0-incubating/python/pypio/utils.py
PredictionIO-0.12.0-incubating/python/pypio/shell.py
PredictionIO binary distribution created at PredictionIO-0.12.0-incubating.tar.gz

PredictionIO binārie faili tiks saglabāti PredictionIO-0.12.0-incubating.tar.gzarhīvā. Izvelciet /optdirektorijā esošo arhīvu un norādiet īpašumtiesības pašreizējam lietotājam.

sudo tar xf PredictionIO-0.12.0-incubating.tar.gz -C /opt/
sudo chown -R $USER:$USER /opt/PredictionIO-0.12.0-incubating

Iestatiet PIO_HOMEvides mainīgo.

echo "export PIO_HOME=/opt/PredictionIO-0.12.0-incubating" >> ~/.bash_profile
source ~/.bash_profile

Instalējiet vajadzīgās atkarības

Izveidojiet jaunu direktoriju, lai instalētu PredictionIO atkarības, piemēram HBase, Sparkun Elasticsearch.

mkdir /opt/PredictionIO-0.12.0-incubating/vendors

Lejupielādējiet Scala versiju 2.11.8 un izvelciet to vendorsdirektorijā.

wget https://downloads.lightbend.com/scala/2.11.8/scala-2.11.8.tgz
tar xf scala-2.11.8.tgz -C /opt/PredictionIO-0.12.0-incubating/vendors

Lejupielādējiet Apache Hadoop versiju 2.7.3 un izvelciet to vendorsdirektorijā.

wget https://archive.apache.org/dist/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gz
tar xf hadoop-2.7.3.tar.gz -C /opt/PredictionIO-0.12.0-incubating/vendors

Apache Spark ir PredictionIO noklusējuma apstrādes dzinējs. Lejupielādējiet Spark versiju 2.1.1 un izvelciet to vendorsdirektorijā.

wget https://archive.apache.org/dist/spark/spark-2.1.1/spark-2.1.1-bin-hadoop2.7.tgz
tar xf spark-2.1.1-bin-hadoop2.7.tgz -C /opt/PredictionIO-0.12.0-incubating/vendors

Lejupielādējiet Elasticsearch versiju 5.5.2 un izvelciet to vendorsdirektorijā.

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.2.tar.gz
tar xf elasticsearch-5.5.2.tar.gz -C /opt/PredictionIO-0.12.0-incubating/vendors

Visbeidzot, lejupielādējiet HBase versiju 1.2.6 un izvelciet to vendorsdirektorijā.

wget https://archive.apache.org/dist/hbase/stable/hbase-1.2.6-bin.tar.gz
tar xf hbase-1.2.6-bin.tar.gz -C /opt/PredictionIO-0.12.0-incubating/vendors

Atveriet hbase-site.xmlkonfigurācijas failu, lai konfigurētu HBase darbam savrupā vidē.

nano /opt/PredictionIO-0.12.0-incubating/vendors/hbase-1.2.6/conf/hbase-site.xml

Atrodiet tukšo konfigurācijas bloku un aizstājiet to ar šādu konfigurāciju.

<configuration>
  <property>
    <name>hbase.rootdir</name>
    <value>file:///home/user/PredictionIO-0.12.0-incubating/vendors/hbase-1.2.6/data</value>
  </property>
  <property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/home/user/PredictionIO-0.12.0-incubating/vendors/hbase-1.2.6/zookeeper</value>
  </property>
</configuration>

HBase automātiski izveidos datu direktoriju. Rediģējiet HBase vides failu, lai iestatītu JAVA_HOMEceļu.

nano /opt/PredictionIO-0.12.0-incubating/vendors/hbase-1.2.6/conf/hbase-env.sh

Atceliet 27. rindiņas komentāru un iestatiet Java instalācijas JAVA_HOMEceļu jre. Jūs varat atrast ceļu uz JAVA izpildāmo failu, izmantojot readlink -f $(which java)komandu.

# The java implementation to use.  Java 1.7+ required.
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64/jre

Tāpat komentējiet rindiņas numurus 46 un 47, jo tie nav nepieciešami JAVA 8.

# Configure PermSize. Only needed in JDK7. You can safely remove it for JDK8+
# export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m"
# export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m"

Konfigurējiet PredictionIO vidi

Noklusējuma konfigurācija PredictionIO vides failā pio-env.shpieņem, ka mēs izmantojam PostgreSQL vai MySQL. Tā kā esam izmantojuši HBase un Elasticsearch, mums būs jāmaina gandrīz katra faila konfigurācija. Vislabāk ir izveidot esošā faila dublējumu un izveidot jaunu PredictionIO vides failu.

mv /opt/PredictionIO-0.12.0-incubating/conf/pio-env.sh /opt/PredictionIO-0.12.0-incubating/conf/pio-env.sh.bak

Tagad izveidojiet jaunu failu PredictionIO vides konfigurācijai.

nano /opt/PredictionIO-0.12.0-incubating/conf/pio-env.sh

Aizpildiet failu ar šādu konfigurāciju.

# PredictionIO Main Configuration
#
# This section controls core behavior of PredictionIO. It is very likely that
# you need to change these to fit your site.

# SPARK_HOME: Apache Spark is a hard dependency and must be configured.
SPARK_HOME=$PIO_HOME/vendors/spark-2.1.1-bin-hadoop2.7

# POSTGRES_JDBC_DRIVER=$PIO_HOME/lib/postgresql-42.0.0.jar
# MYSQL_JDBC_DRIVER=$PIO_HOME/lib/mysql-connector-java-5.1.41.jar

# ES_CONF_DIR: You must configure this if you have advanced configuration for
#              your Elasticsearch setup.
ES_CONF_DIR=$PIO_HOME/vendors/elasticsearch-5.5.2/config

# HADOOP_CONF_DIR: You must configure this if you intend to run PredictionIO
#                  with Hadoop 2.
HADOOP_CONF_DIR=$PIO_HOME/vendors/spark-2.1.1-bin-hadoop2.7/conf

# HBASE_CONF_DIR: You must configure this if you intend to run PredictionIO
#                 with HBase on a remote cluster.
HBASE_CONF_DIR=$PIO_HOME/vendors/hbase-1.2.6/conf

# Filesystem paths where PredictionIO uses as block storage.
PIO_FS_BASEDIR=$HOME/.pio_store
PIO_FS_ENGINESDIR=$PIO_FS_BASEDIR/engines
PIO_FS_TMPDIR=$PIO_FS_BASEDIR/tmp

# PredictionIO Storage Configuration
#
# This section controls programs that make use of PredictionIO's built-in
# storage facilities. Default values are shown below.
#
# For more information on storage configuration please refer to
# http://predictionio.incubator.apache.org/system/anotherdatastore/

# Storage Repositories

# Default is to use PostgreSQL
PIO_STORAGE_REPOSITORIES_METADATA_NAME=pio_meta
PIO_STORAGE_REPOSITORIES_METADATA_SOURCE=ELASTICSEARCH

PIO_STORAGE_REPOSITORIES_EVENTDATA_NAME=pio_event
PIO_STORAGE_REPOSITORIES_EVENTDATA_SOURCE=HBASE

PIO_STORAGE_REPOSITORIES_MODELDATA_NAME=pio_model
PIO_STORAGE_REPOSITORIES_MODELDATA_SOURCE=LOCALFS

# Storage Data Sources

# PostgreSQL Default Settings
# Please change "pio" to your database name in PIO_STORAGE_SOURCES_PGSQL_URL
# Please change PIO_STORAGE_SOURCES_PGSQL_USERNAME and
# PIO_STORAGE_SOURCES_PGSQL_PASSWORD accordingly
# PIO_STORAGE_SOURCES_PGSQL_TYPE=jdbc
# PIO_STORAGE_SOURCES_PGSQL_URL=jdbc:postgresql://localhost/pio
# PIO_STORAGE_SOURCES_PGSQL_USERNAME=pio
# PIO_STORAGE_SOURCES_PGSQL_PASSWORD=pio

# MySQL Example
# PIO_STORAGE_SOURCES_MYSQL_TYPE=jdbc
# PIO_STORAGE_SOURCES_MYSQL_URL=jdbc:mysql://localhost/pio
# PIO_STORAGE_SOURCES_MYSQL_USERNAME=pio
# PIO_STORAGE_SOURCES_MYSQL_PASSWORD=pio

# Elasticsearch Example
PIO_STORAGE_SOURCES_ELASTICSEARCH_TYPE=elasticsearch
PIO_STORAGE_SOURCES_ELASTICSEARCH_HOSTS=localhost
PIO_STORAGE_SOURCES_ELASTICSEARCH_PORTS=9200
PIO_STORAGE_SOURCES_ELASTICSEARCH_SCHEMES=http
PIO_STORAGE_SOURCES_ELASTICSEARCH_CLUSTERNAME=pio
PIO_STORAGE_SOURCES_ELASTICSEARCH_HOME=$PIO_HOME/vendors/elasticsearch-5.5.2

# Optional basic HTTP auth
# PIO_STORAGE_SOURCES_ELASTICSEARCH_USERNAME=my-name
# PIO_STORAGE_SOURCES_ELASTICSEARCH_PASSWORD=my-secret
# Elasticsearch 1.x Example
# PIO_STORAGE_SOURCES_ELASTICSEARCH_TYPE=elasticsearch
# PIO_STORAGE_SOURCES_ELASTICSEARCH_CLUSTERNAME=<elasticsearch_cluster_name>
# PIO_STORAGE_SOURCES_ELASTICSEARCH_HOSTS=localhost
# PIO_STORAGE_SOURCES_ELASTICSEARCH_PORTS=9300
# PIO_STORAGE_SOURCES_ELASTICSEARCH_HOME=$PIO_HOME/vendors/elasticsearch-1.7.6

# Local File System Example
PIO_STORAGE_SOURCES_LOCALFS_TYPE=localfs
PIO_STORAGE_SOURCES_LOCALFS_PATH=$PIO_FS_BASEDIR/models

# HBase Example
PIO_STORAGE_SOURCES_HBASE_TYPE=hbase
PIO_STORAGE_SOURCES_HBASE_HOME=$PIO_HOME/vendors/hbase-1.2.6

# AWS S3 Example
# PIO_STORAGE_SOURCES_S3_TYPE=s3
# PIO_STORAGE_SOURCES_S3_BUCKET_NAME=pio_bucket
# PIO_STORAGE_SOURCES_S3_BASE_PATH=pio_model

Saglabājiet failu un izejiet no redaktora.

Atveriet Elasticsearch konfigurācijas failu.

nano /opt/PredictionIO-0.12.0-incubating/vendors/elasticsearch-5.5.2/config/elasticsearch.yml

Atceliet rindiņas komentārus un iestatiet klastera nosaukumu tieši tādu pašu kā tas, kas norādīts PredictionIO vides failā. Iepriekš piominētajā konfigurācijā ir iestatīts klastera nosaukums .

# Use a descriptive name for your cluster:
#
cluster.name: pio

Tagad pievienojiet $PIO_HOME/bindirektoriju mainīgajam PATH, lai PredictionIO izpildāmie faili tiktu izpildīti tieši.

echo "export PATH=$PATH:$PIO_HOME/bin" >> ~/.bash_profile
source ~/.bash_profile

Šajā brīdī jūsu serverī ir veiksmīgi instalēta PredictionIO.

Tiek palaists PredictionIO

Varat palaist visus pakalpojumus pakalpojumā PredictionIO, piemēram, Elasticsearch, HBase un Event serveri, izmantojot vienu komandu.

pio-start-all

Jūs redzēsit šādu izvadi.

[user@vultr ~]$ pio-start-all
Starting Elasticsearch...
Starting HBase...
starting master, logging to /opt/PredictionIO-0.12.0-incubating/vendors/hbase-1.2.6/bin/../logs/hbase-user-master-vultr.guest.out
Waiting 10 seconds for Storage Repositories to fully initialize...
Starting PredictionIO Event Server...

Izmantojiet šo komandu, lai pārbaudītu PredictionIO servera statusu.

pio status

Jūs redzēsit šādu izvadi.

[user@vultr ~]$ pio status
[INFO] [Management$] Inspecting PredictionIO...
[INFO] [Management$] PredictionIO 0.12.0-incubating is installed at /opt/PredictionIO-0.12.0-incubating
[INFO] [Management$] Inspecting Apache Spark...
[INFO] [Management$] Apache Spark is installed at /opt/PredictionIO-0.12.0-incubating/vendors/spark-2.1.1-bin-hadoop2.7
[INFO] [Management$] Apache Spark 2.1.1 detected (meets minimum requirement of 1.3.0)
[INFO] [Management$] Inspecting storage backend connections...
[INFO] [Storage$] Verifying Meta Data Backend (Source: ELASTICSEARCH)...
[INFO] [Storage$] Verifying Model Data Backend (Source: LOCALFS)...
[INFO] [Storage$] Verifying Event Data Backend (Source: HBASE)...
[INFO] [Storage$] Test writing to Event Store (App Id 0)...
[INFO] [HBLEvents] The namespace pio_event doesn't exist yet. Creating now...
[INFO] [HBLEvents] The table pio_event:events_0 doesn't exist yet. Creating now...
[INFO] [HBLEvents] Removing table pio_event:events_0...
[INFO] [Management$] Your system is all ready to go.

Kā redzams iepriekš minētajos ziņojumos, mūsu sistēma ir gatava lietošanai dzinēja veidnes ieviešanai un datu prognozēšanai.

Dzinēja veidnes ieviešana

PredictionIO veidņu galerijā ir pieejamas vairākas lietošanai gatavas programmas veidnes, kuras var viegli instalēt PredictionIO serverī. Varat brīvi pārlūkot dzinēju veidņu sarakstu, lai atrastu to, kas atbilst jūsu prasībām, vai arī varat izveidot savu dzinēju.

Šajā apmācībā mēs ieviesīsim E-Commerce Recommendationdzinēja veidni, lai demonstrētu PredictionIO servera funkcionalitāti, izmantojot dažus datu paraugus. Šī programmas veidne sniedz dažus personiskus ieteikumus lietotājam e-komercijas vietnē. Pēc noklusējuma tai ir tādas funkcijas kā preču, kas nav noliktavā, izslēgšana vai ieteikumu sniegšana lietotājam, kurš reģistrējas pēc tam, kad modelis ir apmācīts. Turklāt pēc noklusējuma programmas veidne ņem lietotāja skatījumu un pirkšanas notikumus, preces ar kategorijām un rekvizītiem, kā arī nepieejamo preču sarakstu. Kad dzinējs ir apmācīts un izvietots, varat nosūtīt vaicājumu ar lietotāja ID un ieteicamo vienumu skaitu. Ģenerētā izvade būs ranžēts ieteicamo vienumu ID saraksts.

Instalējiet Git, jo tas tiks izmantots repozitorija klonēšanai.

cd ~    
sudo yum -y install git

Klonējiet savā sistēmā E-komercijas ieteikuma programmas veidni.

git clone https://github.com/apache/incubator-predictionio-template-ecom-recommender.git MyEComRecomm  

Izveidojiet jaunu lietojumprogrammu e-komercijas ieteikumu veidņu programmai. Katra PredictionIO lietojumprogramma tiek izmantota, lai saglabātu datus atsevišķai vietnei. Ja jums ir vairākas vietnes, varat izveidot vairākas lietotnes, lai katras vietnes datus saglabātu citā lietojumprogrammā. Jūs varat brīvi izvēlēties savam pieteikumam jebkuru nosaukumu.

cd MyEComRecomm/
pio app new myecom

Jūs redzēsit šādu izvadi.

[user@vultr MyEComRecomm]$ pio app new myecom
[INFO] [HBLEvents] The table pio_event:events_1 doesn't exist yet. Creating now...
[INFO] [App$] Initialized Event Store for this app ID: 1.
[INFO] [Pio$] Created a new app:
[INFO] [Pio$]       Name: myecom
[INFO] [Pio$]         ID: 1
[INFO] [Pio$] Access Key: a_DnDr4uyvjsKRldPoJAFMuPvb-QBz-BhUFyGehXoTKbm89r00Gx4ygnqspTJx4t

Iepriekš redzamajā izvadē ir arī piekļuves atslēga, kas tiks izmantota, lai autentificētos, nosūtot ievades datus notikumu serverim.

Palaižot, jūs vienmēr varat atrast piekļuves atslēgu un pieejamo programmu sarakstu.

pio app list

Jūs redzēsit šādu izvadi, kurā būs lietojumprogrammu saraksts un piekļuves atslēga.

[user@vultr MyEComRecomm]$ pio app list
[INFO] [Pio$]                 Name |   ID |                                                       Access Key | Allowed Event(s)
[INFO] [Pio$]               myecom |    1 | a_DnDr4uyvjsKRldPoJAFMuPvb-QBz-BhUFyGehXoTKbm89r00Gx4ygnqspTJx4t | (all)
[INFO] [Pio$] Finished listing 1 app(s).

Tagad, kad esam izveidojuši jaunu lietojumprogrammu, mēs tai pievienosim dažus datus. Ražošanas vidē vēlaties automātiski nosūtīt datus notikumu serverim, lietojumprogrammā integrējot notikumu servera API. Lai uzzinātu, kā darbojas PredictionIO, mēs tajā importēsim dažus datu paraugus. Veidnes programma nodrošina Python skriptu, ko var viegli izmantot, lai importētu parauga datus notikumu serverī.

Instalējiet Python pip.

sudo yum -y install python-pip
sudo pip install --upgrade pip

Instalējiet PredictionIO Python SDK, izmantojot pip.

sudo pip install predictionio

Palaidiet Python skriptu, lai notikumu serverim pievienotu datu paraugus.

python data/import_eventserver.py --access_key a_DnDr4uyvjsKRldPoJAFMuPvb-QBz-BhUFyGehXoTKbm89r00Gx4ygnqspTJx4t

Noteikti nomainiet piekļuves atslēgu ar savu faktisko piekļuves atslēgu. Jūs redzēsit līdzīgu izvadi.

[user@vultr MyEComRecomm]$ python data/import_eventserver.py --access_key a_DnDr4uyvjsKRldPoJAFMuPvb-QBz-BhUFyGehXoTKbm89r00Gx4ygnqspTJx4t
Namespace(access_key='a_DnDr4uyvjsKRldPoJAFMuPvb-QBz-BhUFyGehXoTKbm89r00Gx4ygnqspTJx4t', url='http://localhost:7070')
{u'status': u'alive'}
Importing data...
('Set user', 'u1')
('Set user', 'u2')

...

('User', 'u10', 'buys item', 'i30')
('User', 'u10', 'views item', 'i40')
('User', 'u10', 'buys item', 'i40')
204 events are imported.

Iepriekš minētais skripts importē 10 lietotājus, 50 vienumus 6 kategorijās un dažus nejaušus pirkuma un skatījumu notikumus. Lai pārbaudītu, vai notikumi ir importēti, varat izpildīt šādu vaicājumu.

curl -i -X GET "http://localhost:7070/events.json?accessKey=a_DnDr4uyvjsKRldPoJAFMuPvb-QBz-BhUFyGehXoTKbm89r00Gx4ygnqspTJx4t"

Izvade parādīs visu importēto notikumu sarakstu JSON formātā.

Tagad atveriet engine.jsonfailu redaktorā. Šis fails satur dzinēja konfigurāciju.

nano engine.json

Atrodiet abus gadījumus appNameun aizstājiet vērtību ar iepriekš izveidotās lietotnes faktisko nosaukumu.

{
  "id": "default",
  "description": "Default settings",
  "engineFactory": "org.example.ecommercerecommendation.ECommerceRecommendationEngine",
  "datasource": {
    "params" : {
      "appName": "myecom"
    }
  },
  "algorithms": [
    {
      "name": "ecomm",
      "params": {
        "appName": "myecom",
        "unseenOnly": true,
        "seenEvents": ["buy", "view"],
        "similarEvents": ["view"],
        "rank": 10,
        "numIterations" : 20,
        "lambda": 0.01,
        "seed": 3
      }
    }
  ]
}

Veidojiet lietojumprogrammu.

pio build --verbose

Ja nevēlaties redzēt žurnāla ziņojumus, noņemiet --verboseopciju. Dzinēja veidnes izveide pirmo reizi prasīs dažas minūtes. Jūs redzēsit līdzīgu izvadi, kad būvēšana būs veiksmīgi pabeigta.

[user@vultr MyEComRecomm]$ pio build --verbose
[INFO] [Engine$] Using command '/opt/PredictionIO-0.12.0-incubating/sbt/sbt' at /home/user/MyEComRecomm to build.

...

[INFO] [Engine$] Build finished successfully.
[INFO] [Pio$] Your engine is ready for training.

Apmāciet dzinēju tūlīt. Apmācības laikā dzinējs analizē datu kopu un apmāca sevi saskaņā ar sniegto algoritmu.

pio train

Pirms lietojumprogrammas izvietošanas mums būs jāatver ports, 8000lai lietojumprogrammas statusu varētu skatīt tīmekļa GUI. Arī vietnes un lietojumprogrammas, kas izmanto notikumu serveri, nosūtīs un saņems savus vaicājumus, izmantojot šo portu.

sudo firewall-cmd --zone=public --permanent --add-port=8000/tcp
sudo firewall-cmd --reload

Tagad varat izvietot PredictionIO dzinēju.

pio deploy

Iepriekš minētā komanda izvietos dzinēju un iebūvēto tīmekļa serveri portā, 8000lai atbildētu uz vaicājumiem no e-komercijas vietnēm un lietojumprogrammām. Kad dzinējs būs veiksmīgi izvietots, beigās redzēsit šādu izvadi.

[INFO] [HttpListener] Bound to /0.0.0.0:8000
[INFO] [MasterActor] Engine is deployed and running. Engine API is live at http://0.0.0.0:8000.

Jūs varat pārbaudīt dzinēja statusu, http://192.0.2.1:8000izmantojot jebkuru modernu pārlūkprogrammu. Noteikti nomainiet to 192.0.2.1ar savu faktisko Vultr IP adresi.

Tas nozīmē, ka e-komercijas ieteikuma programmas veidne ir izvietota un darbojas veiksmīgi. Varat pieprasīt programmas veidni, lai iegūtu piecus ieteikumus lietotājam u5, izpildot šādu vaicājumu jaunā termināļa sesijā.

curl -H "Content-Type: application/json" \
-d '{ "user": "u5", "num": 5 }' \
http://localhost:8000/queries.json

Jūs redzēsiet izveidotos ieteikumus lietotājam u5.

[user@vultr ~]$ curl -H "Content-Type: application/json" \
> -d '{ "user": "u5", "num": 5 }' \
> http://localhost:8000/queries.json
{"itemScores":[{"item":"i25","score":0.9985169366745619},{"item":"i10","score":0.996613946803819},{"item":"i27","score":0.996613946803819},{"item":"i17","score":0.9962796867639341},{"item":"i8","score":0.9955868705972656}]}

Iesaiņošana

Apsveicam, Apache PredictionIO ir veiksmīgi izvietots jūsu serverī. Tagad varat izmantot notikumu servera API, lai importētu datus programmā, lai paredzētu ieteikumus lietotājam. Ja vēlaties, varat izmantot dažas citas veidnes no veidņu galerijas. Noteikti apskatiet Universal Recommender programmas veidni, ko var izmantot gandrīz visos lietošanas gadījumos, tostarp e-komercijā, ziņās vai video.


Instalējiet Plesk operētājsistēmā CentOS 7

Instalējiet Plesk operētājsistēmā CentOS 7

Vai izmantojat citu sistēmu? Plesk ir patentēts tīmekļa mitinātāja vadības panelis, kas ļauj lietotājiem administrēt savas personīgās un/vai klientu vietnes, datu bāzes

Kā instalēt Squid starpniekserveri CentOS

Kā instalēt Squid starpniekserveri CentOS

Squid ir populāra bezmaksas Linux programma, kas ļauj izveidot pāradresācijas tīmekļa starpniekserveri. Šajā rokasgrāmatā jūs redzēsit, kā instalēt Squid uz CentOS, lai jūs pārvērstu

Kā instalēt Lighttpd (LLMP Stack) operētājsistēmā CentOS 6

Kā instalēt Lighttpd (LLMP Stack) operētājsistēmā CentOS 6

Ievads Lighttpd ir Apache dakša, kuras mērķis ir daudz mazāk resursietilpīgs. Tas ir viegls, tāpēc arī tā nosaukums ir diezgan vienkārši lietojams. Instalēšana

Statiskā tīkla un IPv6 konfigurēšana operētājsistēmā CentOS 7

Statiskā tīkla un IPv6 konfigurēšana operētājsistēmā CentOS 7

VULTR nesen veica izmaiņas, un tagad visam vajadzētu darboties labi, ja ir iespējots NetworkManager. Ja vēlaties atspējot

Icinga2 modificēšana, lai izmantotu galveno/klienta modeli operētājsistēmā CentOS 6 vai CentOS 7

Icinga2 modificēšana, lai izmantotu galveno/klienta modeli operētājsistēmā CentOS 6 vai CentOS 7

Icinga2 ir spēcīga uzraudzības sistēma, un, ja to izmanto galvenā klienta modelī, tā var aizstāt vajadzību pēc NRPE balstītām uzraudzības pārbaudēm. Meistars-klients

Kā instalēt Apache Cassandra 3.11.x operētājsistēmā CentOS 7

Kā instalēt Apache Cassandra 3.11.x operētājsistēmā CentOS 7

Vai izmantojat citu sistēmu? Apache Cassandra ir bezmaksas un atvērtā koda NoSQL datu bāzes pārvaldības sistēma, kas ir izstrādāta, lai nodrošinātu mērogojamību, hig.

Kā instalēt Microweber operētājsistēmā CentOS 7

Kā instalēt Microweber operētājsistēmā CentOS 7

Vai izmantojat citu sistēmu? Microweber ir atvērtā koda vilkšanas un nomešanas CMS un tiešsaistes veikals. Microweber pirmkods tiek mitināts vietnē GitHub. Šī rokasgrāmata jums parādīs

Kā instalēt Mattermost 4.1 operētājsistēmā CentOS 7

Kā instalēt Mattermost 4.1 operētājsistēmā CentOS 7

Vai izmantojat citu sistēmu? Mattermost ir atvērtā pirmkoda, pašmitināta alternatīva Slack SAAS ziņojumapmaiņas pakalpojumam. Citiem vārdiem sakot, izmantojot Mattermost, jūs apm

Minecraft serveru tīkla izveide ar BungeeCord operētājsistēmā Debian 8, Debian 9 vai CentOS 7

Minecraft serveru tīkla izveide ar BungeeCord operētājsistēmā Debian 8, Debian 9 vai CentOS 7

Kas jums būs nepieciešams Vultr VPS ar vismaz 1 GB RAM. SSH piekļuve (ar root/administratora tiesībām). 1. darbība: BungeeCord instalēšana Vispirms vispirms

Ļauj šifrēt vietnē Plesk

Ļauj šifrēt vietnē Plesk

Plesk vadības panelī ir ļoti jauka Lets Encrypt integrācija. Lets Encrypt ir viens no vienīgajiem SSL nodrošinātājiem, kas pilnībā izsniedz sertifikātus

Ļauj šifrēt cPanel

Ļauj šifrēt cPanel

Lets Encrypt ir sertifikātu iestāde, kas nodrošina SSL sertifikātus bez maksas. cPanel ir izveidojis glītu integrāciju, lai jūs un jūsu klients

Kā instalēt Concrete5 operētājsistēmā CentOS 7

Kā instalēt Concrete5 operētājsistēmā CentOS 7

Vai izmantojat citu sistēmu? Concrete5 ir atvērtā pirmkoda CMS, kas piedāvā daudzas atšķirīgas un noderīgas funkcijas, lai palīdzētu redaktoriem viegli izveidot saturu.

Kā instalēt pārskata paneli sistēmā CentOS 7

Kā instalēt pārskata paneli sistēmā CentOS 7

Vai izmantojat citu sistēmu? Pārskatīšanas padome ir bezmaksas atvērtā pirmkoda rīks pirmkoda, dokumentācijas, attēlu un daudz ko citu pārskatīšanai. Tā ir tīmekļa programmatūra

Iestatiet HTTP autentifikāciju, izmantojot Nginx operētājsistēmā CentOS 7

Iestatiet HTTP autentifikāciju, izmantojot Nginx operētājsistēmā CentOS 7

Šajā rokasgrāmatā jūs uzzināsit, kā iestatīt HTTP autentifikāciju Nginx tīmekļa serverim, kas darbojas operētājsistēmā CentOS 7. Prasības Lai sāktu darbu, jums būs nepieciešams

Kā instalēt YOURLS operētājsistēmā CentOS 7

Kā instalēt YOURLS operētājsistēmā CentOS 7

YOURLS (Your Own URL Shortener) ir atvērtā koda URL saīsināšanas un datu analīzes lietojumprogramma. Šajā rakstā mēs apskatīsim instalēšanas procesu

Kā instalēt un konfigurēt ArangoDB operētājsistēmā CentOS 7

Kā instalēt un konfigurēt ArangoDB operētājsistēmā CentOS 7

Vai izmantojat citu sistēmu? Ievads ArangoDB ir atvērtā koda NoSQL datu bāze ar elastīgu datu modeli dokumentiem, grafikiem un atslēgu vērtībām. Tas ir

Etckeeper izmantošana /etc versiju kontrolei

Etckeeper izmantošana /etc versiju kontrolei

Ievads /etc/ direktorijam ir izšķiroša nozīme Linux sistēmas darbībā. Iemesls tam ir gandrīz visas sistēmas konfigurācijas

Kāpēc jums vajadzētu izmantot SSHFS? Kā uzstādīt attālo failu sistēmu ar SSHFS operētājsistēmā CentOS 6

Kāpēc jums vajadzētu izmantot SSHFS? Kā uzstādīt attālo failu sistēmu ar SSHFS operētājsistēmā CentOS 6

Daudzi sistēmu administratori pārvalda lielu daudzumu serveru. Ja failiem ir jāpiekļūst dažādos serveros, piesakieties katrā atsevišķi apm

Half Life 2 servera iestatīšana operētājsistēmā CentOS 6

Half Life 2 servera iestatīšana operētājsistēmā CentOS 6

Šajā apmācībā tiks apskatīts Half Life 2 spēļu servera instalēšanas process sistēmā CentOS 6. 1. darbība: priekšnosacījumu instalēšana Lai iestatītu ou

Kā instalēt Laravel GitScrum operētājsistēmā CentOS 7

Kā instalēt Laravel GitScrum operētājsistēmā CentOS 7

Laravel GitScrum jeb GitScrum ir atvērtā pirmkoda produktivitātes rīks, kas izstrādāts, lai palīdzētu izstrādātāju komandām ieviest Scrum metodoloģiju līdzīgā veidā.

Mašīnu pieaugums: AI reālās pasaules lietojumi

Mašīnu pieaugums: AI reālās pasaules lietojumi

Mākslīgais intelekts nav nākotnē, tas ir šeit, tagadnē. Šajā emuārā lasiet, kā mākslīgā intelekta lietojumprogrammas ir ietekmējušas dažādas nozares.

DDOS uzbrukumi: īss pārskats

DDOS uzbrukumi: īss pārskats

Vai arī jūs esat DDOS uzbrukumu upuris un esat neizpratnē par profilakses metodēm? Izlasiet šo rakstu, lai atrisinātu savus jautājumus.

Vai esat kādreiz domājis, kā hakeri pelna naudu?

Vai esat kādreiz domājis, kā hakeri pelna naudu?

Iespējams, esat dzirdējuši, ka hakeri pelna daudz naudas, bet vai esat kādreiz domājuši, kā viņi nopelna šādu naudu? pārrunāsim.

Google revolucionāri izgudrojumi, kas atvieglos jūsu dzīvi.

Google revolucionāri izgudrojumi, kas atvieglos jūsu dzīvi.

Vai vēlaties redzēt revolucionārus Google izgudrojumus un to, kā šie izgudrojumi mainīja katra cilvēka dzīvi mūsdienās? Pēc tam lasiet emuārā, lai redzētu Google izgudrojumus.

Piektdiena: kas notika ar AI vadītām automašīnām?

Piektdiena: kas notika ar AI vadītām automašīnām?

Pašpiedziņas automobiļu koncepcija izbraukt uz ceļiem ar mākslīgā intelekta palīdzību ir mūsu sapnis jau kādu laiku. Bet, neskatoties uz vairākiem solījumiem, tie nekur nav redzami. Lasiet šo emuāru, lai uzzinātu vairāk…

Tehnoloģiskā singularitāte: cilvēces civilizācijas tāla nākotne?

Tehnoloģiskā singularitāte: cilvēces civilizācijas tāla nākotne?

Zinātnei strauji attīstoties, pārņemot lielu daļu mūsu pūļu, palielinās arī risks pakļaut sevi neizskaidrojamai singularitātei. Izlasiet, ko singularitāte varētu nozīmēt mums.

Datu glabāšanas evolūcija – infografika

Datu glabāšanas evolūcija – infografika

Datu uzglabāšanas metodes ir attīstījušās kopš datu dzimšanas. Šajā emuārā ir aprakstīta datu uzglabāšanas attīstība, pamatojoties uz infografiku.

Lielo datu atsauces arhitektūras slāņu funkcijas

Lielo datu atsauces arhitektūras slāņu funkcijas

Lasiet emuāru, lai vienkāršākā veidā uzzinātu dažādus lielo datu arhitektūras slāņus un to funkcijas.

6 brīnišķīgas priekšrocības, ko sniedz viedo mājas ierīču izmantošana mūsu dzīvē

6 brīnišķīgas priekšrocības, ko sniedz viedo mājas ierīču izmantošana mūsu dzīvē

Šajā digitālajā pasaulē viedās mājas ierīces ir kļuvušas par būtisku dzīves sastāvdaļu. Šeit ir daži pārsteidzoši viedo mājas ierīču ieguvumi, lai padarītu mūsu dzīvi dzīves vērtu un vienkāršāku.

MacOS Catalina 10.15.4 papildinājuma atjauninājums rada vairāk problēmu nekā to risināšana

MacOS Catalina 10.15.4 papildinājuma atjauninājums rada vairāk problēmu nekā to risināšana

Nesen Apple izlaida macOS Catalina 10.15.4 papildinājuma atjauninājumu, lai novērstu problēmas, taču šķiet, ka atjauninājums rada vairāk problēmu, kas izraisa Mac datoru bloķēšanu. Izlasiet šo rakstu, lai uzzinātu vairāk