2

アルゴリズム(機械学習アルゴリズムの束)をC / C ++で、あるいはJavaで、おそらくPythonで書きたいと思っています。言語は私にはあまり関係ありません-私は上記のすべてに精通しています。

私にとって重要なのはテストです。トレーニングデータを使用してモデルをトレーニングしたい。だから私はテスト入力を持っていて、出力がどうあるべきかを知っていて、それをモデルの出力と比較します。これはどんなテストですか?単体テストですか?どうすれば問題に取り組むことができますか?何をチェックする必要があるかをチェックするためのコードを書くことができることがわかりますが、テストをメインコードから分離したいと思います。テストはよく発達した分野であり、これは以前に行われたことがありますが、この特定の種類のテストの名前と種類がわからないため、テストを読んで混乱を招くことはありません。このテスト方法を教えていただければ幸いです。

4

7 に答える 7

0

これは、本番コードの前に単体テストを作成するテスト駆動開発(TDD)によく似ています。両方のトピックについて、このサイトの周りに多くの詳細な回答があります。始めるために、いくつかの関連する質問にリンクしました。

于 2012-04-23T23:51:32.607 に答える
0

入力/出力が完全なプログラムの外部インターフェイスにある場合、それはブラックボックスシステムテストです。プログラム内で特定の関数、たとえば検索関数にズームインし、関数に直接入力を提供し、動作を観察する場合、それは単体テストです。これは、機能レベルおよび/またはモジュールレベルで実行できます。

于 2012-04-23T23:54:49.237 に答える
0

機械学習プロジェクトを作成している場合、テストとトレーニングのプロセスは実際にはテスト駆動開発ではありません。共進化について聞いたことがありますか?あなたは、それ自体が進化している学習システムのための一連のパズルを持っています。彼らの適応度は、彼らがあなたのケースをどれだけ混乱させるかによって決まります。

たとえば、ソーティングネットワークを進化させたいと思っています。私の学習システムは、ネットワークを生み出すプログラムです。私の共進化システムは、分類が難しい入力を生成します。ソーティングネットワークは、正しいソートを生成することで報酬が与えられ、共進化システムは、ソーティングネットワークでトリガーされる障害の数に対して報酬が与えられます。

私はこれを遺伝的プログラミングプロジェクトで行いましたが、非常にうまく機能しました。

于 2012-04-24T00:00:05.537 に答える
0

おそらくバックテストです。つまり、いくつかの履歴入力があり、それらに対してアルゴリズムを実行して、アルゴリズムのパフォーマンスを評価します。自分で使用した用語(トレーニングデータ)はより一般的であり、それを検索していくつかの有用なリンクを見つけることができます。

于 2012-04-24T01:01:34.083 に答える
0

あなたの最善の策は、テッティング神からのビデオをテストする心理学を見ることですhttp://misko.hevery.com/

Miskoビデオのリンク:

http://misko.hevery.com/presentations/

そして、このGoogleテストガイドhttp://misko.hevery.com/code-reviewers-guide/をお読みください

編集:

誰でもテストを書くことができます、それらは本当に単純で、テストを書く魔法はありません、あなたは単に次のようなことをすることができます:

var sut = new MyObject();
var res = sut.IsValid();
if(res != true)
{
  throw new ApplicationException("message");
}

それはもちろん最近の理論です。テストを簡素化するツールがあり、次のように書くことができます。

new MyObject().IsValid().Should().BeTrue();

しかし、あなたがすべきことは、テスト可能なコードを書くことに集中することです。それが魔法の鍵です。

Miskoのビデオをテストする心理学に従ってください。

于 2012-04-24T01:05:41.443 に答える
0

そのユニットテスト。コントローラがテストされ、開発コードを実際に台無しにすることなく、コードがチェックインおよびチェックアウトされます。このプロセスはテスト駆動開発(TDD)とも呼ばれ、次のソフトウェアの反復またはフェーズに進む前に、すべての開発サイクルがテストされます。

于 2013-08-14T11:42:43.633 に答える
0

これは非常に古い投稿ですが、私の2セント:)

使用するアルゴリズム方法(つまり、「評価プロトコル」)を決定し、ユニタリーエッジケースでアルゴリズムをテストしたら、いくつかのデータセットでアルゴリズムを実行し、結果が上記のとおりであることを主張する方法に興味があるかもしれません。特定のしきい値(個別に、または平均してなど)

このチュートリアルpytestでは、Python内で最も一般的なテストフレームワークであるフレームワーク内でそれを行う方法について説明します。これは例に基づいています(いくつかのデータセットの多項式フィッティングアルゴリズムを比較しています)。

(私は著者です。githubページでフィードバックをお寄せください!)

于 2018-12-13T16:39:43.427 に答える