よつぴいてひやふつと射る

きぎょうででけんきゅうしています

DAISOで200円で買ったスマホ充電器が壊れた件

タイトルの通りです。DAISOで半年前に購入したスマホ充電器が壊れたので、ばらして遊んでみたよって話です。

 

ノートパソコンの充電に使っていたんですが、いつの間にか充電できなくなっていました。出力が完全にゼロになっていたのかは未確認です。。。

 

お亡くなりになったのはこちら、テラ・インターナショナル製、DC 5V, 1.0A出力のコンバーターです。

 

f:id:yasumonoe:20170205232546j:plain

ラジオペンチでプラグ部分をぐりぐりしてばらした後の画像です。よく見ると、本体側面に溶けたような跡が・・・

f:id:yasumonoe:20170205232549j:plain

開封してみると、焦げた跡が2か所確認できます。発熱箇所は、上の写真にもあるトランジスタと、下の写真の右上、チップ抵抗R3と思われます。

f:id:yasumonoe:20170205232544j:plain

刻印も読めなくなったR3。

f:id:yasumonoe:20170205232548j:plain

f:id:yasumonoe:20170205232550j:plain

ほかの部品はいたって綺麗、コンデンサの噴火もありませんでした。

どの部品が壊れたのかはわかりませんが、ノーパソに繋いで長時間充電してると、熱がこもって壊れやすくなるのかもしれません。

 

株の売買戦略を考える

とりあえずpythonをのらりくらりと勉強中なので、手始めに株の売買シミュレーションをやってみた。

 

戦略としては、n日移動平均乖離率が o % 以下で買い、i %以上で売り、という原始的な手法。確か、昔はこの戦略で上手くいっていたが、最近はなかなか…って話は聞いたことがあって、試しにやってみようってこと。

 

適当な事前検討の結果、n=7, o=-14, i=-7 がベストっぽいことが分かったので、さっそく1991~2016年の日経225の株価データを使ってシミュレーション。

 

とはいっても、単に1売買ごとの収益率を平均しただけなので、単元株がーとか資金管理がーという課題はあるのだけど。

 

結果は下の図の通り。通説通り、2005年過ぎたあたりから収益率がほぼゼロ。これは平均値なので、分散も考えると、現在ではハイリスク・ローリターンな戦略といえると思います。どうしてこうなった…

 

しばらくはこの手法を調べていきたいと思います。

将来的には、テクニカル戦略を機械学習させて金持ちになるという、男の子なら誰でも一度は見るであろう夢をかなえたいですね。

 

f:id:yasumonoe:20170126232248j:plain

ちなみにこの図はpythonで出力したわけではなく、csv出力したデータをexcelでピボット処理/グラフ化しています。やっぱりexcel使いやすいよ。

 

pythonデータ可視化ライブラリseabornのインストール

備忘録として。

matplotlibのラッパーの一つであるSeabornのインストールが、

>pip install seaborn

ではエラーが出てできなかった。

以下URLからwhlを落としてきて、

Python Extension Packages for Windows - Christoph Gohlke

>pip install c:\seaborn-0.7.1-py2.py3-none-any.whl

で終了。

Windows10 64bit + GPU の環境でTensorflow使えた

 過去にこんな記事を書いていました。

 

yasumonoe.hateblo.jp

 

 が、使えるようになったみたいです。

qiita.com

ついにwindowsでtensorfloが使えるようになりました。

環境設定は上記参照ですが、cudaのバージョン合わせとインストールの順番を守れば簡単です。Ubuntuのようにソースを落としてビルドから…のようなことはありません。

まだmnistで遊んでる段階ですが、早く精進したいです。

Windows10 64bit + GPUの環境では Tensorflow は使えない

タイトル通り、無理でした。

 

何を血迷ったか、ふと思い立ってTensorflowを使ってみたくなりました。

ちょうどいいことに、FPSを休止してから手持ち無沙汰のGPU GTX560Tiちゃんが、我がPCには鎮座ましましております。

 

しかし、Tensorflow自体がWindowsに対応しておらず、無理やり動かす方法としてDocker使う方法、Vagrant使う方法いろいろあるみたいだけど、結局仮想マシンじゃCUDAは使えませんでした。

CPUだったら計算できたんだけどね。

やっぱりGPU使いたいじゃん?

linux使うしか無いんだね・・・ってことに気づくまで1週間くらいかかりました。

車を購入しようと思う―中古車市場の相場を調べる

諸々の理由により車を購入しようと思う。車種は、諸々の理由からマツダCX-5にしようと思っている。しかしCX-5は高い。そして2015年のMC後にさらに値段が上がってしまった。上位グレードのXD PROACTIVE(ディーゼル、自動ブレーキ付き)でも選ぼうものなら350万は軽く吹っ飛んでしまう程に高い。下位グレードの20S(ガソリン、自動ブレーキなし)でも車両本体だけで250万近くはかかってしまい、金のない私にとっては、おいそれと手が出せない価格である。私は車も欲しいが、自転車も植物栽培もアクアリウムもカメラも天文も投資もやりたいのでそんな余裕は無い!

そこで中古車・新古車となるわけです。なんとかセンサーや、マツダユーカーなんとか、といった中古車サイトを当たりましたが、どうも相場がつかみにくい。いや、価格.com行けば年式-価格や走行距離-価格の関係がマップで表示されているのですが、グレードや修復歴の有無に関係なく表示されているのでわかりにくいんですね。私が欲しいのは、20Sで修復歴の無い車なのです。

というわけで、pythonの勉強がてら、某中古車情報サイトからスクレイピングしてくれるコードを書いてみた。素人のコードなので、汚い・無駄が多いのは見逃してください。

以下のコードでは、CX-5全車種、修復歴なし、衝突被害軽減ブレーキ有、フィルターしている。
上記以外の場合はtarget_urlをいじれば大丈夫。

#!/usr/local/bin/python3
# -*- coding: utf-8 -*-

import lxml.html
import requests
import csv
import datetime

car_urls = []
for i in range(1,100):
    target_url = 'http://www.carsensor.net/usedcar/search.php?STID=CS210610&SORT=2&CARC=MA_S087&YMIN=2012&OPTCD=REP0*PCS1&DLR=1&PAGE='+str(i)
    try:
        root=lxml.html.parse(target_url).getroot()
        els =[el.get('id') for el in root.cssselect('#bukkenCas div')]
    except:
        break
        
    ids = [i for i in els if i]
    for id in ids:
        car_urls.append('http://www.carsensor.net/' + root.cssselect('#'+ id +' a')[0].get('href'))


#List for write to CSVfile
car_info = [[]]
car_info[0] = ['本体価格', '支払総額', '年式', '走行距離(万km)', '車検有無', '車検残', '修復歴', '地域']

#Get each car info and Append to csv list
for car_url in car_urls:
    root=lxml.html.parse(car_url).getroot()
    res = root.xpath('string(//div[@class="l-box bknDtl_info"])').replace('\t','').replace(' ','')
    res = [r for r in res.split('\n') if r]
    res  = [r for r in res if r]
    #print(res)
    kyori = res[res.index('走行距離')+1]
    if '万' not in res[res.index('走行距離')+2]:
        kyori = (float(kyori) / 10000)
        
    td = datetime.datetime.today()    
    syaken_y = res[res.index('車検有無')+1].split('(')[0]
    syaken_m = res[res.index('車検有無')+2].strip('年').strip('月')
    if '整備付'in syaken_y:
        syaken_y = str(td.year + 2)
        syaken_m = str(td.month)
    elif '整備別'in syaken_y:
        syaken_y = str(td.year)
        syaken_m = str(td.month)

    syakenzan = (int(syaken_y)-td.year)*12 + (int(syaken_m)-td.month)
    
    car_info.append([res[res.index('本体価格')+1].strip('万円'),
                     res[res.index('支払総額')+1].strip('万円'),
                     res[res.index('年式')+1],
                     kyori,
                     syaken_y + '/' + syaken_m,
                     syakenzan,
                     res[res.index('修復歴')+1],
                     res[res.index('地域')+1]
                    ])
print(car_info)

with open(u'E:\\CAR\\car_info.csv', 'w')as f:
    writer = csv.writer(f,lineterminator='\n')
    writer.writerows(car_info)

car_infoを適当にプロットするとこんな感じ。

年式-本体価格の関係
f:id:vitaaeterna:20160730165306p:plain

 

走行距離-年式-本体価格の関係
f:id:vitaaeterna:20160730165301p:plain

これを見ると、走行距離も年式も少ない所謂新古車は、たいして安くなってないことがわかる。
また、走行距離だけに関していえば、20万円/10000km くらいの割合で安くなっているように見える。新車本体300万円とすると、15万km走行での減価償却を想定してのことなのか?

とりあえず、車を購入するときはこの図と見比べて値段の妥当性を判断しよう。

次にやること候補としては、
 ・グレード別の価格調査
 ・走行距離や年式を機械学習させて、本体価格を出すプログラムを作る。
はい…機械学習とか面白そうだから…手を出してみたいんですよ…

Win10 64bit での Python TA-Lib のインストール

windows10 64bit, python3.5, VisualStudio Community 2015の環境でTA-Libをインストールしようとしたらやっぱり躓いた!

結構長時間ハマってたので備忘録として残しておきます。

 

①ta-libの入手 http://ta-lib.org/

zipの中身を、私の場合はE:\ta-libに展開。

②Cコンパイラのインストール

ちなみにこの時点で python -m pip ta-libとしても、vcvarsall.batが見つからない、といったようなエラーが出る。

調べると、VS2015をインストールしただけではCコンパイラはインストールされていないらしい!!

ここで相当時間を消費した!

解決方法は、VS2015起動→プロジェクト新規作成→C/C++プロジェクト作成 って選択すると、インストールの項目が表示されるのでそれに従うだけ。

python -m pip ta-lib するが…

f:id:vitaaeterna:20160529230855j:plain

LNK1120がでて死亡。

 

Python Extension Packages for Windows - Christoph Gohlke

からコンパイル済みの.whlを落としてきて、python -m pip install *.whl

(私はE:\直下にダウンロードしました。)

f:id:vitaaeterna:20160529230852j:plain

やったね^^