ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

リストラすごいけど。。。

2018-01-31 20:14:09 | Weblog
実は不況なの?

【リストラ1】
NEC 3000人の希望退職募集 事業構造見直しで
https://www3.nhk.or.jp/news/html/20180130/k10011308401000.html


【リストラ2】
富士ゼロックス 国内外で1万人削減へ
https://www3.nhk.or.jp/news/html/20180131/k10011309951000.html

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

各社の開発プロセス各工程の呼び方と位置付けの違いについて

2018-01-31 16:35:56 | Weblog
1月30日に、
『システム設計の謎を解く 改訂版』出版記念「設計の謎の“本質”を探る」」 ~第4回 本とITを研究する会セミナー~
https://tech-dialoge.doorkeeper.jp/events/69459

に行ってきたんだけど、そこで、表題の件「各社の開発プロセス各工程の呼び方と位置付け」
の表を出していた(詳しくは説明していないけど)

20180130 設計イベント
https://www.slideshare.net/taka1970/20180130-86895935


の10シート目


これは、元ネタがあって、元ネタは

2018年1月定例会
https://redajp.connpass.com/event/75920/

とのこと(上記ページに表が貼ってある)


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

なぜ仮想通貨まで叩かれる?

2018-01-31 10:15:36 | ネットワーク
1つの取引所、1つの通貨が問題起こしただけなのに・・・

なぜ仮想通貨まで叩かれる? 新しい技術の登場を拒絶する日本
http://www.mag2.com/p/news/348415


フェイスブックも・・
フェイスブック、仮想通貨の広告を全面禁止へ ICOも対象、全世界で
https://www.nikkei.com/article/DGXMZO26353710R30C18A1000000/

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

インテルパッチ無効化する緊急アップデート

2018-01-31 01:57:25 | ネットワーク
インテルの脆弱性対策パッチを当てると、
システムが不安定になるという場合があって、
それの対応

マイクロソフト、緊急アップデートを公開 インテルパッチ無効化
https://jp.reuters.com/article/cyber-intel-microsoft-idJPKBN1FJ0J2


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

ステアラボ人工知能セミナーの講演内容の動画のありか

2018-01-30 22:43:30 | Weblog
ステアラボ人工知能セミナー
https://stair.connpass.com/


の資料は、上記のサイトにまとまっているけど、
講演内容の動画もあるみたい。

ここ
STAIR Lab
https://www.youtube.com/channel/UCqK6zjhj120DL2PAYOi4ngg/videos

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Webアプリケーションの脆弱性トップ10公開→炎上

2018-01-30 11:01:39 | ネットワーク
Webセキュリティ関係者必見の「OWASP Top 10」2017年版はなぜ炎上したか
http://itpro.nikkeibp.co.jp/atclact/active/17/081800125/011700005/

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

flaskを使ってpythonでWebAPIを提供する

2018-01-29 10:37:30 | Weblog
前にPythonで、アソシエーション分析を行ったけど、
これを、WebAPIとして提供する方法。




■お題
 指定されたデータに対して、あらかじめ、アソシエーション分析を行い、
 ある商品(以下、対象商品という)が指定されたら、
 その商品をlhsに含むアソシエーションルールを返すWebAPIを提供する

※「○○を買っている人は、XXも買っているとき」
  ○○をlhs
  XXをrhs
 と、以下述べる。lhs,rhsは、1商品とは限らない
 「A,Bを買っている人は、C,D,Eも買う」という組み合わせもOK




■今回の実装の仕様
・入力ファイルは、Rのアソシエーション分析パッケージarulesのなかにある
 GroceriesをCSV書き出ししたものを使う(拡張子を.basketにする)
・サーバー立ち上げ時に上記ファイルを読み込み、アソシエーション分析する
・WebAPIの仕様は、以下の通り
  エンドポイント/getList/対象商品名
 エンドポイントは今回 http://127.0.0.1:5000
・結果はJSON形式でルールのリストの形で返す
 各ルールは、以下の項目の連想配列とする
   lhs
   rhs
   support 支持度
   lift  リフト
   confidence 確信度

【詳細仕様】
・WebAPIを作成するのに、flaskを使う
・基本的に以下のエントリのプログラムを修正して使う

Pythonでのアソシエーション分析
http://blog.goo.ne.jp/xmldtp/e/73fa1d4da410cb2f1cd3eb0f88dc1a54

 また、このエントリで書いた、インストール、データファイル作成はされているものとする
・Windows7に入れたPythonで実行している。実行環境の作り方は
Windowsでのpythonとgitインストール
http://blog.goo.ne.jp/xmldtp/e/38be875ddbd9ebf826fb4821db3b7317
 を参照




