GitHubじゃ!Pythonじゃ!

GitHubからPython関係の優良リポジトリを探したかったのじゃー、でも英語は出来ないから日本語で読むのじゃー、英語社会世知辛いのじゃー

DEAP

deap – Pythonでの分散進化的アルゴリズム

投稿日:

Pythonでの分散進化的アルゴリズム http://deap.readthedocs.org/

DEAP

DEAPは、アイデアの迅速な試作とテストのための斬新な進化計算フレームワークです。 それはアルゴリズムを明示的にし、データ構造を透明にすることを目指している。 マルチプロセッシングやSCOOPなどの並列化メカニズムと完全に調和して動作します。

DEAPには次の機能が含まれています。

  • 想像を絶する表現を用いた遺伝的アルゴリズム
    • リスト、配列、セット、辞書、ツリー、ナンパー配列など
  • プレフィックスツリーを用いた遺伝的プログラミング
    • 緩く型付けされた、強く型付けされた
    • 自動的に定義された関数
  • 進化戦略(CMA-ESを含む)
  • 多目的最適化(NSGA-II、SPEA2、MO-CMA-ES)
  • 複数の集団の共同進化(協力的で競争的)
  • 評価の並列化(およびその他)
  • 人口に住んでいる最高の個人の殿堂
  • システムのスナップショットを定期的に取得するチェックポイント
  • 最も一般的なテスト機能を含むベンチマークモジュール
  • 進化の系譜( NetworkXと互換性があります
  • 代替アルゴリズムの例:Particle Swarm Optimization、Differential Evolution、Distribution Algorithmの推定

ダウンロード

PythonコミュニティによるPEP 438の承認後、私たちはDEAPのソースリリースをPyPI上に移しました。

最新のリリースはhttps://pypi.python.org/pypi/deap/で見つけることができます

ドキュメンテーション

DEAPのマニュアルについては、 DEAPユーザーズガイドを参照してください。

ヒントドキュメントを入手するには、ディレクトリをdocサブフォルダに変更し、 make htmlと入力するとドキュメントは_build/html下に置かれます。 ドキュメントを作成するには、 Sphinxが必要です。

ノートブック

新しいノートブックの例もチェックアウトしてください。 Jupiterのノートブックを使用すると、コードの各ブロックを個別にナビゲートして実行し、各行が何をしているかを伝えることができます。 ノートブックをオンラインで見るには、ページの下部にあるノートブックビューアのリンクを使用するか、ノートブックをダウンロードし、ダウンロードディレクトリに移動して実行します

jupyter notebook

インストール

easy_installまたはpipを使用してシステムにDEAPをインストールすることをお勧めします。 apt-get、yumなどの他のインストール手順は、通常、古いバージョンを提供します。

pip install deap

最新のバージョンをインストールすることができます

pip install git+https://github.com/DEAP/deap@master

ソースからビルドする場合は、リポジトリをダウンロードまたは複製して、

python setup.py install

ビルドステータス

DEAPのビルドステータスはTravis-CI https://travis-ci.org/DEAP/deapで入手できます

要件

DEAPの最も基本的な機能はPython 2.6です。 ツールボックスとマルチプロセッシングモジュールを組み合わせるには、Python2.7が部分関数をピクルするためのサポートが必要です。 CMA-ESにはNumpyが必要です。DEAPのAPIと完全に互換性があるため、結果の視覚化にはmatplotlibを推奨します。

バージョン0.8以来、DEAPはPython 3と自由に互換性があります。インストール手順はソースを自動的に2to3のPython 3に変換します。

次のコードは、DEAPを使用した遺伝的アルゴリズムを使用してOnemax問題の最適化を実装することがいかに簡単かを簡単に示しています。 より多くの例がここに提供されています

import random
from deap import creator, base, tools, algorithms

creator.create("FitnessMax", base.Fitness, weights=(1.0,))
creator.create("Individual", list, fitness=creator.FitnessMax)

toolbox = base.Toolbox()

toolbox.register("attr_bool", random.randint, 0, 1)
toolbox.register("individual", tools.initRepeat, creator.Individual, toolbox.attr_bool, n=100)
toolbox.register("population", tools.initRepeat, list, toolbox.individual)

def evalOneMax(individual):
    return sum(individual),

toolbox.register("evaluate", evalOneMax)
toolbox.register("mate", tools.cxTwoPoint)
toolbox.register("mutate", tools.mutFlipBit, indpb=0.05)
toolbox.register("select", tools.selTournament, tournsize=3)

population = toolbox.population(n=300)

NGEN=40
for gen in range(NGEN):
    offspring = algorithms.varAnd(population, toolbox, cxpb=0.5, mutpb=0.1)
    fits = toolbox.map(toolbox.evaluate, offspring)
    for fit, ind in zip(fits, offspring):
        ind.fitness.values = fit
    population = toolbox.select(offspring, k=len(population))
top10 = tools.selBest(population, k=10)

DEAPを引用する方法

DEAPを使用して生成された結果を含む科学論文の著者には、以下の論文を引用することが推奨されます。

@article{DEAP_JMLR2012, 
    author    = " F\'elix-Antoine Fortin and Fran\c{c}ois-Michel {De Rainville} and Marc-Andr\'e Gardner and Marc Parizeau and Christian Gagn\'e ",
    title     = { {DEAP}: Evolutionary Algorithms Made Easy },
    pages    = { 2171--2175 },
    volume    = { 13 },
    month     = { jul },
    year      = { 2012 },
    journal   = { Journal of Machine Learning Research }
}

DEAPの出版物

  • François-Michel De Rainville、Félix-Antoine Fortin、Marc-AndréGardner、Marc ParizeauおよびChristianGagné、「DEAP – 有効化Nimbler Evolutions」、SIGEVOlution、vol。 6、no 2、pp。17-26、2014年2月。
  • フランソワ・ミシェル・デ・レインビル、マルク・アンドレ・ガードナー、マルク・パリゾー、クリスチャン・ガニエ、「DEAP:進化的アルゴリズムが容易になる」、機械学習学会誌、vol。 13、pp。2171-2175、jul 2012.
  • François-Michel De Rainville、Félix-Antoine Fortin、Marc-AndréGardner、Marc Parizeau、ChristianGagné、「DEAP:進化的アルゴリズムのためのPythonフレームワーク」、EvoSoft Workshop、Companion proc。 2012年7月7日から11日までのGECCO 2012(遺伝的・進化計算会議)

DEAPを使用したプロジェクト

  • シャルドン、B.ブレンジン、E.ブゾンネット、C.イナード(2016年)、一戸建て住宅の建設コストとエネルギー性能:統合設計から自動化最適化まで、Automation in Construction、Volume 70、p.1-13。
  • B. Brangeon、E. Bozonnet、C. Inard(2016)、本物の製品データベースによる集合住宅と最適化プロセスの統合改修、Building Simulation Optimization、pp。531-538、Newcastle、England
  • Randal S. Olson、Ryan J. Urbanowicz、Peter C. Andrews、Nicole A. Lavender、La Creis Kidd、Jason H. Moore(2016年)などがあります。 ツリーベースのパイプライン最適化による生物医学データ科学の自動化 進化的計算の応用、123~137ページ。
  • Randal S. Olson、Nathan Bartley、Ryan J. Urbanowicz、Jason H. Moore(2016年) データ科学自動化のためのツリーベースのパイプライン最適化ツールの評価 Proceedings of GECCO 2016、485-492ページ。
  • Van Geit W、Gevaert M、Chindemi G、Rossert C、Courcol J、Muller EB、Schrmann F、Segev I、Markram H BluePyOpt:オープンソースソフトウェアとクラウドインフラストラクチャを活用して、神経科学のモデルパラメータを最適化します。 フロント。 ニューロインフォーム。 10:17。 doi:10.3389 / fninf.2016.00017 https://github.com/BlueBrain/BluePyOpt
  • Lara-Cabrera、R.、Cotta、C.およびFernandez-Leiva、AJ(2014)。 幾何学対rtsゲームの美学マップの進化のトポロジカルな措置、エンタテインメントコンピューティング、
  • Macret、M.およびPasquier、P.(2013)。 多目的遺伝的アルゴリズムを用いたOP-1シンセサイザの自動チューニング新規登録ログイン多目的遺伝的アルゴリズムを用いたOP-1シンセサイザの自動チューニング。 第10回音楽コンピューティングコンファレンス(SMC)の予稿集。 (pp 614-621)。
  • Fortin、FA、Grenier、S.、&Parizeau、M.(2013年7月)。 非支配ソートのための改善されたランタイム複雑度アルゴリズムの一般化。 遺伝的・進化的計算会議に関する第15回年次会議の進行中(pp。615-622)。 ACM。
  • Fortin、FA、&Parizeau、M.(2013年7月)。 NSGA-IIの距離計算の再考。 遺伝的および進化的計算会議に関する第15回年次会議の進行中(pp。623-630)。 ACM。
  • マルク・アンドレ・ガードナー、クリスチャン・ガニエ、マルク・パリゾーが含まれる。 組合せ最適化のための隠れマルコフモデルに基づく分布アルゴリズムの推定。 Comp。 Proc。 遺伝的および進化的計算会議(GECCO 2013)、2013年7月。
  • JT Zhai、MA Bamakhrama、およびT. Stefanov。 「ハードリアルタイムシステムでストリーミングアプリケーションをマッピングする場合に十分な並列性を利用する」 2013年のデザインオートメーションカンファレンス(DAC 2013)。
  • V. Akbarzadeh、C.Gagné、M. Parizeau、M. Argany、M.A. Mostafavi、「視野範囲に基づくセンサ配置最適化のための確率論的センシングモデル」、IEEE計測および測定の2012年受理、2012年。
  • M. Reif、F. Shafait、およびA. Dengel。 “メタラーニングのためのデータセット生成”。 ドイツ人工知能学会講演予稿集(KI’12)。 2012。
  • MT Ribeiro、A. Lacerda、A. Veloso、およびN. Ziviani。 “多目的推薦システムのためのパレート効率的なハイブリダイゼーション”。 推薦システムに関する会議の議事録(!RecSys’12)。 2012。
  • M.Prez-Ortiz、A.Arauzo-Azofra、C.Hervas-Martínez、L.Galcía-HernándezおよびL.Salas-Morera。 “施設レイアウトの多目的最適化のためのユーザの好みを学習するシステム”。 Pr、Int。 産業および環境アプリケーションにおけるソフトコンピューティングモデルに関する会議(SOCO’12) 2012。
  • ROC空間、遺伝的進化計算会議(GECCO 2012)、2012年の分類器のアンサンブルを生成するための多目的進化的最適化、Lévesque、JC、Durand、A.、Gagné、C.、およびSabourin、R。
  • Marc-AndréGardner、ChristianGagné、Marc Parizeau、「ヒストグラムベースのAccept-Reject法を用いた遺伝的プログラミングのブローコントロール」、Proc。 遺伝的および進化的計算会議(GECCO 2011)、2011。
  • Vahab Akbarzadeh、Albert Ko、ChristianGagné、およびMarc Parizeau、「CMA-ESを用いた地形認識センサ配置最適化」、Proc。 自然からのパラレル問題解決(PPSN 2010)、Springer、2010
  • DEAPは、遺伝的プログラミングを使用して機械学習パイプラインを最適化するオープンソースツールであるTPOTで使用されます。
  • DEAPはROSでも最適化パッケージhttp://www.ros.org/wiki/deapとして使用されています
  • DEAPはPyXRDのオプションの依存関係です。PyXRDは、乱れたラメラ構造のX線回折解析用に開発された行列アルゴリズムのPython実装です。
  • DEAPは、 MLCへのアプリケーションでの記号回帰のためのライブラリであるグリフで使用されます

プロジェクトをここにリストしたい場合は、リンクと簡単な説明をお送りください。追加することができれば幸いです。







-DEAP

執筆者: