コピペで栄養管理

栄養学を数学、物理学、生化学、分子生物学、医学や情報科学の観点から考える場所です。

確率変数

2017-01-25 19:41:00 | Weblog

昔メモってたのを見つけたので、まあ保存も兼ねてここに書いておきます。


栄養士さんがまず、理解に苦しむだろうなって思うのが確率変数です。

確率変数 X なんてよく見ますが、実は関数です。例えば 長さが1の正方形を考えて、その点が患者さんを表すとすると、正方形の点はある観測値(患者さんの何かの観測データ)を持ってるとすれば、正方形の点の集合から実数への関数が作れます。
これが確率変数です。今これをXで表すと、観測値がaと言う人の人数を総数で割ったものが確率ですが、今の場合それが観測値がaという点の集合の面積に当たります。
普通、面積と言わずに測度というのです。aの値に対して、その観測値を持つ人たちのつまり正方形の中の点の集合の面積(測度)を対応させたものが、確率分布です。

確率変数が、正規分布に従うとは、今考えた、確率分布が正規分布になってる場合を言います。
今、観測値を二つとってきたとします。それ自体は数ですが、これは 何らかの確率分布に従う別々の確率変数 X Y と見るんですね。たいてい正規分布に従っているとしてますよね。 
観測値の平均は (X+Y)/2 という新しい確率変数を考えてることになります。この新しい確率変数がどんな確率分布に従うかは計算でわかります。

よくやるのはt値を計算して、そうするとこれに対応する確率変数が今計算した値になった、この確率変数の確率分布はわかっているので、計算で求めたt値がどんな確率で出てくるかわかる、
例えば、5%以下の確率だったら、普通起こらないことと考えて、でも実際その数値が出てきたんだから起こった、起こるはずのない数値が出てきたんだから矛盾と言うのが帰無仮説の話ですよね。大抵この場合は、予め何かを仮定していて、背理法でその仮定の否定が正しいことを主張するわけですよね。

数値をいじってるようで、実は確率変数を足したり引いたりして、新しい確率変数を作り出して、その確率分布が計算できるから、それが起きそうな確率のところのとる値が信頼区間です。
でもなかなか理解できないだろうなあ、って思います。こんな関数、高校の数学では、出てこないですから。
ついでに書いておくと、確率変数(X+Y)/2 は 正方形の点の 二つのペア に 実数の値が対応した関数です(正方形の集合の二つの直積集合から実数の集合への関数) この場合の面積というか測度は それぞれの測度の積です。

n個の観測値の平均だったらn個の正方形のペアですが、では、大数の法則はどうなるか? nを無限大に飛ばすんですよね。この際、あらかじめ正方形の無限個のぺア(無限個の直積集合)は作れますが、この場合の測度は?
ある条件を満たせば作れるそうですが、その条件をちゃんとチェックするのが確率論、しないのが統計学なんだそうです。コルモゴロフの拡張定理というのだそうです。

少し専門的になりますが、定理を見る限り、射影極限(Projective Limit) をとってるように見えます。そうなってるというのが、条件のような、ちなみに今の場合は、成り立ってるので、測度は作れます。(この条件なしでも、もっと難しい手法(関数解析的な手法らしい)でも測度は定義できるらしいのですが)。

確率変数をちゃんと定義しておくと

Ω 空でない集合
m Ω上の確率測度 (つまり m(Ω)=1 なる測度)

確率変数 Xは、 Ωから実数 への(可測)関数  で定義されます
確率分布 f は、 f(a)=m(X^{-1}({a}) で定義できます。(ただしX^{-1} は逆像)

となります。

ベイズ統計について

2017-01-22 10:54:55 | Weblog
ここでも、何回かベイズ統計について触れてますが、当時は栄養士さんたちが統計学を理解するための補助として、まだ医療統計の世界で、検定ばっかりしか見当たらなかったというか、あったとしても、栄養士さんが使って論文を書くために、使えなるようになるのは大変だという観点から、私もあまりかかわらないで、来ました。

ここ最近、ビッグデータの利用や、それに伴って、深層学習といった話題が急に騒がれるようになって、その関連性からしても、重要になってきてるので、いままですっきりしなかった部分をすっきりさせるためにも、まとめてみました。

データアナリシスこれからどんどん、活発になるでしょうね。また医療統計もベイズ統計が頻繁に使われるようになっていくんでしょうね。


ベイズ統計学について まとめてみたいと思います。

皆さんは回帰分析とか使われると思いますが、これは、散布図の点に一番近い直線を当てはめるわけです。直線を与えて、直線で予想される点の値との距離を全部はかって、それが最小になるように直線の傾きと切片を決めます。いわゆる最小二乗法です。

この距離が最小になる直線は必ず存在します。これは、数学的に保証されていて、傾きと切片の値から距離を与える関数は連続なので、有界閉区間(コンパクト集合)上の連続関数は必ず最小値をもつという、定理からしたがい、最小値は極値なので、微分係数がゼロのところを求めればよいわけでもとまります。ただし、最小値を与えてもその解で与えられる直線が、あてはまりがいいかって言うとそれはまた別問題で、そのために決定係数というのがあったわけです。

さて、ロジスティック回帰分析の場合は、最小二乗法でなく尤度をもとめます。これはある事象が起こる確率を求めようとしてるので、その確率を決めたとき.,観測されたデータが起きる確率をその決めた確率のもとで計算します。これが尤度ですが、すでにそういうデータが得られたということは、そのデータが起こる確率が一番高い確率が答えだろうと考えるわけです。

言い換えれば、尤度が一番高くなる確率を求めることで、答えを出そうとします。これが最尤法で、仮に求める事象が正規分布にしたがっているのなら、こ場合の最尤法はは最小二乗法と等価になります。つまりこちらの方が一般化になっており、その意味で一般化線形モデルともよばれます。これも尤度が関数として求まれば、先ほどと同じ議論で微分係数が0のところで求まります。

さて、尤度が、関数として求められない場合、どうするでしょうか?

ここで尤度の意味を解釈し直します。尤度は、事象が起きる確率がある値と定めたときの観測データの起きる確率です 例えば表、裏 それれぞれ、出る確率が1/3 2/3のコインを5回投げて表が一回は 5*(1/3)(2/3)^4 です

これは 表裏の出る確率をが1/3 2/3となったときに表が1回だけ出る条件付確率と解釈できます。さらにベイズの定理を使って、表が1回だけ出るというデータが出たときに表裏の出る確率が1/3 2/3であることが起きる条件付確率と解釈できます。

この最後の条件付き確率を事後確率と言います。つまりある実験をして観測されたデータのもとで、知りたい確率の値がある値であるときの確率をすべて求めてあげるわけです

つまり、求めたい確率の値は観測データのもとでの事後確率の確率分布に従う確率変数と見れます。この求める確率の値をランダムに発生させます。

ただし、算出された値をもとにしてある一定のルールでのランダムさです。前の点だけの影響を受けたランダム性ですから、言ってみれば前の起こった事象にだけに、次に起こる事象の確率は左右されるので、こういうのをマルコフ性といって、この部分で確率論で言うマルコフ過程が使われています。

こうやって、つぎつぎと値を算出していくと最初はそうでなくても、ずーと繰り替えして行っていくうちに、出てくる値は、求めたい事後確率の確率分布に従います。

このように、求めたい確率分布をサンプリングして、そのサンプリングデータやその確率分布をもとにして最尤法で求められなかった内容が求められるようにしていく方法を、マルコフチェーン・モンテカルロ法(MCMC法)といいます。

ここで、事後確率として解釈する際に確率の意味が変わってくるんですね。求めるのは、ある観測データのもとでの確率であって、普遍的な確率でない。母集団みたいな、無限の先みたいな存在がない、また、事後確率のほかに事前確率というのがあるのですが、これが意味不明の確率だったりします。

でも、コンピュータのおかげで、サンプリングが出きるようになって、本来、ベイズ統計学は、標準的な統計学よりも先に生まれていたのですが、いま急に日の目を見るようになってきてるわけです。

やさしく学べる線形代数

2013-09-21 11:28:03 | 栄養士のための数学
やさしく学べる線形代数  石村園子著  共立出版 2000円

ですが、いろんな書評で評判がいいですね。これは文系向けの本だとおもいます。

文系でも、統計は必要、その際、多変量解析、つまり重回帰分析や因子分析を行う際に必要な知識として行列の知識があります。つまり、統計をやる際に、この本の内容は避けては通れません。

でも、今度の高校の新課程では行列は消えちゃいました。理系なら線形代数は必修でしょうけど、文系は。。。  それで、いきなり統計、SPSS なんか、エビンデンスってこわーーーい。

まあ、そういうニーズからもこの本は重要かな。

書評によく見かけるように、普通、線形代数の授業は、ちんぷんかんぷんらしい。その際、この本で、線形代数の単位をとれたというのが多い、

では、なぜ、やさしく感じるか?  いくつか理由が考えれます。

1.まず、絵というか、図が多い。 行列がたくさん書かれてます。たがら、見た目にわかりやすい。うーーん、これが困るのは、本来計算は、成分でやるのが楽なんだけど、そうすると、Σや、文字の下に最低二つのインデックスがついてきますので、これが苦手って人が多いんだと思う。


2. 複素数を扱っていない。一般に対角化は固有値が複素数ですから、複素化しないといけないが、対称行列だけに限れば、実数の範囲で、問題ない。因子分析等につかう場合もこの場合なので、複素数を扱ってない。

2のおかげで、ベクトルの意味は具体的なままで済む、複素ベクトルとかだと、幾何学的に意味を考えにくく、しっかり形式的な証明が重要になるが、そうなると1がからんできて難しくなる。

だいたいこんな感じ。

フリーの栄養ツール

2012-08-03 12:51:34 | Weblog
前から、フリーの栄養ツールを考えてますが、そのことについて、整理してみます。

一般に、栄養管理ソフトがなかなか、使いにくいのは次の点

1.ちゃんと機能がついたものは高い! フリーでない!

2.メニューを毎回書くのが面倒。


1については、いままでもいろいろ書いてきました。データ(食品成分表など)がフリーでないこと、これは非常な障害です。もし、フリーなプレーンテキストな電子データがあれば、誰でもソフトが作れるわけですから。

ここでは2について

家庭の献立でも、規則性があるはず、その規則さえわかれば、施設のサイクリックメニューに使われているノウハウは使うことはできる。

ここで、工夫が必要になって、このあたりが栄養士さんたちの知恵を借りたいところです。

メニューの入力は、苦痛です。でもある程度ちゃんとしないと正確な栄養計算が行えない。

で、やりかたは別として、いろんな手段はあります。

(1). 正規表現 これは 文字はPCでは自由に膨らませることができます。また自動化もできます。この辺はRubyとかPerlといった、道具で可能です。ただ、どうやるかの知恵がいる。

(2). 入力するのではなく、画像から判断する。これは、「健康アシスト」というスマホの無料アプリがあります(iphone, android 両方あります)。これは、食事バランスガイドにそって、画像から計算してくれます。


このアプリは、画像の色のビットパターンからたべものの 主菜副菜とそのSVポイントをわりだして計算するものです。原理はビットパターンから主菜副菜とそのSVポイントを機械学習をつかってます。この辺は放送大学の「データから知識発見」12回 バックプロパゲーション ( 機械学習の教師ありの場合)の話が一番わかりやすいです。

この放送大学の授業は、フリー統計ソフトRの具体的な使いかたが学べて良い授業です。

http://www.ouj.ac.jp/hp/kamoku/H26/kyouyou/B/joho/1554522.html

(R で やるので、 Rのよい入門になると思います。)

(http://www.is.ouj.ac.jp/lec/data/C02/index.html  は授業のデータやスライドがあるみたい)

ただし、今の場合 最急降下法 の持つ欠点、つまり局所解しか与えない点は、カーネル法を使うことによって、解消されています。カーネル法は、空間の点が曲線を描いていても、高次元(無限次元のヒルベルト空間)を考えて、先ほどの点が、この高次元の点と思えるようにします。具体的には、最初の空間の関数なす空間がベクトル空間になるのが、ヒルベルト空間ですが、再生核を持つようなヒルベルト空間を考えることで、最初の空間の点が、その空間の関数と思えるようになります(なんかディラックのδ関数っぽいですが、ものは違います。δ関数の2乗は定義できないから) だけど、ちょうど点としての役割を持つのでそれを使って、そうすれば普通の空間では曲線を描く点でも高次元側では線形の議論だけで済んでしまう。このことから、局所解ではなくなる(多分(^^;)

だけど、機械学習は入力のデータから出力のデータがでる部分は完全にブラックボックス。したがって主菜副菜とそのSVポイント以上の内容を期待しても難しい。

ただ、バランスガイドからどれだけ正確に栄養計算ができるか? を調べる必要がある。

これは、普通は栄養士さんは、バランスガイドと食品交換表はかなり差があると考えがち、実際に糖尿病の交換表でもかなりバランスガイドはラフ、腎症となるともっと問題。

ただ、まず糖尿病の交換表の場合、固定される部分をしっかり見極めれば、可変の部分は表1表3のみだから、この部分とバランスガイドとの関係を統計処理を行えばよい。

成分表から計算しない場合、どんな方法も、計算を単純化している工夫は同じ、つまり栄養計算はベクトルの計算、まじめにやると33次元あたりになるけど
それを単純化している、そのやりかたは、似た者どうしを集める、つまりクラスター分析して、その重心でみている。あるいは因子分析とみてもよい。要は、どういう集め方をしたか? それだけです。だから、その特性をちゃんと見てあげれば、統計処理は可能なはず。

問題はそういう話が栄養士さんたちによって、やられてないというだけのこと。
ただ、多変量解析なので、数学がかなり知識がいるので、やられてないだけだけど、アイデアは栄養士さんはもってると思う。


メニューの入力が単純化できて、日々栄養計算が可能になると、かなり変わってくると思う。





帰無仮説と背理法 第1種 第2種の誤り 検出力

2010-10-28 13:31:21 | 栄養士のための数学
これも、栄養士さんが苦手そうなので書いておきます。 

ある二つの集団の平均値に差があるかしりたい時、まず差がない、つまり平均値は等しいと仮定します。そして平均値が等しいとして、二つの集団からのデータを統計処理します。この際、標準偏差の情報がどれだけこの二つの集団でわかってるかで、やり方は違いますが、数値を求めます。これにたいし、この数値が起きる確率を調べます。これがT分布などですね。その結果、例えば5%を棄却点と定めると。確率5%以下のばあいは、起こらないこととみなすわけです。 だから 求めた数字が5%を下回れば、おこらはないはずの低い確率の内容が、起きてしまった!! ということで矛盾を導くわけです。

こんな矛盾が起きたのは、最初に平均値が同じだと仮定したことが原因ですから、この仮定がまちがってるので、平均に差がある と 主張するわけです。

だから、いいたいことの反対を仮定します。そして矛盾をだして、その仮定を棄却するわけです。仮定を無に帰すわけですから。この仮定のことを帰無仮説とよびます。

だから矛盾が起きるためには、求めた確率が 棄却点の確率(今の場合は5%)より小さい必要があります。


この論法は 背理法なわけです。
背理法は 何かを示したいとき、示したい内容の 否定を仮定する

仮定したことを使って、 演繹してしていって、矛盾がでてくる。 矛盾が出たのは 変な仮定をしたからだから

仮定したことがが間違っていた、 だから 示したいことが正しいといえる わけです。



たとえば √2が 無理数だといいたい  そこで 無理数でないと仮定する(つまり 有理数)

有理数は n/m と分数でかける あらかじめ約分しておく だから 公約数はない

2m^2 = n^2

n^2 は 2で割れる、  ということは n自体が 2で割れる

そうすると n^2 は 4で割れる  そうすると m^2 も 2で割れるから m も2で割れる

そうすると  m ,n は ともに2で割れるから 公約数がつくれちゃう。 公約数がないことと矛盾

だから 最初の仮定が まずかったので、  √2は 無理数 っていえた。



さて、もう一回 平均値に差があるかの話に戻りましょう。



今の場合は、 平均が違うこといいたいわけだから  違わないと仮定して、矛盾をだしたい。

平均が等しいという前提で、観測したデータからある値を計算すると、その値が起きる確率が計算できる。

5% より低ければ、  起きないことが 実際 起きたわけだから 矛盾なわけだよね。 そこで5%のリスクはあるけど、 背理法で 仮定を間違ってるとして、 平均にさがあるとできるわけ。

では、 5%より 大きい確率だったら この場合は起こっても不思議でないということになりますから 矛盾がでない。

だから 仮定が間違っていると主張できない。


背理法で矛盾が導けなかっただけです。だからもしかすると、もっと努力したら、矛盾が見つかるかもしれないし、本当に仮定が正しいのかもしれません、この段階では、わかりません。


矛盾がおきれば背理法で仮定がまちがいと主張して、平均値に差があると主張できますが、ただし5%は起きるということを0%としてみてるわけですから 5%のリスクを背負ってます。もし5%のことが起きてるのだとしたら、仮定を棄却したことは、まちがいで、平均値に差がないのに、差があると間違って主張したことになります。これを第一種の誤りといいます。


それにたいし、5%以上だったとき、つまり仮定が棄却できなかった時、じゃあ、仮定は正しいか?というと、先ほどの議論からは、わかりません。もし、えーい、仮定は正しい!!
って、無理やったなら、ホントは仮定が正しくないばあいもあるのに、正しいとしたのですから、間違ってる可能性があります。この誤りを第2種の誤りといいます。

第2種の誤りをなるべく犯したくない、それで、仮定を正しいと結論づけることにどれだけの信頼度があるかをはかる一つの量として、検出力というものがあります。この数値を計算してみて、それで、仮定が正しいかを考えないといけません。


交絡について

2010-10-23 20:28:59 | 栄養士のための数学
交絡について、訊かれていたので、少しまとめてみました
http://">http://ja.wikipedia.org/wiki/%E4%BA%A4%E7%B5%A1

が、正しいのかな、いろいろみると、違うのもあるのですが、統計学関係の方が書いたものが正しいと考えた方がいい。

看護関係、医療関係であるものは、多分間違って書いていると思います。

えっと、まず上のURLからの定義の引用です。

交絡(こうらく、英: Confounding)は、統計モデルの中の従属変数と独立変数の両方に(肯定的または否定的に)相関する外部変数が存在すること。そのような外部変数を交絡変数(confounding variable)、交絡因子(confounding factor、confounder)、潜伏変数(lurking variable)などと呼ぶ。したがって科学的研究では、第一種過誤(従属変数が独立変数との因果関係にあるという偽陽性の結論)と呼ばれるこれらの要因を避けるよう制御する必要がある。2つの観測された変数のそのような関係を擬似相関という。すなわち交絡が存在する場合、観測された現象の真の原因は交絡変数であるにも関わらず、独立変数を原因と推論してしまう。

とあります。

つまり 相関係数が a(t) というように パラメータ t をもつ 状況を考えます。つまり、パラーメータ付きの写像なわわけで、いま 相関を x と y に関してとるとすると

本来   (x,t) -----> ( a(t)x , t) という形になってます。(y=a(t)x  です)

技巧的ですが、t というパラメータを x, y 側にもつけて t が違うときの x y を 区別させています。

a(t)x は a(t) が 相関係数なのですが、これは t によって、値が変わります。

で、さらに今は x も y も、t の関数で x=bt y=ct という形で表されていると仮定します。 


このとき  a(t)=c/b 思いやすいのですが、これは、違います。t、x、y に書いてる式は あくまで相関です。これは x(s) という s は母集団の元でその時の x の値
という 関数の 平均 E(x(・)) です。 t に対して x そのものの値は t と x に因果性があれば x(t) と書けますが、そうでない限り書けません。 x(s) の平均に関しての t との関係です (正確には t(s) で t の側も平均をとらないといけないが煩雑なのでやめます)

あくまで、相関の式は平均値に関しての式です。だから上述の式は正式には
( E(x(・)) , t ) -----> ( a(t)E(x(・))x , t )
と書かないといけません。ただ煩雑なので、普通は書かない。

それに対し、因果の式は x(t) という風に t の状態で完全に x の状態が決まります。つまり関数 x(t)  と書けるのです。

本来、相関は、その二つに因果性 つまり、 x(t) という関数があるか?を調べるために第一段階として、みるのですが、相関があるからといって、x(t) があるとはいえないのです。x(t) はそう簡単には、わかりませんからね。そして x(t) が書けたら、どうして、そういう式が出てくるのか? 別の原理から導かれる必要があります。ま、微分方程式とかいろいろでしょう。そういやって、なるべく、単純な原理から導かれるようしていくのが、大切です。

今の場合はxとt それから y と t に相関があって、さらに x (t) y(t) と書けて 因果性もある可能性が高い場合(つまり、t で完全に x, y が決まるという因果性が存在してる可能性が高い)

この場合  もし、因果性があるのなら x(t) y(t) すべてtがわかれば、決まってしまいますから、x(t) と y(t) の関係もそれでわかってしまします。  かりに x と y に相関があっても、それは、相関であって 因果性ではありません。x で y は決まっていない。それは x(t) に逆関数が存在するとはいえないからです。

こういう状態のtを交絡といっているのです。

一方、医療関係、看護関係の方が書いてる文章をみると、相関が x と y にあって、べつに t とも y は相関があって、t の影響が強いと書かれてます。どうやら、 多重回帰モデル

(x,t) ---> ax + bt つまり y=ax+bt という R^2 から R への線形写像

(a,b) という 偏相関係数たちでできる行列でbの値が大きい場合ををイメージしているようですが、これは間違ってます。

なぜ違っているかというと、x と y の相関が強くてもいいのです。ただ問題にしているのは、x と y の因果性です。因果性は全く触れられていません。そもそも、二つの概念を混同しているように見受けられます。 それともう一つの問題点は、 これだと、t が一定で x の値が変わると y も変化しますが、 パラメーターモデルでは、y は変化しません。t のみで決まる y(t) という関数です。x が変化するときは、t も変化する場合が多く、そのため相関をとれば、結果として、E(y(・)) が増えてるだけです。 そういう場合を考えているのです。しかも 今は。ちゃんと因果性を問題にしているのです。 x は見かけ上関わってるように見えますが、本当にか変わってるのはt x は無関係 そういう場合を拾おうとしてるわけです。従って、多重回帰モデルは、適切ではありません。

おそらく、数式をつかわない限り、なかなかすっきり書けない。それが 因果性と相関性を混同している大きな原因かもしれませんが。

別のイメージをいうと

パラメータ t の直線上の点に対してそれぞれ垂直に x の状態を表す直線が各点ごとに刺さってる。刺さってる直線を ファイバーっていいます。 t の各点に x の状態が決まりますから、x(t) は 一つの曲線を描きます。こういうの断面っていいます。t の直線を、平面で考えてると 面ですからね。

 y 側も同様です。 それだけなのです。この二つの断面にはなにもないです。ただ、相関とってみたら、相関があっただけのこと。ファイバーバンドル( t とそのファイバーでできる空間をこういいます)どうしに、一般には、バンドル写像はないのです。

こういう状況があることを気をつけなさい。 こういう t を見つけなさいというのが、交絡です。

Google App Engine 2

2010-10-07 08:59:24 | Weblog
さてさて Google App Engine ですが 以下の説明が分かりやすかったです。

http://tech.topgate.co.jp/googleappengine?gclid=CKvP3PiQvaQCFQZBbgodZCjy0Q

Google本家のGoogle App Engine のチュートリアルは、よくできており、そのままやれば、いろいろわかると思います、是非是非チャレンジを!

一番引っかかるのは、PATHの設定ですね。

Pythonでは必要ないですが、Javaでは JDKをインストールした際に、必要になります。

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1010524710

が、わかりやすいかな。

フォルダー(ディレクトリーと言った方が普通!)とかの扱いは、ロッキーさんの豆講義
に私が書いた記事がありますので、そちらを読んでください。ブール代数についてもふれてます

ちいさな図書館 で Googole で検索すればみつかります。

Javaの場合 JAVA_HOME や ANT_HOME といった環境変数を定義しておいた方がいいかもしれません。それぞれインストールされたフォルダーというか、ディレクトリーを書けばいいのです。PATHも一つの環境変数です。

これらの変数は、プログラムが参照してここから情報を引き出すわけですね。

Java版はEclipseを使かった方が簡単です。すべて、前述の

http://barbra-coco.dyndns.org/eiyou/google-app-engine/

に Javaの中においてます。

これで、簡単なWebがつくれ、データーベースに格納されます。Google側のサーバー以外に開発用にローカルのちっちゃなサーバーが付属してますので、そちらで、いろいろためすわけですが、これだけでもいろいろ使えると思います。

さて、ここから重要ですが、 凝ったものは、Webフレームワークが必要です。

Pythonは Django ですが、Javaにはまだないようです。JSPでつくるのは現実的ではない。ただJava側はまだ日が浅いので、これからだと思います。

もう一つ、大切な点は 最初に紹介した Google App Engine の 説明にあるように、データーベースは RDBではありません。 BigTableという Googleが独自に開発した形式のデーターベースです。こうなると、 Hibernateや Activerecord といった ORMツールはつかえない、そうなると既存のWebアプリはそれを前提で作ってますから、ここが勝手が違うようです。

ま、とりあえず、そういう違いがあることだけ、頭にいれておいてください。RDBでなく、BIgTableのおかげでおおきなデータベースが存在するわけですから、必要になったらその辺を勉強すればいいだけです。

現在、BigTableについて書いてある本(和書)を入手しようしてます。

Google App Engine について 

2010-10-07 08:53:24 | 栄養士とコンピュータ
これは、ちいさなものならば、おそらく無料で、データベースが使える環境を提供していういるもので、アマゾンやM社も同じようなことをやっています。いわゆるクラウド・コンピューティングです。

栄養士さんにとってはレシビの共有や、いろんなことにつかえるのでは? って思います。

本としては

新人プログラマのためのGoogle App Engineクラウド・アプリケーション開発講座―JAVA PYTHON対応



Googole App Engine

をあげておきます。

Python と Java の両方でやっていきます。 多分最初の本は突つきやすいと思います。インストールに関しては、今のバージョンは、

Python は バージョン 2.5.4 
Javaの SDKは 最新ならOK(1.6..0以上かなあ)
Eclipse は 3.3 から 3.5 というとこですね

とりあえず

http://barbra-coco.dyndns.org/eiyou/google-app-engine

にいろいろおいてます。


とりあえず ここからだとおもいます。

http://code.google.com/intl/ja/appengine/docs/python/gettingstarted/introduction.html


これは、pythonでの場合です。簡単ですので、誰でもできると思います。

helloworld example 結構楽しいです。 Pythonについてとりわけしらなくてもできます。 なれていくうちに、だんだん書いてる内容にも慣れてきます。

Lucene は使えると思う

2010-10-07 08:51:24 | 栄養士とJava
Luceneは いろいろ解析してインデックスをつくって、そのインデックスをもとに何かお仕事させるといった内容、解析、インデックスやお仕事は、いろんな意味が入れられます。だから繰り返しのルーチン非常に抽象化して拡張したツールといえるのかな。

Luceneの日本語の本は文検索に特化しすぎ、やはりLucene in Action を読むのがいい。このライブラリ、いろいろつかえると思う。

1st Edition の sample codeのファイルをとってきて、ant ってやったらエラーでまくり、これは
apache project のライブラリーが一個なかったのが原因 xerces.jar をとってきて、入れたら、あっさり通った!!

ant test ひとつだけ引っかかった。おなじことWindows環境でやったら、Testの環境、つまりJunitのライブラリーがないと文句言われて、それを修正。こんどは、ant test も全部Testがクリアー。え?なんで???

こういうJavaのツールだけでいろんなことができそう。Eclipse は重いけど、antやmaven ならminiノートで、しかもかなり何年かまえの機械でも、じゅうぶん遊べますね。

Free

2010-10-07 08:39:23 | Weblog
Free という本をご存知でしょうか? ベストセラーだそうです。

オープンソースの影響で、 OpenOffice.org や Twitter , Facebook とか、最近はNew York Timesの Web版とか、 クラウドコンピューティング例えば Google App Engine とか いろいろなものが Free(ただ)であります。

 この本の、Free as weapon って節に、ラジオ曲と アーティストを仕切ってるところの関係というのが出てきます。

ラジオがでてきたころ、音楽はスタジオで生演奏だったらしいです。アーティスト仕切ってる会社は主要アーティストを独占状態でしたから、権力があって、ラジオ会社に放送すれば、コンサートに多くの人を詰め込んで、きかせることと同じだから、広告料などのラジオ局にはいる収入の何パーセントかを要求し、更新ごとにあげていくことを臭わせました。
ここで、レコードがでてきて、ラジオ曲はレコード中心になっていくようです。裁判で、自由にレコードをかけられるように保証されて、こうなると、あちらさんは、ビング・クロスビーなどの主要なアーティストに、新しいレコード作らせない方向へ。

そこで、こんどは、BMIをラジオ局は設立して、それまで人気のなかった、R&Bなどのシンガーのレコードをかけるようになった。かれは、管理されてなかったので、むしろ、お金より、レコードをかけてもらって、名前を売って欲しかった、ここで、あたらしいビジネスモデルができます。ただでレコードかけてもらうことで、レコードの売り上げや、コンサートへの動員がふえる。

そして、これが今日のR&Bの隆盛を築き、また、新しいビジネスモデルを作ることで、主要アーティスト管理していた会社は、衰退していくわけですよね。

栄養士さんにあてはめてみるとおもしろいかも、レコードって、栄養指導の自動化、電子化でないかしらん。だれでも栄養管理ができる。 そういうことのような。。。