■手順
・flaskインストール
・プログラム作成
・起動




■flaskインストール
コマンドラインから
pip install flask
を実行する




■プログラム作成
ソースコードは、以下の通り
# -*- coding: utf-8 -*-
from flask import Flask, jsonify
import Orange
from orangecontrib.associate.fpgrowth import *

#共通変数
datafname = "C:\\Users\\Panasonic\\Desktop\\zikken\\assoc\\source.basket"  # データファイル
assoclist = []   # 結果格納

######################################
# アソシエーション分析を立ち上げ時に行う

print("アソシエーション分析開始")

#データの読み込み
tbl = Orange.data.Table(datafname)

#分析実行
X, mapping = OneHot.encode(tbl)
itemsets = dict(frequent_itemsets(X, 5))
rules = association_rules(itemsets, 0.7)
stats = rules_stats(rules, itemsets, len(X))

def decode_onehot(d):
	items = OneHot.decode(d, tbl, mapping)
	return list(map(lambda v: v[1].name, items))

#結果保存
for s in stats :
	lhs = decode_onehot(s[0])
	rhs = decode_onehot(s[1])
	rec = {"lhs":lhs,"rhs":rhs,"support":s[2],"confidence":s[3],"lift":s[6]}
	assoclist.append(rec)

print("アソシエーション分析終了")


######################################
# REST API

api = Flask(__name__)

# アソシエーションルール取得
# 引数は、対象とする商品
@api.route('/getList/<string:shohin>')
def getList(shohin):
	kekka = []
	for rec in assoclist :
		if shohin in rec["lhs"] :
			kekka.append(rec)
	return jsonify(kekka)

#エラー時のリターン
@api.errorhandler(404)
def not_found(error):
    return jsonify({'error': 'Not found'}), 404

#サーバー起動
if __name__ == '__main__':
    api.run()


これを、今回は、assoctest1.pyという名前で保存した。

※注意
 flask.pyという名前で保存しないこと。
 この名前で保存すると、以下のエラーになる

Traceback (most recent call last):
File "flask.py", line 2, in <module>
from flask import Flask, jsonify
File "C:\Users\Panasonic\Desktop\zikken\assoc\flask.py", line 2, in <module>
from flask import Flask, jsonify
ImportError: cannot import name 'Flask'

 くわしくは
https://qiita.com/AkiyoshiOkano/items/3108d1b7dac9437979c2
 参照




■実行
 データファイルを上記プログラムのdatafnameで指定したところにおいて
 (注意:拡張子は必ず.basketのこと)

コマンドラインから
・assoctest1.pyがあるフォルダにcdして
・python assoctest1.py
を実行する。メッセージがでて、とまるので、そうしたら、ブラウザで
getListを呼び出す。
たとえば
 http://127.0.0.1:5000/getList/tidbits
など

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Windowsでのpythonとgitインストール

2018-01-28 14:37:27 | ネットワーク
前に書いた、
Pythonでのアソシエーション分析
http://blog.goo.ne.jp/xmldtp/e/73fa1d4da410cb2f1cd3eb0f88dc1a54

で、pythonの3と、gitを入れる必要があるんだけど、
いつも使っているパソコンと、違うパソコンに入れて、気がついたことがあったので、メモ




■pythonを入れる→pipがない?

pythonを入れるには、
https://www.python.org/
にいって、downloadから落としてくれば、インストールできる。

で、インストール後、pipを実行しようとするt、
コマンドがないエラーになってしまう。

これは、pythonとpipが違うところに入っていて、
パスが張っていないから。
環境変数で、
PATHに

C:\Users\Panasonic\AppData\Local\Programs\Python\Python36-32\Scripts;C:\Users\Panasonic\AppData\Local\Programs\Python\Python36-32

のように、pythonのありか(上記例では、C:\Users\Panasonic\AppData\Local\Programs\Python\Python36-32\)に加えて、
pipのあるところ(その下のScriptsにある)のパスも加えておくこと。




■gitのインストール

https://git-scm.com/downloads

から落としてきて、インストールすればOK

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

イマドキのApache 2.4とPHP 7.2のインストール(Windows)

2018-01-28 01:10:14 | Weblog
いつも使っているパソコンにコーヒーかけたら、動かなくなってしまい、
昔のパソコン(Windows7)に、Apache 2.4とPHP 7.2のインストールをしたんだけど、
いままでと、ちょっと違ったので、手順をメモ



■apache 2.4のインストール
まず
https://www.apachelounge.com/download/
にいって、ダウンロードする。自分は64ビットマシンなので、
httpd-2.4.29-Win64-VC15.zip
をダウンロードして、解凍した。そうすると、解凍したフォルダの中に

Apache24

というフォルダができるので、これを、Cドライブの直下に自分はおいた
(べつに、ここでなくてもいいけど)

そうしたら、Apache24/binの下にある、httpd.exeを実行する。
・・・って書きたいんだけど、これを実行すると、
「コンピューターにVCRUNTIME140.dll がないため、プログラムを開始できません。」
というエラーが出て実行できない




■Visual C++ 2015 Build Toolsのインストール

 そこで、VC++を入れる(と、VCRUNTIME140.dllが入ってくる)

 それは
Visual C++ 2015 Build Tools
http://landinghub.visualstudio.com/visual-cpp-build-tools

にあるので、ダウンロードして、落としていたexeファイルを実行する。

結構時間かかるけど、それが終わったら、もう一度

Apache24/bin/httpd.exe

を実行する。ウィンドウが開き、そこにメッセージが出て(でないかも)、
実行中になっていればOK
その間にブラウザをひらき、http://127.0.0.1にアクセス

It works!

と出ればOK




■PHPインストール

http://windows.php.net/download#php-7.2
VC15 x64 Thread Safe (2018-Jan-04 07:06:59)

をダウンロードして、phpというフォルダの中に解凍する。
(つまり、phpのフォルダの下に、解凍すると出てくる、devとかlibとかがあるかんじ)

このphpフォルダをCドライブの直下に置く





■各種設定・テストプログラム

・phpフォルダの下にある、php.ini-development(またはphp.ini-production)を
 コピーして、コピーしたファイルの名前をphp.iniにする

・C:\Apache24\confフォルダの下にあるhttpd.confの最後に、以下の内容を追加

LoadModule php7_module c:/php/php7apache2_4.dll
<FilesMatch "\.php$">
  AddHandler php7-script .php
  AddType application/x-httpd-php .php
</FilesMatch>
PHPIniDir "c:/php"



・C:\Apache24\htdocsの下に、以下のコードを書き、phpinfo.phpとして保存する。
<?php
	phpinfo();
?>





■ブラウザ表示
・http://127.0.0.1/phpinfo.phpをブラウザで開き、設定がいろいろ見えたらOK!


【参考】
https://www.adminweb.jp/apache/php/index1.html


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Pythonでのアソシエーション分析

2018-01-27 19:41:20 | AI・BigData
前に、
Rでのアソシエーション分析
http://blog.goo.ne.jp/xmldtp/e/25c3a84112cc266cd399dd96bf41f21a

を書いたけど、Pythonの3でやると、どうなるのかについてのメモ。

基本的にOrangeをつかうんだけど、Python3用のOrangeであるOrange3には、
アソシエーション分析が入っていない。そこで、それを作っている人
から、githubでとってくるんだけど、Orange3を入れるのにVisual C++が
必要だったり。。。と、いろいろ大事なので、メモメモ




■前提
・Pythonの3が入っている





■インストール

(1)Visual C++ 2015 Build Tools
http://landinghub.visualstudio.com/visual-cpp-build-tools
が入っていなかったら、上記URLにいき、
ダウンロード&インストール(Orange3のインストールで使う)

(2)必要なものをpipでインストール 

pip install numpy
pip install pandas
pip install orange3

を実行する
(pip install orangeとすると、エラーになってインストールできない)

(3)さらに(Orange3には、Association分析が入っていないようなので)

Python でアソシエーション分析 - Orange3-Associate
http://fits.hatenablog.com/entry/2018/01/09/211900


にある手順で,Orange3-Associateを入れる。具体的には、以下のコマンド実行

git clone https://github.com/biolab/orange3-associate.git
cd orange3-associate
python setup.py install


そうしたら、そこにorangecontribというフォルダができるから、
そのフォルダをPythonのLibの中に入れる(自分の場合
C:\Users\USER\AppData\Local\Programs\Python\Python36-32\Lib
に入れた)




■プログラムファイルを作成する。

日本語が入っていたら、UTF-8で保存する。
プログラムは、以下の通り
import Orange
from orangecontrib.associate.fpgrowth import *

tbl = Orange.data.Table("C:\\Users\\USER\\Desktop\\flask\\source.basket")
X, mapping = OneHot.encode(tbl)
itemsets = dict(frequent_itemsets(X, 5))
rules = association_rules(itemsets, 0.7)
stats = rules_stats(rules, itemsets, len(X))

