まず、完全な開示:これは大学の課題に向かっているので、コードを受け取りたくありません。:)。私はアプローチをもっと探しています。私は本を読んだことがありますが、まだコードを書いていません。
全体のタスクは、CSV ファイルの内容をインポートし、CSV ファイルの内容から ( ID3 アルゴリズムを使用して) 決定木を作成し、2 つ目の CSV ファイルを解析してその木に対して実行することです。さまざまな CSV ファイルを処理できるようにすることには大きな (理解できる) 好みがあります (列名をハードコーディングすることを許可するかどうかを尋ねましたが、主にそれを排除する可能性があるため、答えはノーでした)。
CSV ファイルはかなり標準的な形式です。ヘッダー行は # でマークされ、列名が表示され、その後のすべての行は単純な一連の値です。例:
# Column1, Column2, Column3, Column4
Value01, Value02, Value03, Value04
Value11, Value12, Value13, Value14
現時点では、CSV の解析という最初の部分を解決しようとしています。ディシジョン ツリーの決定を下すには、辞書構造が最も論理的であるように思われます。だから私はこれらの線に沿って何かをすることを考えていました:
Read in each line, character by character
If the character is not a comma or a space
Append character to temporary string
If the character is a comma
Append the temporary string to a list
Empty string
Once a line has been read
Create a dictionary using the header row as the key (somehow!)
Append that dictionary to a list
ただし、そのようにすると、キーと値の間のマッピングを行う方法がわかりません。リスト内のすべてのディクショナリに対してアクションを実行する方法があるかどうかも疑問に思っています。誰が何を持っている!」・仕組みはあると思いますが、やり方がわからない。
辞書はそれを行うための最良の方法ですか?他のデータ構造を使用して物事を行うほうがよいでしょうか? もしそうなら、何?