私は自分自身の仕事の一部としてC++マシン学習ライブラリを開発しています。入力データを表現するためのベストプラクティスについては興味がありました。今は、ファイルから、ストリームなどからデータを読み込むためのI/O操作を処理するDataManagerクラスを使用することを考えています。これを開発するには、機能ラベルを管理するクラスを作成する必要があることに気付きました(入力データとの関連付け)およびクラスラベル(トレーニングデータの場合)が含まれます。マシン学習データ構造のベストプラクティス
したがって、私の実装には、ファイルからデータを読み込むクラスがあります(私はUCIマシン学習リポジトリを使用しています)をboost :: variantオブジェクトに読み込みます。 DataManagerクラスは、演算子>>をオーバーロードして、指定された行からコンマ区切りの各フィーチャ値を読み取ることができます。特徴値が '?'であれば、struct t_missing {}を入力します。
クラス/フィーチャマネージャのために、フィーチャ/クラス名のリンクリストとそれぞれのインスタンスに含まれるインスタンスの数を維持することが適切であると考えています。
とにかく、これはそのようなクラスでの私の最初の考えだったので、実装に関する他の考え/提案を聞いてみたいと思います。コードを表示する必要はありません。私はおそらく、おそらく考慮すべき他のものについて聞いてみたいと思っています。
ありがとうございます!