def decode_onehot(d):
    items = OneHot.decode(d, tbl, mapping)
    return list(map(lambda v: v[1].name, items))

for s in sorted(stats, key = lambda x: x[6], reverse = True):

    lhs = decode_onehot(s[0])
    rhs = decode_onehot(s[1])

    support = s[2]
    confidence = s[3]
    lift = s[6]

    print(f"lhs = {lhs}, rhs = {rhs}, support = {support}, confidence = {confidence}, lift = {lift}")



上記ソースは、基本的に上述の「Python でアソシエーション分析 - Orange3-Associate」
を踏襲して書いている。
これをhello.pyという名前で保存する。




■データファイルを用意する

1レコード1トランザクション(=1レシート、1バスケット)として、
トランザクション内(レシート内、バスケット内)にある各商品をカンマで区切って
ファイル出力したものを、拡張子.basketとして保存する。

今回は、「Rでのアソシエーション分析」で読み込んだデータGroceriesを、
write(Groceries,file="source.basket",sep=",")
として書き出したものを、利用する。

それが、上記プログラムの
tbl = Orange.data.Table("C:\\Users\\USER\\Desktop\\flask\\source.basket")
のところ




■実行する
python hello.py





こんなかんじ

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

「生命科学は輩出される人材にみあった職がない」っていうけど・・・

2018-01-26 20:40:59 | ネットワーク
たとえば、ITなどは、文系の人が就職しているように、
研究者として就職するのでなければ、
あんまり、学部学科って、関係ないと思う。

そして、大学院を出た人を、募集はしているのよね
(テクノプロ R&Dとか、とめ研究所とか)
ただ研究者の人は、そういうところに勤めようとは考えない。
また、学部学生の卒業者のように、専門関係なしに勤めようとは思わない。


雇用のミスマッチなのよね・・・

【くわしくは】
光と影~31歳教授誕生と36歳任期付き助教の研究不正からみえるもの
https://news.yahoo.co.jp/byline/enokieisuke/20180124-00080798/


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

ブリトニー・スピアーズ さんより、世界的に影響があるといわれる仲川遥香さんって、誰?

2018-01-26 15:29:23 | Twitter
「Twitterで影響力ある10人の女性」日本人で唯一、仲川遥香が2年連続でランクインした理由を探る
https://news.yahoo.co.jp/byline/satohitoshi/20180124-00079798/

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

技術的失業

2018-01-26 01:35:34 | Weblog
技術は職人の神秘を科学に還元して、誰もが手軽に使えるようにしていく。

【引用元(太字は引用)】
Alpha Zeroの衝撃と技術的失業
https://note.mu/issei_y/n/nf95db8205da3

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

新元号の発表はいつに・・・

2018-01-25 20:38:50 | Weblog
「あまり早いと盛り上がらなくなる」

いや、そういう問題じゃないから、

盛り上げなくていいから・・・

【引用元(太字は引用)】
新元号の発表はいつになるのか…。現役SE「システム屋を殺す気か」と悲鳴
http://www.huffingtonpost.jp/2018/01/23/new-gengou_a_23341471/

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Rでのアソシエーション分析

2018-01-25 15:07:20 | Weblog
いろいろ書いてあるサイトがあるんだけど、
Rのパッケージには、Groceriesっていうバスケット分析用の
データが入っているので、簡単にやるのなら、以下のコマンドだけでいい。

install.packages("arules")
library(arules)
data(Groceries)
rules <- apriori(Groceries, parameter = list(support = 0.005, confidence = 0.01))

inspect(rules[1:100])


ここで指定してる、support(支持率)、confidence(確信度)について、くわしくは
http://sinhrks.hatenablog.com/entry/2014/12/12/081841

最後の
inspect(rules[1:100])
で、1位から100位までを表示している。[1:100]を入れないと、最後のほうしか見れない。

ファイルに書き出すには、
write(rules,file="data.csv", sep=",", col.names=NA)

なお、
write(Groceries,file="source.csv",sep=",")
とすると、サンプルデータGroceriesが書き出せる。これは、1レコード1バスケット内の商品の羅列になっている。

この形式のファイルを読みだすには、
# スーパーマーケットの買い物かごのデータをトランザクションとして読み込む
tranPosData <- read.transactions(posData, sep=",", rm.duplicates=TRUE)
詳しくは(引用元)https://qiita.com/uchim/items/8a532945a1fb2f068b5a

レコード形式を、この形式に変換するには
#トランザクションデータに変換
data.tran<-as(as.matrix(df[2:(ncol(df)]),”transactions”)
詳しくはhttps://www.gixo.jp/blog/3920/


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする