ryotan blog

興味の対象はPython、Django、Angular、Ionic、機械学習、ディープラーニング、UX、UI、CX、デザインシンキング、ティール組織、など。

【Django】モデルフィールドを任意入力項目に(nullとblank)

Djangoのモデルフィールドで入力が必須でないようにする場合は、二つのオプションをセットする必要がある。

class hogeModel(models.Model):
    fuga = models.CharField(max_length=100, blank=True, null=True)
  • blank: フォームで空欄を許すかどうか
  • null: データベースでnullを許すかどうか

どちらかだけをTrueにするというのはあまり活用機会がなさそう。

【機械学習】Random Forestのハイパーパラメータチューニング

Random Forestのハイパーパラメータチューニングについて、下記記事が参考になったので概要抜粋します。 www.analyticsvidhya.com

モデルの予測パワーを上げるためのパラメータは3つ

1. max_features

  • 各ツリーで使われる特徴量の数。デフォルト値はsqrt。
  • max_featuresを増やすと各ツリーの精度は向上するが、ツリーごとの多様性が小さくなるため、必ずしも全体の性能を向上させるとは限らない。
  • max_featuresを増やすと計算時間がかかるようになる。
  • 上記より、最適なmax_featuresの値はバランスをとって考慮する必要がある。

2. n_estimators

  • ツリーの数。
  • 一般的に、ツリーの数を大きくするとパフォーマンスは向上するが、計算時間はかかる。
  • コンピュータが計算可能な可能な限りこの値を大きくすることで、予測の精度と安定性が向上する。

3. min_sample_leaf

  • "leaf"の最小値。leafとは、決定木の先端のノードのこと。
  • leafのサイズを小さくすると、トレーニングデータのノイズに敏感になる傾向がある。
  • 著者は「50以上」にすることを推奨している。また、色々なサイズで試してみるのが良いだろうとのこと。

Gradient Boostingと比較して

Gradient Boostingと比較して、Random Forestの方がチューニングするパラメータの数は少なくすみそう。 参考にした記事の内容もRandom Forestの方があっさりしていた。

チューニングなしで使うならRandom Forestもありかもしれない。 (ただし、チューニングなしでもGradient Boostingの方が性能が出ることも多そうだが。。)

参考までにGradient Boostingのパラメータチューニングに関する記事↓ rn17.hatenablog.com

【機械学習】Gradient Boostingのハイパーパラメータチューニング

以下サイトにて、GradientBoostingのハイパーパラメータのチューニング方法が掲載されていましたので、下記に整理しました。 www.analyticsvidhya.com

ハイパーパラメータは3種類

  • 木固有のパラメータ(Tree-Specific Parameters)
    • モデルの各々の木に影響を与えるパラメータ
  • ブースティングパラメータ(Boosting Parameters)
    • モデルのブースティングオペレーションい影響を与えるパラメータ
  • その他のパラメータ(Miscellaneous Parameters)
    • その他のパラメータ

木固有のパラメータ

  1. min_samples_split
  2. min_samples_leaf
  3. min_weight_fraction_leaf
  4. max_depth
  5. max_leaf_nodes
  6. max_features

ブースティングパラメータ

  1. learning_rate
  2. n_estimators
  3. subsample

その他のパラメータ

  1. loss
  2. init
  3. random_state
  4. verbose
  5. warm_start
  6. presort

ハイパーパラメータのチューニング方法

まずは大きめのlearning_rate(0.05-0.2)と小さめのn_estimators(40-70)で始め、木固有のパラメータを調整し、learning_rateを小さく(n_estimatorsを比例的に大きく)する、という流れ。

  1. 比較的大きなlearning_rateを設定。デフォルトは0.1だが、0.05から0.2でも上手くいくことがある。
  2. 木の数を最適化する。高速に保つために40〜70程度にしておく。
  3. 木固有パラメータを調整する。
  4. 比例的にlearning rateを小さく、木の数を大きくして、ロバストなモデルを得る。(learning_rateを2分の1にしたら、木の数を2倍にする)

本文の例では、まず1でlearning_rate=0.1、2でn_estimators=60に設定してから3で木固有パラメータを調整。 4でlearning_rateを20分の1の0.005n_estimatorsを20倍の1,200(パフォーマンスの問題で、最終的には1,500)にしている。n_estimatorsの調整など、最終的に良いパフォーマンスが出るまで試行錯誤するというイメージなのだろう。

【読書メモ】日本語の作文技術

はじめに

本書では読む側にとってわかりやすい文章を書くための「技術」を紹介する.

修飾する言葉とされる言葉を離しすぎない

×私は小林が中村が鈴木が死んだ現場にいたと証言したのかと思った.
○鈴木が死んだ現場に中村がいたと小林が証言したのかと私は思った.

否定の言葉を修飾するときは特に注意

×シンガポール海峡は,東京湾,瀬戸内のように対向船が違うルートを運行するよう航路が分離されていない.

修飾の順序の4つの原則

1.節を先にし,句をあとにする

×速くライトを消して止まらずに走る
○ライトを消して止まらずに速く走る

2.長い修飾語は前に,短い修飾語は後に

×明日は雨だとこの地方の自然に長くなじんできた私は直感した.
○この地方の自然に長くなじんできた私は明日は雨だと直感した.

3.大状況から,重大なものから

×小さな点となって日本列島の上空に花子の放った風船が消えていった.
○花子の放った風船が日本列島の上空に小さな点となって消えていった.

4.親和度(なじみ)の強弱による配置転換

×初夏のみどりがもえる夕日に照り映えた.
○もえる夕日に初夏のみどりが照り映えた.

テン(読点)のうちかた

  • 渡辺刑事は,血まみれになって逃げ出した賊を追いかけた.
  • 渡辺刑事は血まみれになって,逃げ出した賊を追いかけた.

長い修飾語が二つ以上あるとき,その境界にテンをうつ

×病名が心筋硬そくだと元気にまかせて,過労をかさねたのではないかと思い,ガンだと,どうして早期発見できなかったのかと気にかかる.
○病名が心筋硬そくだと,元気にまかせて過労をかさねたのではないかと思い,ガンだと,どうして早期発見できなかったのかと気にかかる.

語順が逆順の場合にテンをうつ

○私がふるえるほど大嫌いなBを私の親友のCにAが紹介した.
○Aが,私がふるえるほど大嫌いなBを私の親友のCに紹介した.
→「Aが」を強調したいとき

上記以外のテンは,思想の最小単位を示すもの.重要でないテンはうつべきではない.

  • 父は死んだ.:ひとつの思想表現
  • 父は,死んだ.:ふたつの思想

漢字とカナ

視覚としての言葉の「まとまり」がわかりやすくなるように.
×その結果今腸内発酵が盛んになった.
○その結果いま腸内発酵が盛んになった.

助詞

係助詞「ハ」:格助詞ガノニヲを兼務して,文の題目を示す

  • (「ヘンリはどうした?」)「ヘンリは到着しました.」(顕題)
  • (「だれが到着した?」)「ヘンリが到着したんです.」(陰題)(「到着したのはヘンリです.」とすると顕題)
  • (「何かニュースはないか?」)「ヘンリが到着しました.」(無題) ※英語では全て Henry has arrived. となる.

対照(限定)の係助詞「ハ」

×彼は飯をいつも速くは食べない.
→「ふつうは速いが,常に速いわけではない」とも「常に普通か遅い」とも解釈可

ハと否定の動詞との必須のセット

×メコン=デルタでは,日本のようにガラスの破片がころがっていることはない.
メコン=デルタでは,日本のようにはガラスの破片がころがっていることはない.

ひとつの文の中では3つ以上のハをなるべく使わない.

×私は週末には本は読みません.
→何が対照かわかりにくい

マデとマデニ

  • 来週までに掃除せよ.:一度で良い.
  • 来週まで掃除せよ.:掃除し続ける.

接続助詞のガ

二つの句の関係が「プラス」でも「マイナス」でも「ゼロ」でも使える.
「彼は大いに勉強したが,落第した.」
「彼は大いに勉強したが,合格した.」
→「のに」や「ので」を用いればはっきりする.

並列の助詞

「出席したのは山田と中村・鈴木・高橋の四人だった.」:最初だけ使う.

○犬と猫と猿とがけんかした.:3者入り乱れて
○猿と,犬と猫ととがけんかした.:犬と猫の同盟軍
×犬と猫と猿がけんかした

段落

  • 段落はまとまった思想表現.「なんとくなく」は×.
  • 改行の場所がわからない→論理的な文章を書いていない

無神経な文章

紋切型

皆が使っている便利な言葉→マンネリ,自分の実感によらない言葉.
雪景色といえば「銀世界」,悔しいときは「唇を噛む」など.

繰り返し

「・・・です.・・・です.・・・」

自分が笑ってはいけない

→落語のように

体現止め

→多用しない

ルポルタージュの過去形

→現在進行中のものまで過去にしない.現在形の方が臨場感がある.

サボり敬語

用言のあとの「ダ」「デス」は禁止
×「うれしいです」「あぶないです」
○「うれしうございます」「危険です」

文章のリズム

→朗読してみる

書き出し

序論は短く

  • 「いきなり現場型」
  • 「よそごと型」
  • 「一般論だが刺戟的な話からはじめる」

具体的に

  • 具体的事実を書くということは,大げさな修飾語をやめるということ
  • 説得力に欠けるときは,具体的材料が足りていない.観念や理論や説教がナマのかたちで出てきやすく,ウサン臭いものに.

【読書メモ】はじめてのGTD ストレスフリーの整理術

はじめに

「やるべきことが多すぎて,何に集中したらいいかわからない.」「今これをしていて大丈夫なのだろうか.もっと大事なことがある気がする.」 本書はこのような不安を一掃するための手法であるGTD(Getting Things Done)の原典である. GTDを実践することで,人生における「全ての気になること」を完全に把握し,目の前の作業に集中することができるようになる.

GTDのイメージ

  • 頭の中の「気になること」を”すべて”頭の外に追い出す
  • それらすべての「気になること」について,「目的」と「次にとるべき行動」を決める
  • 「とるべき行動」をシステムで管理し,定期的に見直す

GTDの具体的な手法

  • 収集
  • 処理
  • 整理
  • レビュー
  • 実行

収集・・・「気になること」すべてを1箇所に集める

集める先をinboxと呼ぶ

まずは物理的なもの集める

  • 手紙,メモ,名刺,書類,ポスター,・・・
  • 机の引き出しなどの整理が大変だと思ったら,「引き出しの整理をする」と書いたメモをinboxに入れる

次に「頭の中に残っているもの」を集める

  • 地球温暖化を防ぐために何かできないか」「キャットフードが切れそう」「ダイエットしたい」・・・
  • 取りこぼすくらいならやりすぎた方がいい

処理・・・inboxを空にする

  • inboxにあるもの全てに対して次の処理をする

「これは何か?」と問う

「行動を起こす必要があるか?」と問う

行動を起こす必要がないもの・・・3種類

  1. ゴミ
  2. 今やる必要はないが,いつか行動する必要が出てくるかもしれないもの →「いつかやる/多分やる」リスト
  3. 情報,資料 →「資料」リスト

行動を起こす必要があるものに関して,2つの判断をする

  1. どのような結果を求めているか ←「求めている結果」を「プロジェクト」と呼ぶ!
  2. 次にとるべき具体的な行動は何か

次の3種類のどれかに割り当てる

  1. 今すぐやる(2分以内でできることはただちに実行)
  2. 誰かに任せる(2分以上かかることで,自分がやる方がいいと思わない場合) →「連絡待ち」リスト
  3. 自分でやる(2分以上かかることで,自分がやる方がいいと思う場合) →「次にとるべき行動」リスト

現在抱えているプロジェクトを知る →「プロジェクトリスト」を作る

  • ひとつの行動では解決できず,一連の行動が必要なもの
  • 「休日にパーティーを開く」「一部の生産ラインを売却する」「報酬体系を決める」・・・

※普段から意識しておきたい漠然とした大きい目標のようなもの →「チェックリスト」 - 高いレベル・・・「人生で大切にしたいこと」「家族」「健康」・・・ - 低いレベル・・・「会議用チェックリスト」「旅行用チェックリスト」・・・

整理・・・最適な受け皿を用意する

「処理」を行うと,ゴミや2分以内でできることはなくなる. 残ったもので,「整理」して管理・把握する必要があるのは7つ.

  1. 「プロジェクトリスト」
  2. 「プロジェクトリストの参考情報」
  3. 「カレンダー」に記入する行動や情報
  4. 「次にとるべき行動」リスト
  5. 「連絡待ち」リスト
  6. 「資料」
  7. 「いつかやる/多分やる」リスト

レビュー,実行

  • 常にリストは持ち歩く →いつでもチェック,更新ができるように
  • 週次レビューがカギ(毎週同じフローを行う)
  • そのときとるべき行動は,次の順に考慮する そのときの状況→使える時間→使えるエネルギー→優先度

その他気になったこと

ナチュラル・プランニングモデル ←次にとるべき具体的な行動を決めるときに用いる.

脳の働き方に自然なステップで思考を深める作業のこと.5つのステップ.

  1. 目的と価値観を見極める
  2. 結果をイメージする
  3. ブレインストーミングする
  4. 思考を整理する
  5. 次にとるべき行動を判断する

トップダウンボトムアップ

  • GTDボトムアップ的手法
  • 日々の仕事に追われ,長期的な目標なんて見てられないという本音
  • GTDによって日々の仕事を効率よくこなすことで,トップダウン的な考えを行う余裕が生まれる

感想

「全て頭の外に出す」ことは非常に気持ちが良く、スッキリした頭で行動を起こすことができます。 やるべきことが多すぎてもやもやしているような人におすすめな書籍です。

はじめてのGTD ストレスフリーの整理術

はじめてのGTD ストレスフリーの整理術

【思考メモ】アブダクションと演繹法、帰納法

全体を通して、以下の例を用いる。

  • 事例A:価格を上げる
  • 結果B:売上が下がる
  • 規則「A→B」:価格を上げると売上が下がる

演繹法(Deduction)

規則「A→B」と事例Aの観察とから、
Bという結果が起こると類推すること

例↓

  • 「価格を上げると売上が下がる」という規則がある
  • 価格を上げた
    • 売上が下がるのではないか?

帰納法(Induction)

事例Aと結果Bを観察して、
「A→B」という規則があると類推すること

例↓

  • 価格を上げた
  • 売上が下がった
    • 「価格を上げると売上が下がる」という規則があるのではないか?

アブダクション(不明推測法、Abduction)

結果Bの観察と規則「A→B」とから、
Aという事例が起きていると類推すること。
(ルール「A→B」の類推、Aが起きているかどうかで検証)

例↓

  • 売上が下がった
  • 「価格を上げると売上が下がる」というルールがある(のではないか?(仮説))
    • 価格が高すぎるのではないか?(価格が高すぎないかチェックする(検証))

参考図書

アブダクション―仮説と発見の論理

アブダクション―仮説と発見の論理

【読書メモ】伝わる・揺さぶる!文章を書く

2001年11月出版。

文章の型

山田ズーニーさんの「伝わる・揺さぶる!文章を書く」に書かれているのは、文章の型だと思います。 今まで自己流で文章を書いてきましたが、この本に紹介されている7つの要件をチェックすることで、自分の文章を客観的に評価できるようになると感じました。 では、7つの要件とは何でしょうか。 それは、

  1. 意見
  2. 望む結果
  3. 論点
  4. 読み手
  5. 自分の立場
  6. 論拠
  7. 根本思想

です。 簡単に言うと、自分の気持ちに素直に(7)、だれがどうなって欲しいかをはっきりとさせ(2)、相手の状況(4)と自分の立場をふまえた上で(5)、話を明確にした上で(3)、納得させる理由をつけて(6)、一番言いたいことを書く(1)ということです。

文章の型を実践する

本書では前半にこの7つの要件を詳細に説明し、後半では実践編としてこれらをどのように意識して文章を書いていくかを示しています。

特に印象的なのは、説得する文章のときでは、相手が何を論拠としているかを考え抜くということです。

例えばMacBookAirを人に薦める際に、軽いとか薄いとか速いとか、いくら性能を褒めただけでは十分ではないかもしれません。

相手が「でも値段が高いんでしょ?」と言うだけで自分の論理は破綻してしまいます。

それは、自分は性能が高いことが一番重要でそれを説明したが、相手にとってはそれよりも重要だと考えていることがあるということです。

ここでむきになって、「でも〜というすごい機能もあって、…」という風に反論しても、相手にとっては値段が安いことの方が重要なことなので議論は一向に進みません。

ポイントとしては、相手の論拠を踏まえた上で意見を述べる(この場合、結果的に得をするということを伝える)か、相手が置いている価値よりも自分が置いている価値の方が重要だと述べる(お金よりも性能の方が大事だということを伝える)ことで、相手を説得することができるということです。

他にもお願いするときの文章やエントリーシートの文章などの他の場合の実践も記載されています。

ポイント引用+感想メモ

意見とは、自分が考えてきた「問い」に対して、自分が出した「答え」である。 …いい意見を出す人は、「問い」も深い。

正論を押し付けても意味が無い。 …「論拠」が正しいことと、それを論拠にした「意見」が正しいかどうかは、まったく別の問題だ。

自分の腑に落ちるまで、自分の生き方にあった言葉を探し、言葉を発見し、自分を偽らない文章を書くことによってのみ、読み手の心は動くのだ。

正直という戦略をとる。つまり、自分に忠実でありつつ、かつ人と関わることを目指す。そのためには、厳しい文章術の鍛錬が必要だ。なぜなら、自分の正直な姿を表すところは、自分の中ではないからだ。自分の中ではない、紙の上でも、パソコン上でもない。「相手の中」だ。 ここに大きな壁が立ちはだかってくる。

伝わる・揺さぶる!文章を書く (PHP新書)

伝わる・揺さぶる!文章を書く (PHP新書)