頭と尻尾はくれてやる!

パソコンおやじのiPhoneアプリ・サイト作成・運営日記


SCNFloorの床にオブジェクトが映らない

SCNFloorの床1

↑床(SCNFloorオブジェクト)に映るのと映らないのがある、、、
赤い立方体が床に映ってないけど、shipの方も床に接触しなかったら映らなくなったりしてた。
なんだよ、これ、、、
けどもういいわ。深入りするのはやめよう。だってSceneKitだもの。

SCNFloorの床2

↑最初のはコードで書いてたんだが素直に(?)Scene Editorで床を作成したらいけた。



macOS High Sierra 10.13.4


SCNFloorの床が逆さま?

SceneKitで物理エンジンを試そうと”床”を作ったんだ。
{
    SCNFloor *floorGeometry = [SCNFloor floor];
    SCNNode *floorNode = [SCNNode nodeWithGeometry:floorGeometry];
    floorGeometry.firstMaterial.diffuse.contents = [NSColor lightGrayColor];//—(1)
    floorNode.physicsBody = [SCNPhysicsBody bodyWithType:SCNPhysicsBodyTypeStatic shape:nil];//—(2)
    [mainScene.rootNode addChildNode:floorNode];
    
//    floorNode.orientation = rotationQuaternion;//—(3)
}
↑こんな感じで(1)床に色付けて、(2)物理エンジンで処理できるように設定。
最初(3)の回転はなしとする。

SCNFloorデフォルト

↑これで実行するとどういうわけか床に色が付かない。物理演算は期待通りには動いてるけど。

そこで(3)のようにして床をx軸周りに180度回転させた。そうすると、、、

SCNFloorを180度回転

↑床の色は見えた。やっぱりさっきは裏を見ていたのか、と思ったのだが今度は物理演算の挙動がおかしい。180度回転させたのでxz平面より上側に質量があるような挙動になってる(平面上部より立方体を落とそうとするのだが生成と同時に平面の下へ追い出されそこから自由落下する)。

まあSCNBoxとか使えばなんとかなるからいいけどさ、、、


PythonのPILで日足チャートを描く

機械学習で株価予測、チャート画像に対する画像認識ってことでPythonのPIL使ってチャート画像を作成、それをCNNでやってみる計画(内部的にはver4)。

お手本は楽天証券のiSPEEDというアプリのチャート。
{
    img = Image.new('RGB',imgSize , (0,0,0))
    imgDraw = ImageDraw.Draw(img)

    imgDraw.line(((x1,y1),(x2,y2)),lineColor,lineWidth)
    imgDraw.rectangle((boxLeftTop,boxRightBottom),rectColor)
}
↑PILには線も四角形を描く関数もあるのでこれを駆使して描く。面倒だけど特に難しくはない。
ImageDrawオブジェクトからTensorFlowのデータセット用を作成、tfrecordファイルに書き込んでいく。

PILで作成した日足チャート画像

iSpeedのチャート

↑チェックのため、tfrecordファイルを読み込んで、そのデータを元に描いたチャート(上)と、同じところのお手本のチャート(下)。
処理時間の点からなるべく画像のサイズは小さい方がいいだろうということで許せる範囲で小さくしてみた(160 x 120 px)。アルファチャンネルなしのカラー画像で作成。
ちなみに短期平均線は5日、中期は25日、長期は75日で計算してる。
まずは日足と3種の平均線だけでやってみる。ここに為替とかも描くというアイデアはあるよな。

なお、今回から解答の選択肢を陽線か陰線かの2択にした。何パーセントの上げ下げかって縦の値幅も画像によって異なるので判断させるのは酷かと。

ちなみに当初は300 x 160 px画像で試してみたところ恐ろしく時間とメモリを食ったためなるべく画像を小さくした。


RNN(LSTM)で株価予測の結果(3)

RNN(LSTM)で株価予測の結果(2)
↑この続き。
num_unitsを128でやってたのを256, 64でやってみた。

(1)num_units = 256の場合
LSTMの株価予測結果(ユニット数256)


(2)num_units = 64の場合
LSTMの株価予測結果(ユニット数64)

ユニット数が多いほど時間かかるが表現力が高そう、でもどちらにせよ予測はできていない、ってとこか。


深層学習を用いた株価予測の分析(pdf)
↑”パターン認識”なら役に立つかも、という意見もあるけど、、、

ディープラーニングの限界 | POSTD
↑こんなのを読みながら次はどうしたものか、、、と考えております。


RNN(LSTM)で株価予測の結果(2)

RNN(LSTM)で株価予測の結果(1)
↑この続き。LSTMで予測するのに、過去60日のデータを使うようにした場合の結果(ver3.1)。
forget_biasは0.9のみで。

LSTMで株価予測結果ver3.1

まあ予想通りさっぱりダメだなって結果。
それにしてもさすがに計算に時間がかかる、、、ので720kステップでやめた。

なお、今は試しにnum_unitsを128→256にして学習中なんだけど、さらに時間が、、、




Copyright ©頭と尻尾はくれてやる!. Powered by FC2 Blog. Template by eriraha.

FC2Ad