Upgrade to Pro — share decks privately, control downloads, hide ads and more …

センサーデータをSparkで機械学習してストリーミング処理してみた

 センサーデータをSparkで機械学習してストリーミング処理してみた

Creaters MeetUp #37 で発表したスライドです。
体に装着した加速度センサーの値から、立ち・座り状態の判定を機械学習でリアルタイムに判定してみました。
Apache Sparkを使って機械学習とストリーミングでの判定を行っています。

Yoshihiro MIYAI

February 20, 2016
Tweet

More Decks by Yoshihiro MIYAI

Other Decks in Programming

Transcript

  1. ࣨԹ ࣪౓ ΤΞίϯ 0/ ΤΞίϯ 0/ ΤΞίϯ 0'' ˆҎ্ ˆະຬ

    ະຬ Ҏ্ ࣨԹˆ࣪౓ ܾఆͰ͖Δʂ ৽͍͠ঢ়گ
  2. ࣨԹ ࣪౓  ˆະຬ ະຬ Ҏ্ πϦʔͷ࡞Γํ ࣨԹˆ࣪౓ΤΞίϯ0/ ࣨԹˆ࣪౓ΤΞίϯ0'' ࣨԹˆ࣪౓ΤΞίϯ0/

    ࣨԹˆ࣪౓ΤΞίϯ0/ ࣨԹˆ࣪౓ΤΞίϯ0/ ࣨԹˆ࣪౓ΤΞίϯ0'' ࣨԹˆ࣪౓ΤΞίϯ0'' ࣨԹˆ࣪౓ΤΞίϯ0/ ࣨԹˆ࣪౓ΤΞίϯ0/ ʜ աڈͷσʔλ ˆҎ্ 0/ 0''   0/ 0'' 
  3. ࣨԹ ࣪౓  ˆະຬ ະຬ Ҏ্ πϦʔͷ࡞Γํ ࣨԹˆ࣪౓ΤΞίϯ0/ ࣨԹˆ࣪౓ΤΞίϯ0'' ࣨԹˆ࣪౓ΤΞίϯ0/

    ࣨԹˆ࣪౓ΤΞίϯ0/ ࣨԹˆ࣪౓ΤΞίϯ0/ ࣨԹˆ࣪౓ΤΞίϯ0'' ࣨԹˆ࣪౓ΤΞίϯ0'' ࣨԹˆ࣪౓ΤΞίϯ0/ ࣨԹˆ࣪౓ΤΞίϯ0/ ʜ աڈͷσʔλ ˆҎ্ 0/ 0''   0/ 0''  ࠾༻ ภΓͷେ͖͍ม਺ͰࢬΛ࡞͍ͬͯ͘
  4. ࣨԹ ࣪౓ ΤΞίϯ 0/ ΤΞίϯ 0/ ΤΞίϯ 0'' ػցֶश αϯϓϧͨ͠σʔλ͔Β


    ༗༻ͳنଇɾϧʔϧɾ஌ࣝදݱɾ ൑அج४ͳͲΛநग़͢Δٕज़ IUUQTKBXJLJQFEJBPSHXJLJ&"'&"#&"%"&#'
  5. ϥΠϒϥϦ w NSBB w (1*0 *$ 41* 6"35ͳͲΛѻ͏ w VQN

    w ֤छηϯαʔͳͲΛѻ͏ w ࠓճ࢖͏ηϯαʔ "%9- ΋͋Δ
  6. 1ZUIPOͰͷίʔυྫ import pyupm_adxl345 as adxl345
 
 adxl = adxl345.Adxl345(6) #

    Eaglet board Grove connector is connected to I2C_6
 
 while True:
 # get Acceleration
 adxl.update()
 force = adxl.getAcceleration()
 data = {'X': force[0], 'Y': force[1], 'Z': force[2]}
  7. ,JOFTJTʹૹΔίʔυྫ import boto3
 import json
 
 from socket import gethostname


    
 kinesis = boto3.client('kinesis')
 
 while True:
 # send to Kinesis
 res = kinesis.put_record(
 StreamName=stream_name,
 Data=json.dumps(data),
 PartitionKey=gethostname() # as you like
 )
  8. 4QBSL4USFBNJOH w ετϦʔϛϯάॲཧ w 5$14PDLFU ,BGLB 'MVNF  ,JOFTJT 5XJUUFS

    ;FSP.2 .255 IUUQTQBSLBQBDIFPSHEPDTMBUFTUTUSFBNJOHQSPHSBNNJOHHVJEFIUNM KinesisUtils.createStream(
 ssc,
 "spark-ml-adxl345-from-kinesis",
 streamName,
 "kinesis.ap-northeast-1.amazonaws.com",
 "ap-northeast-1",
 InitialPositionInStream.LATEST,
 Seconds(2),
 StorageLevel.MEMORY_AND_DISK_2
 ).map(s => new String(s))