匿名化コマンドに指定する匿名化アルゴリズム設定ファイルについて、説明します。
匿名化アルゴリズム設定ファイルは、以下の規則で記載してください。
データ形式
CSV形式で記載します。
文字コード
UTF-8で記載します。
1行目
属性IDであるKey、Valueを記載します。
2行目以降
アルゴリズムの実行に必要となる各データを“Key名,設定値”の組み合わせで記載します。
サンプルファイル
匿名化アルゴリズム設定ファイルのサンプルファイルを以下に格納しています。運用に合わせて、本サンプルファイルをコピーして修正してください。
[DWHサーバのインストールディレクトリ]\sample\config.csv
/opt/FJSVsymas/sample/config.csv
設定内容
匿名化アルゴリズム設定ファイルの設定内容について、各Key値および設定値を説明します。
Key名 | 設定値 |
---|---|
plain | 対象となるデータに対してダブルクォーテーションを使用していない場合に高速化します。 plainモードを使用するには、必ず“true”を指定してください。 |
Missing'<column> | 属性<column>に対して、欠損値扱いする値を指定します。 本Key名で設定していない属性には、欠損値として空文字列を採用します。 |
Algorithm* | 実行する匿名化アルゴリズムを以下の内容から指定します。
|
例)
Key,Value plain,true Missing'relationship,n/a Algorithm*,"RandomSuppressionAlgorithm {column:[age,race,sex] ,k:3 }"
また、Key名“Algorithm*”の設定値に指定した匿名化アルゴリズムによって、指定形式が異なります。各匿名化アルゴリズムの指定値について説明します。
LocalSuppressionAlgorithm
LocalSuppressionAlgorithmの指定値について説明します。
QI(準識別子)とするカラム名またはその集合(リスト)を指定します。
カラム名を指定します。
idに値を指定した場合
そのカラム名の値が同じ行同士は何行あっても1行として数えます。
idを指定しなかった場合
行数を数えます。
たとえば、QI値が同じである3行のグループでidに指定したカラム名の値が全て同一だった場合に、指定しなかったときは、k=3の匿名性を満たしていると扱います。idに指定しているときは、k=1と扱います。
k値を自然数で指定します。
例)
Algorithm*," LocalSuppressionAlgorithm {column:[""疾患"",""住所"",""趣味""] ,k:3 }"
NcpTopDownAnonymizationAlgorithm
NcpTopDownAnonymizationAlgorithmの指定値について説明します。
QI(準識別子)とするカラム名の一般化木の集合を指定します。
たとえば、{住所:{川崎市:{中原区:"",川崎区:""},港北区:""},年齢:{10-19:{10:"",11:"",12: ""},20-29:{20:"",28:"",29:""} と指定すると、住所カラムについては中原区と川崎区を川崎市とし、港北区は欠損値とします。また、年齢を10-19、20-29で一般化木とします。
カラム名を指定します。
idに値を指定した場合
そのカラム名の値が同じ行同士は何行あっても1行として数えます。
idを指定しなかった場合
行数を数えます。
たとえば、QI値が同じである3行のグループでidに指定したカラム名の値が全て同一だった場合に、指定しなかったときは、k=3の匿名性を満たしていると扱います。idに指定しているときは、k=1と扱います。
k値を自然数で指定します。
QI値のできるだけ変換しない属性の重み(優先度)の設定を正の実数で指定します。省略した場合、属性の重みは1として扱います。
たとえば、{住所:1,年齢:0.1} と指定すると、住所は年齢の10倍の重みとなり、その分住所の属性値は変換されにくくなります。 また、省略した場合の重みは1なので、{年齢:0.1} としても同じ結果になります。
tree で指定したカラム名以外のカラム名を指定するとエラーになります。
例)
Algorithm*," NcpTopDownAnonymizationAlgorithm {tree:{住所:{川崎市:{中原区:"",川崎区:""},港北区:""},年齢:{10-19:{10:"",11:"",12: ""},20-29:{20:"",28:"",29:""}} ,k:3 ,weight:{住所:1,年齢:0.1} }"
RandomSuppressionAlgorithm
RandomSuppressionAlgorithmの指定値について説明します。
QI(準識別子)とするカラム名またはその集合(リスト)を指定します。指定順に処理されるので、欠損値としたくないカラム名の値を先に指定してください。
カラム名を指定します。
idに値を指定した場合
そのカラム名の値が同じ行同士は何行あっても1行として数えます。
idを指定しなかった場合
行数を数えます。
たとえば、QI値が同じである3行のグループでidに指定したカラム名の値が全て同一だった場合に、指定しなかったときは、k=3の匿名性を満たしていると扱います。idに指定しているときは、k=1と扱います。
k値を自然数で指定します。
行を抑制する最小行数を正の整数で指定します。指定しなかった場合は、kの指定値を採用します。
QI値とする各カラム名の属性についての抑制度合いを指定します。
たとえば、{住所:0.7} と指定すると、住所カラムの抑制度合いが0.7となります。抑制度合いは、0以上1未満の実数です。指定しなかったカラム名は0.5が設定されたものとして扱います。
設定値が大きいほど匿名性が高くなり(存在性が保護され)、活用性が低いデータに変換されてしまいます。
また、抑制度合いを“r”とすると、存在する確率が最大で“1/(r+1)”となる場合があります。
乱数の種を整数で指定します。指定しなかった場合はランダムに与えられます。
例)
Algorithm*,"RandomSuppressionAnonymizationAlgorithm {column:[""疾患"",""住所"",""趣味""] ,k:3 ,randomness:{""疾患"":0.3,""住所"":0.5,""趣味"":1} }"