近年注目されているデータサイエンスの名前がついた有名なデータサイエンティスト検定(リテラシーレベル)について学習記録を交えた対策記事になります。対策書として最もオーソドックスな『最短突破 データサイエンティスト検定(リテラシーレベル)公式リファレンスブック 第3版』を用いた学習が間違いないです。
本記事は上記書籍の概要の学習記録および、DS検定の学習記録ですが、データエンジニアリングの分野は特にアウトプットが大事になります。アウトプットは『徹底攻略データサイエンティスト検定問題集[リテラシーレベル]対応 第2版』を用いた学習を合格者の多くは実践しています。
また模試も大事です。上の2冊の書籍に付属している模試やネット上の模試などを駆使して合格を目指していきましょう!
概要
データサイエンティスト検定リテラシーレベルとは、スキルレベルとしては見習いレベルであり、プロジェクトの担当テーマを扱える程度です。スキルは全部で203個あり、それに、数理・データサイネス・AI(リテラシーレベル)モデルカリキュラムの内容を加えたものが試験範囲となっています。
2013年度に設立されたデータサイエンティスト協会が2015年に発表したデータサイエンティストスキルチェックリストに基づき発足したデータサイエンティスト検定リテラシーレベルは2021年4月に誕生したまだ新しい検定ですが、今後の需要はさらに増していくと思われます。なぜならこのチェックリストを構成する、ビジネス力、データサイエンス力、データエンジニアリング力はこの後の社会で重宝されていくと確信していくからです。
試験は年3回行われます。受験料は一般が11000円で学生が5500円になります。100問の選択問題を100分で行い、合格ラインが約80%と合格率が高めな検定試験です。難問が数問混じっていると公表されています。試験形式はCBTになります。
データサイエンス力
数学的理解
線形代数基礎
ベクトルの内積で、全ての成分が1のベクトルを用いることにより算術平均を表すことができます。行列において単位行列はEよりIの方の記号で表します。固有値や固有ベクトルはデータサイエンスでは主成分分析などで用います。具体的には高次元のデータに対してより低い次元でデータの性質を説明するときに使います。
微分・積分基礎
偏微分においてはナブラ記号を用いて∇f=(∂f/∂x_1,…,∂f/∂x_n)表記に慣れましょう。このナブラは機械学習に登場する勾配(勾配ベクトル)で、勾配の向きは関数fの値が最も大きく増加する方向で、十分小さな定数Cに対して、勾配の向きに距離C進と関数の値はC‖∇f‖程度増加します。
(d/dx)F(x)=f(x)を微積分学の基本定理と言います。
集合論基礎
集合についてPythonのプログラムとの対応を覚えます。和集合、積集合、差集合、対称差集合を、ぞれぞれ|、&、-、^で記述します。補集合ついては、Pythonに演算子は準備されていません。またこれら5つの集合の種類を論理演算と対応させると、それぞれA OR B、A AND B、A AND NOT B、A XOR B、NOT Aとなります。ちなみに対称差集合は△記号で表現します。
科学的解析の基礎
統計数理基礎
この検定では条件付き確率を統計検定と同じような記号で表記します。また右に裾を引いた(右に裾が重い)分布は小さい順に、最頻値→中央値→平均値となります。また第1四分位数を25パーセンタイルなどと表現します。確率分布は二項分布、ポアソン分布、正規分布、指数分布、カイ2乗分布(誤差の2乗和がこの分布によく従う)が範囲です。正規分布の期待値と分散や標準化も試験の範囲です。因果→相関ですが、逆は偽です。これは疑似相関があるためです。通常の相関係数をピアソンの相関係数(ピアソンの積率相関は量的データのみ計算可能)と言います。スピアマンの順位相関は質的データである順位データに対して、2つの変数の単調関係を示します。単調関係とは、一方の変数が増加するとき、他方の変数が増加し続ける度合いです。
右図ではデータが3次曲線であり、直線関係(厳密な線形関係)でないのでピアソンの積率相関は1を下回りますが、スピアマンの順位相関は、値の増加の幅を気にせずに単調関係のみを評価するので1のまま不変です。
尺度について量的データには比例尺度(長さや絶対温度、質量など絶対的なゼロ点を持つデータの尺度)と間隔尺度(℃などで倍率の計算ができない尺度)があります。質的データには、順序尺度(等級や満足度のような分類や種類を区別するラベルとしてのデータ)と名義尺度(子供を0、成人を1とするなど内容区別のためだけに数値が与えられているデータ尺度)があります。
片対数グラフとは、yとxが指数関数の関係にある際に使い勝手の良いグラフです。
次に似た考えを用いて両対数グラフを考えます。このときにy軸を10を底とする常用対数を取ります。つまりy=B×A^xのときに両辺に常用対数を取ると、log_10(y)=Alog_10(x)+log_10(B)となり、左辺をあらためてyとし、右辺のlog_10(x)をあらためてxとすると、y=Ax+B’の形になります。
統計検定などでたまに見かける内容に片対数グラフや両対数グラフという名前がついているだけに過ぎませんが、面白いですね。
ベイズの定理では、迷惑メールに関する問題なども解けるようにしておきましょう。
推定・検定
記述統計学は、特定の集団におけるデータを表やグラフや統計量から読み解いて考察するものです。推測統計学とは、無作為に集められたデータから母集団の特徴や情報を推測する統計学です。また点推移の欠点は誤差がわからないことです。この検定では、検出力のことを検定力という表記をします。検定力が低い状況で統計的仮説検定を行うことはあまり適切でないことに注意しましょう。検定関連では、ウェルチのt検定まで出題されますので注意しましょう。
アソシエーション分析
アソシエーション分析など、この検定では統計検定1級を学習していても聞き慣れない単語が出てきますので、注意して学習しましょう!
共起性を測るために共起頻度を把握します。これは、XとYの両方が起きている事象の数です。信頼度は事象Xが起こった条件での事象Yが起きる割合です。支持度は、全事象の中で、XとYが同時に起こる回数つまり共起頻度の割合です。リフト値は事象Xが起こった条件のもとで事象Yも起こる確率を、事象Yが起こった確率で割った値です。
このような概念はアソシエーション分析という教師なし学習の手法で用います。例えば通販サイトにおける「Xを買った人は、Yも買っている」発見をもとにしたレコメンドとして用います。
レコメンドと共起頻度の大きな違いは、XとYに方向性があるかないかです。共起頻度の指標ではXとYを置き換えられますが、レコメンドでは、XとYに方向性があります。
因果推論
処置群とは実験群のことで、対照群と合わせて実験計画などで用います。交絡因子とは共変量のことです。ある変数が他の変数に影響を与える影響を知りたい場合、影響を受けると仮定する変数をアウトカム、影響を与えると仮定する変数を要因(介入変数、暴露因子)と言います。交絡因子とは、アウトカムに影響を与え、要因と関係があり、要因とアウトカムの中間因子でないとされます。中間因子とは要因とアウトカムの中間に存在する因子のことです。
中間因子の働きにより、因果効果を誤る例は下記です。喫煙が中間因子なら上の→の線上にあることが前提と考えています。
「心筋梗塞と喫煙に関係がある」を自明とした場合、コーヒー飲用が心筋梗塞に影響を与える(因果効果がある)と仮説を立てたとき、上図の関係から、交絡因子の喫煙により、コーヒーの飲用が心筋梗塞に影響を与える(因果効果がある)…☆と誤認する可能性があります。交絡因子とは、アウトカムに影響を与え、要因と関係があり、要因とアウトカムの中間因子でない、つまり最後の部分が大事で、中間因子とは要因とアウトカムの中間に存在する因子のことですので、要因が中間因子に影響し、中間因子がアウトカムに影響する構造になっていないことが交絡因子の条件の1つなので、このコーヒーの例では喫煙が交絡因であることが、☆の誤認の原因となっています。
この部分は実験計画法の箇所でも詳しくは触れていない部分ですので重要な概念だと感じます。
交絡因子があると因果関係の判断を誤りやすいのですね。『最短突破 データサイエンティスト検定(リテラシーレベル)公式リファレンスブック 第3版』の内容の例はこのようにハッとさせられる内容が多いことも特徴的ですね!
選択バイアスとは、分析対象として選ばれた人とそうでない人の間に存在する特性の違いによって生じる系統的な誤差を意味し、選択バイアスが存在するとデータ入手時点で歪みが発生していることになります。選択バイアスには脱落バイアス、欠測データバイアス、自己選択バイアスなどがあります。脱落バイアスは時間的な追跡があるとおきに途中で対象者が離脱してしまったときなどに生じます。欠測データバイアスは、欠測を含むデータか否かでデータ入手時点で既に歪みが発生してしまうバイアスです。自己選択バイアスは治験などで健康に自信がある人などが多く集まってしまうことによる既に形成された歪みが発生してしまっているバイアスのことです。
データの理解・検証
データ理解
データ分析のプロセスは、データ確認およびデータ構造把握→データクレンジングつまりデータ加工と整形→基本集計(各種クロス集計)→詳細分析(モデル作成、機械学習の実行)です。
時系列データにおいて、トレンドとは、細かな変動を除いた全体のデータの傾向です。移動平均において間隔を広げると長期傾向を掴めますが細かい傾向変化を掴むことが難しくなります。周期性の概念も大事です。移動平均の間隔を周期性の秋雨期に合わせることも大事です。周期を特定するために自己相関分析や偏自己相関分析があります。前者は、一連の観測値が、それ自体のラグとどの程度創刊しているかを分析するもので、後者は相関を見たいもの以外の影響(例えばt期とtーk期との関係を見たい場合に、tーk+1、…、tー1期の影響)を取り除いて分析するものです。
時系列データ同士の回帰分析において、見せかけの回帰に注意しましょう。以下の2つのランダム変数を考えます。
ここで、次のような回帰モデルを考えると、2変数の間に有意な関係があるような結果が出ることがあります。
この見せかけの回帰の対策として、ラグ変数を含めた回帰や、差分を取った回帰などが考えられます。
詳しくは統計検定1級の経済分野方面での名著の沖本本『経済・ファイナンスデータの計量時系列分析』に掲載されています。
データ準備
サンプリング
標本により得られる推定値と母集団から得られる値との差を標本誤差といいます。この標本誤差を算出することはできないので、標準誤差という統計量を用いることで確率的に評価します。つまり標準誤差が標本調査結果の信頼性を表します。アンケート調査において、1回のアンケートの1回を標本数やサンプル数といい、アンケートの被験者の数をサンプルサイズと言います。標準誤差は次の式で求められます。nは標本のサンプルサイズです。
標本誤差は正しい抽出法により母集団の特徴が反映されると期待される標本で生じる誤差ですが、サンプリングバイアス(バイアス)とは、不適切な抽出方法により母集団の特徴が反映されていない標本が抽出されることになります。
実験計画法とは1920年代にフィッシャーが開発したものです。フィッシャーの3原則とは、反復(いくつかの水準や処理などについて実験を繰り返す)と無作為化(実験の時間や空間など、結果に影響を与えると考えられる条件を無作為に入れ替える)と局所管理(事件の時間や空間など、結果に影響を与えると考えられる条件を局所化して実験する)です。この実験計画法という統計手法を用いる分析方法に分散分析があります。その他には最適計画や、シミュレーション実験があります。
データクレンジング
外れ値の中で外れている理由が判明しているものを異常値と言います。欠損値は欠測値や欠落値とも呼ばれます。
データ加工
データの標準化において標準化後は平均0、分散1となります。データを一定のルールに従って変形し、扱いやすくする加工処理をスケーリング、尺度の変更とも呼ばれます。正規化とは、データの最大値と最小値をそれぞれ1と0にする加工処理で、最大値と最小値が決まっている場合に有効な手法です。
特徴量エンジニアリング
良い特徴量はデータの特徴を反映し、モデルの改善に役立てられます。二値化や離散化は実務的観点から意味を持つ場合に実施されることがあります。ある閾値につい二値や多値に和帰る場合や、ビニングという区間ごとにグループ化して等間隔や分位点で分割する方法があります。対数変換や一般化したBox -Cox変換やYεo -Johonson変換もあります。交互作用特徴量の作成は、変数間に線形では見れない関係がある場合に実際されます。
データ可視化
方向性定義
データの可視化は探索目的、検証目的、伝達目的があります。
軸出し
データ可視化における層化とは、比較して可視化したい分類別に分けることを言います。どのような属性で分けると差がくっきり浮かび上がるか、その属性での差を見ることで何がわかるかといった仮説が、層化する際の比較軸の候補になります。
データ加工
アンサンブル平均とは同一条件下におけるデータの集合平均です。
表現・実装技法
データインク比は、データインク比=データインク/総インクで表現します。データインクは情報量をもつインクで、その要素がなくなるとチャートのメッセージが変わってしまう、失われてしまうインクです。データインク比はチャートジャンクというグラフの過剰なビジュアル表現を減らす基本方針です。データインク比は0〜1で、1に近いほど良いチャートです。データ濃度はデータ濃度=画面上のデータポイントの数/データを表示するディスプレイの面積です。画面の単位面積あたりの情報量を示し、値が高いほど良いグラフです。ただしどちらの手法でも過剰に高めようとすると、かえって何がメッセージか不明確になります。
3次元の情報を2次元に付加する可視化の方法で、並行座標プロット、散布図行列、ヒートマップをおさえます。
上図のように、n変量のデータ表示では、垂直な等間隔なn本の平行線で構成される背景が描写されます。折れ線グラフと似ていますが、折れ線グラフは横軸の順番に意味がありますが、並行座標プロットでは順番に意味はありません。
意味抽出
外れ値の判定法として、箱ヒゲ図を用いる方法があります。第1四分位数ー3×四分位偏差より小さいものや、第3四分位数+3×四分位偏差より大きい、つまり下限境界点と上限境界点からも外れた値が外れ値です。
モデル化
回帰・分類
目的変数と説明変数を標準化してから実行した重回帰分析から得られた回帰係数を標準偏回帰係数と言います。目的変数の実測値と予測値の相関係数を重相関係数と言います。これは0から1の値になります。これを2乗した値が決定係数です。またロジスティック回帰分析も大事です。
統計的評価
2値分類問題において、真陽性率(TPR)と偽陽性率(FPR)を用いてROC曲線を考えて、面積AUCまで考えます。
TPRは実測値が正例のうち予測値も正例であった割合で、FPRは実測値が負例で予測値が正例の割合です。モデルの精度が100%のとき、ROC曲線は両端点を通る直線となり、AUCは1になります。下記の混同行列を意識すると理解しやすいです。
F値はRecall(再現率)とPrecision(適合率)の調和平均になります。これら2つのものは互いにトレードオフの関係です。ちなみにAccuracyは正解率です。ここまでは二値でしたが、多値分類の評価については、macro平均(クラスごとに評価指標を計算した後に平均する)、不均衡の場合は各クラスに重みをつけた重み付き平均を用います。micro平均は全予測のうち正しく予測できた割合を指すので、Accuracyと同義です。
平均平方二乗誤差(RMSE)や平均絶対誤差(MAE)、誤差率を測るMAPE、決定係数も大切です。
MAPEなどは統計検定でも出てこないので所見になりますね。
機械学習
教師あり学習において、特徴量(説明変数)と目的変数の関係性をモデルにより学習します。分類とは、目的変数がカテゴリ値などの質的変数を予測することで、回帰とは連続値である目的変数を予測することです。手法は、線形回帰、ロジスティック回帰、k近傍方、サポートベクターマシン、ニューラルネットワーク、決定木、ランダムフォレスト、勾配ブースティングなどです。教師なし学習はクラスタリングなどを用います。階層型と非階層型に分けられ、後者にはkーmeans法などがあります。強化学習は、与えられた環境の中で報酬が最大になるようにエージェントが行動を繰り返すことでモデルを構築します。方策反復法と価値反復法に分けることができます。AlphaGoに採用される深層学習と組み合わされたDeep Q ~Network(DQN)などがあります。
機械学習により、分類問題、予測問題、クラスタリング、異常検知などが期待できます。教師あり学習の欠点は正解データの数が少なかったり正確性がないとダメになるところです。また正解データを用意する際にコストがかかる点などもデメリットです。教師なし学習はGANなどもあります。どの特徴量を選ぶかで結果が変わりますので探索的に結果を解釈し妥当性を判断しないといけません。
過学習とは、学習回数が増えるにつれて、訓練データの誤差が減少するのに対し、未知データに対する予測誤差である汎化誤差が増加する状態です。過学習は訓練データ数に比べてモデルが複雑で自由度が高い(説明変数が多い)時に発生し、未知データを安定して予測できない事態が生じます。
過学習を防ぐには訓練データ数を増やす、単純モデルに変更する、正則化する(モデルの煩雑さに罰罰をかけ、複雑さを抑える)、学習方法として交差検証法を用いる、学習の早期打ち切りをするなどがあります。過学習の反対の状態を未学習、アンダーフィッティング、過少適合と言います。これは訓練データにも未知データにも適合しない状態です。
次元の呪いとは、特徴量が増えることによりデータの次元が増えるので指数関数的に計算量が増加し、解決したい問題の解決を阻むことです。分類問題などで発生し、距離の計算をした比較が難しくなり想定したクラスタを作るのが困難になります。次元の呪いの解消には、特徴量選択、次元圧縮などがあります。教師あり学習では正則化などのテクニックで次元の呪いを回避できますが、教師なし学習では回避が難しいので、最初からむやみに次元を増やしすぎないことが大事です。
教師あり学習で精度の高い機械学習モデルを構築するために大量の教師データが必要になります。そこで教師データ数が不足する際に、正解に相当する出力値のついていない教師なしデータに対して、正解を付与して教師データを作るアノテーションを行う必要があります。機械学習を用いたチャットボットの回答精度を上げるため、テキストに使われる単語の中で解答精度の向上に重要と判断した単語を意味づけするタグ付けと言われるアノテーションを行います。画像や映像の分析では、タグ付けに加えて、画像の範囲を特定する4点の座標を指定するバウンティングボックスと言われるアノテーションが行われます。アノテーションは人手で行う方法や半教師あり学習、アクティブラーニングなどがあります。前者は一部の正解を付与した教師データと大量の教師なしデータを組み合わせて、教師なしデータに対する推論結果をえて、機械学習モデルによる半自動的なアノテーションを行います。後者は、前半までは前者と同じで、残りの大量の教師なしデータのデータの中から機械学習モデルの学習に効果的なデータを抽出し、そのデータに対して人が正解を付与し、教師データを増やしていく方法です。
バイアスが入った状態でのモデルの出力結果のことを、「モデルの出力が差別的な振る舞いをしている」と表現します。学習の段階で特徴量からセンシティブ属性を除いたり、層化抽出を行ってデータの偏りの緩和を行うとともに、モデル検証時に、センシティブ属性ごとの予測値の分布や精度を確認し、結果として差別的な振る舞いとなっていないか検証することが重要になります。
透明性の原則ではAIネットワークシステムの動作の説明可能性および検証可能性を確保することとしています。説明可能性の確保の方法は、大域的な説明と局所的な説明の2つに分類できます。大域的な説明は学習済みモデルがどのようにして予測するかモデル単位で説明する方法です。局所的な説明は、機械学習で構築した複雑なモデルへの特定の入力で得られた予測結果やその予測プロセスを根拠に説明する方法です。
モデルの汎化性能(未知データにも高い精度で出力できる性質や能力のこと)を高める方法は、ホールドアウト法と交差検証法があります。ホールドアウト法は、データセットを2か3つに分類します。3つの場合は訓練データ:検証データ:テストデータ=7:2:1などの割合で分類します。生成した訓練データで機械学習モデルを構築し、検証データでモデルの評価指標を最大化できるようにパラメータチューニングを行い、テストデータを用いてモデルの汎化性能を確認します。データに偏りがない場合はホールドアウト法で良いですが、そうでない場合は問題が発生します。交差検証法は、テストデータを除外したデータセットをランダムにk個のブロックに分割し、そのうちの1つを検証データ、残りのkー1個を訓練データとして精度を評価します。これをk回行って平均化するのがk ~fold交差検証法です。
時系列データを用いて機械学習のモデルを構築するとき、単純にホールドアウト法や交差検証法を行うと、検証データと同じ期間のデータでモデルを学習できてしまい、モデルの性能を過大評価してしまいます。これは時系列データが時間的に近いレコードほどデータの傾向も似ている性質があるためです。ここで時系列データに対応した交差検証法の考え方を用います。訓練データは検証データより未来のデータを含めないようにすることです。
機械学習モデルは、データ構成の変化により、学習完了後から精度が劣化します。データ構成の変化として、コンセプトドリフトやデータドリフトがあります。コンセプトドリフトは、目的変数の概念が変化する場合に発生します。データドリフトはモデルの特徴量の分布が学習時から変化した場合に発生します。モデルの精度劣化を防ぐため、データドリフトの検知、モデル精度その監視が運用時には必要です。これらはMLOps(Machine Learning Operations)において運用上欠かせない要素で、モデル精度が劣化していると確認できたら関係者にアラート通知する仕組みが大事です。
基本的構造を持つニューラルネットワークは入力層、中間層、出力層からなるパーセプトロンという構造を有する学習モデルです。1つのパーセプトロンは入力値に対して重みづけ総和を計算する部分と、出力値を決定する活性化関数から構成されます。
中間層を複数構成して多層にしたものを深層学習(ディープラーニング)となります。入力層は欠損値を扱えません。標準化した上で入力します。中間層は、ReLU関数などの活性化関数を用います。出力層ではタスクに合わせた活性化関数を用います。回帰なら恒等関数、二値分類ならシグモイド関数、多値分類ならソフトマックス関数を用います。ニューラルネットワークの学習は、出力層から得られた予測値と実測値(教師データ)との差を誤差とし、誤差の操作を損失関数として求め、損失関数を最小化するように学習します。損失関数の値をもとに重みとバイアスを更新し、更新された重みとバイアスを用いて再び他所おくし、損失関数の最小化を行うよう重みの更新を繰り返す誤差逆伝播法を用います。各層の重みを更新しながら誤差を最小化していくので、勾配(損失関数を重みで微分した値)が用いられます。出力層から入力層に向けて勾配が掛け合わされていくので、各層の勾配で小さい値が続くと、入力層付近の勾配が0になり、学習がうまく進まなくなってしまいます。これが勾配消失問題で、浅い層のニューラルネットワークではあまり深刻な問題ではありませんが、対策としては中間層の活性化関数にReLU関数を用いることが一般的です。
決定木は、ある特徴量が閾値以上か否かで境界を分割していく手法で、境界面は非線形になります。汎化性能が低いので、ランダムフォレストや勾配ブースティングなどのアンサンブル学習モデルを使用することが一般的です。ランダムフォレストは、データの一部をサンプリングしたデータ(特徴量もサンプリングします)でそれぞれ学習し、その多数決(平均)を予測値とするモデルです。勾配ブースティングは、現状のモデルの残差を予測し、それらを足し合わせた値(最初の予測値+残差の和)が教師データに近づくように学習します。勾配ブースティングにサンプリングや正則化などの改善をしたモデルが、XΓBoostやLightGBMです。これらのモデルはパラメータ数が多く、ライブラリを使用する際は値の設定に注意します。max_depthは木の深さを意味し、大きい値ほど深く、分割ルールが増えます。そのため過学習を起こす場合があります。決定木系のモデルはインプットデータの欠損値の他やスケーリングなどの前処理をする必要がないので、分析の初手で使用されることが多いです。結果の解釈は、特徴量ごとに分割に使用された回数や目的関数の改善の寄与度を集計することで、各特徴量の重要度を計算できます。精度を向上させる局面では、分割に使用された回数よりも目的関数の改善の寄与度を確認します。
多くのデータが集められない場合に、プライバシー強化技術(PETs)という問題を生じさせないで実行可能な分析技術が開発されています。連合学習はその1つです。
予測能力の高いモデル作成には、データの改善とモデルの構築手法の改善があります。データの改善はデータ量の増加、データの質を高めることが大事です。モデルの構築手法は、アルゴリズムの選択、特徴量エンジニアリングが大事です。
深層学習
ニューラルネットワークの層を深くしてモデルの表現力を豊かにし、勾配消失問題をある程度解消したモデルを深層学習といます。画像、音声などの非構造化データに対して適用され、層を深くすることで、さまざまな特徴抽出が可能です。人間が特徴量を定義する必要がなく、モデルが大量の訓練データから特徴量を自動的に抽出します。2012年にGoogleが深層学習を用いて、猫と教えることなく、猫を認識できました。そして人間の認識精度を超えることが多々あります。ILSVRC(ImageNet Large Scale Visual Recognition Challenge)という画像認識の世界大会で、2015年にマイクロソフトが人間の目の精度を超える深層学習モデルを開発し、技術的なブレクスルーが起きました。2020年にOpenAIがGRT-3を発表しました。深層学習モデルは学習済みモデルとして公開されているものもあり、ダウンロードしてそのまま使用でき、重みの一部を取り出して別のタスクとして転移学習などで活用できます。
分析の際には種類によらず同じアルゴリズムを適用できるように、最終的にはテンソルの集まりにします。画像はピクセルごとに色を表す数値に、音声は一定の時間ごとに音の振幅を数値に、テキストは文を単語に区切り単語の出現状況を数値に変換します。このような数値変換したデータでも、データ生成、数値の持つ意味が異なるデータ同士の場合は、両者を合わせて取り扱うことが難しいです。この画像、音声、テキストなどの種類をモダリティと言います。これらは別のモダリティと言えます。人間が認知できないだけでネットワークグラフのデータなど、別のモダリティを表すことができるデータもあります。データ分析上、単純に合わせることができず、異なった取り扱いをする必要のあるデータの違いがデータサイエンスやAIにおけるモダリティとなります。モダリティが異なれば計算機上でのデータ処理方法も異なります。近年では、複数のモダリティを同時に扱える守る地モーダルモデルが開発されています。大規模言語モデルの登場以降に激しく加速しました。テキストで指示して画像を生成するモデルをはじめとして、多様なモダリティをつなぐモデルが開発されています。
時系列解析
トレンド(傾向変動)、季節成分(季節変動)、周期性(循環変動)があります。季節変動以外の周期変動を周期性と言います。また、もとの時系列データから傾向変動や季節変動を除去して残った変動を短期的変動があります。これは階差を用いて求めます。これにより外れ値を見つけられます。ノイズ(不規則変動)とは取り出したい情報以外の不要な情報です。
クラスタリング
教師あり学習は、ロジスティック回帰、サポートベクターマシン、決定木(分類)があります。教師なし学習は、クラスタリングがあり代表的な手法として、デンドログラムを作成する階層クラスタリングや、kーmeans法などによる非階層クラスタリングがあります。
ネットワーク分析
有向グラフと無向グラフがあります。次数とはノードに雪像区するエッジの数です。重みとはノード間の関係の程度を表す時に使います。その際はエッジに重みという数値を付加します。都市間の移動の所要時間などに使います。
モデル利活用
レコメンド
コンテンツベースフィルタリングと協調フィルタリングがあります。コンテンツベースフィルタリングは、アイテム自体の特性に焦点を合わせたアプローチです。新規ユーザーに対しても有効です。しかし新ジャンルなどには難しいです。
協調フィルタリングは2種類あります。1つはユーザーベースで、他方はアイテムベースです。ユーザーベースでは、類似した評価パターンを持つユーザー同士を見つけ出し、あるユーザーが未評価のアイテムに対して、その評価パターンが類似するユーザーの評価をもとに推薦をします。アイテムベースでは、アイテム同士の類似性に注目し、あるアイテムに高評価をしたユーザーに対して、類似した他のアイテムを推薦します。利点は、アイテム内容や属性などを事前に分析する必要がないこと、多様なユーザーの好みを捉えることができることです。新規ユーザーやアイテムへの推薦が難しい(コールドスタート問題)が欠点です。これら2つのフィルタリングを合わせたハイブリッドなアプローチを取ることもあります。
非構造化データ処理
自然言語処理
不要なテキストデータの特徴を抑える際に必要なクリーニング処理の代表例として、小文字化、数値置換、半角変換、記号除去、ステミングがあります。AIなどは文字や単語の意味でなく、文字コードというコンピュータ固有の識別コード体系により違いを見ます。そのため1と1は別物と処理します。また、数字の代償や記号の有無、時制が意味を持たない場合があります。その際は数字を全て0に置き換える数値置換や、!などを除去する記号除去を行なった上で、時制などによる単語の一部の変化をなくし表記を統一するステミングを行うと不要な特徴がなくなり、分析目的に沿った文章の意味である構築と勉強の違いを浮き彫りにできます。
文章を形態素という意味のある最小の塊に分割し、それぞれの形態素に関して品詞を把握する作業を形態素解析と言います。日本語では英語より形態素解析に時間がかかるので、公開されている形態素解析器を用います。MeCab、Janome、JUMANなどがあります。文章ちゅの形態素や文節の関係性などを分析することを係り受け解析と言います。KNP、CaboChaなどのツールがあります。ツールにより出力結果が異なる場合があります。
自然言語処理を用いて、固有表現抽出、要約・知識獲得・情報抽出、機械翻訳、検索・文書分類、評判・感情分析、推薦、質問応答などができます。禁煙ではGLUEという指標を用いることがあります。これは上でのタスクをはじめとした9つのタスクにおけるスコアを算出するベンチマークとして利用されます。
画像認識
標本化(サンプリング)と量子化のプロセスで行われます。標本化は画像を縦横それぞれ等間隔の格子状の点に分割する作業で、この格子をピクセル(画素)と言います。格子の幅(サンプリング間隔)が大きいとピクセル数が少なくなるので、ジャギーという階段状のギザギザが現れて全体がぼんやりしたり、エイリアシングという本来存在しない縞模様(モアレ)が表示されます。量子化は標本化によってできた画素の濃度を離散値化(レベル化)する作業です。2レベル(1ビット)あれば濃淡が2段階で表現され、レベルが増えるとより正確に表示されます。標本化と同様に量子化もレベルが少ないとレベルの境界(エッジ)が際立って表示されるので、ある程度の量子化レベルが必要です。一般的には256レベル存在する8ビットがよく用いられます。これに加えて画像の色と画像データのフォーマットにより画像のデータサイズが決まります。色はグレースケールや色の三原色(RGB)を組み合わせたカラーなどがあります。フォーマットはJPEG、PNG、BMP、TIFFなどがあり、フォーマットにより圧縮率や圧縮方法が異なります。
画像補正処理、画像加工処理(代表例はフィルタ処理)、画像変換処理(傷などを目立たせる)などもあります。
画像データの前処理にはフィルタ処理の他にも、複数の画像をまとめたデータセットとして画像を扱う際のクリーニング処理もあります。リサイズ、トリミング、パティング(不足する部分を適当な色のピクセルで埋め合わせる)があります。さらに画像識別AIモデルの精度向上などに向けて、各ピクセルの濃淡度やRGB値を扱いやすいように標準化や正規化を行います。ここでは最大値や最小値が決まっているため、最大値や最小値を統一する正規化を選択すべきです。
画像分類は入力された画像について被写体のクラスを分類するタスクです。最も高い確率のクラスを採用します。次の図は畳み込みニューラルネットワーク(CNN)による画像分類の概略です。
物体検出は画像の中でどの物体がどの位置に写っているかを認識するタスクです。バウンディングボックスという区画情報で表現され、その中に写っている物体が何であるかを識別します。
セグメンテーションとは、画像のピクセル1つ1つに対してクラスへの割り当てを行います。セマンティックセグメンテーション、インスタンスセグメンテーション(数えられるものを識別)、パンプティックセグメンテーション(前2つの両方の出力)などがあります。
応用的なタスクもあり、人の姿勢推定、顔認識、自動運転などもあります。
映像認識
動画データは映像データと音声データから成ります。映像はフレームが構成しています。1秒間に何枚のフレームを表示するかがフレームレートでfpsで表します。映像データと音声データはともに圧縮し2つのデータを1つにまとめてMP4、AVI、MOVなどで保存します。圧縮作業をエンコードと言いいます。再生の際にデータ復元する作業をデコードと言います。両方できるソフトなどをコーデックと言います。PythonではOpenCVというライブラリを使い、大量の動画および画像データをまとめて処理できます。
音声認識
マイクが1秒間に波の情報を数字に変換する回数をサンプリングレート(サンプリング周波数)といい、44.1kHzや48kHzが一般的です。値が大きいほど音波の情報をたくさん取得しているので高音質になりますがデータが大きくなります。あるサンプリングレートで取得した音を1つ1つ数字に帰る際に、置き換える数字が取ることのできる幅を量子化ビット数と言います。CDの量子化ビット数は16ビットですが、これは音波を2の16乗の幅で数値化することを意味します。保存法はWAV形式で、マイクで取得した情報をそのまま保存するので高音質ですがデータ量が大きいです。MP3形式は人間の可聴領域に着目して開発されました。これは人間が聞き取れない音の領域を排除することで、データ量を小さくすることで開発されました。ただし、機械の故障予知などのために稼働音を分析する際は、MP3形式は避けた方が良いです。
生成
大規模言語モデル
ハルシネーションについて、データに起因する問題、訓練過程に起因する問題、推論過程に起因する問題などがあります。データに起因するものに対して、データのバイアス、知識の限界、データに含まれる知識の不十分な活用、訓練データに含まれる誤情報などがあります。
データエンジニアリング力
環境構築
システム企画
オープンデータとは、国、地方公共団体および事業者が保有する官民データのうち、誰もがインターネットなどを通じて容易に加工できるように公開されたデータです。つまりネット上にあるデータはオープンデータでないことに注意しましょう。
2次利用可能ルールが適用され、機械判読に適し、無償で利用できるものです。
ユーザーにサービスを提供するシステムでは、通常、複数台のサーバーを用いて1台のサーバーのように動作するクラスタ構成がとられます。これをクラスタリング(クラスタ化)と言います。これは拡張性(スケーラビリティ)と高可用性(アベイラビリティ)のために用いられます。高可用性を高める構成を冗長構成と言います。ホットスタンバイ、コールドスタンバイ、ウォームスタンバイがあります。ウォームスタンバイは最小限のOSのみを起動しておくような、2者の中間的な構成です。
アーキテクチャ設計
ノーコードツールとはソースコードを書くこともなくソフトウェアを開発できるツールですが、ソフトウェアで使用できるUIなどのパーツはそのツールが提供しているものに限定してしまいますので、小さいソフトウェアの開発に向いています。ローコードツールは、一部のソースコードを書くことでソフトウェアを開発するツールです。UIなどのパーツはそのツールが提供しているものに依存しますが、拡張性がある場合が多く、ノーコードツールよりは柔軟に対応でsきます。一定レベルのソフトウェアまではローコードツールで対応できます。
仮想化とは、コンピュータのハードウェアを抽象化して1台のサーバで複数のサーバが稼働しているかのように見せる技術です。コンテナ型仮想化は、ホストOS上のカーネル(OSの中核機能)を共有し、プロセスを隔離して管理することにより、ソフトウェアがあたかも別マシン上で動作しているように稼働できます。Dockerはコンテナ方式の仮想化技術の中で最も大奥利用されているオープンソースの仮想化ソフトです。
コンテナは当初は一時的なテストで用いましたが現在は展開の容易性を利用して短時間で分散環境を構築する技術としても注目されています。
マネージドサービスはクラウドが提供するサービス形態です。ソフトウェア機能の提供から運用管理までを一体として提供します。Jupiter Notebook、RStudioなどのGUI画面を共有する対話型の分析環境、利用頻度の高い機械学習や統計分析ライブラリを標準装備したプログラム実行環境、クラウドベンダーが独自に提供する直感的なGUI画面を共有する分析環境、分析のチューニングや特徴量生成を自動化するAutoMLサービスなどが各クラウドベンダーから提供されています。短期的なPoCや動作検証、学習を行うことに適しています。
データ収集
クライアント技術
SDKとはSoftware Development Kitです。対象プラットフォームを使用するための説明書、プログラム、API、サンプルコードなどが伏魔rています。JDK(Java Development Kit)は有名なSDKの1つです。APIはApplication Programming Interfaceです。対象のプラットフォームが持つ機能を、別のプログラムから呼び出して利用できます。APIはC言語の関数、Javaのclass、REST APIなどがあります。APIは形態により使用手順が異なります。C言語の関数で提供されるAPIはライブラリという形で提供され、コンピュータ上で実行可能な形式に変換(コンパイル)して使います。APIを利用するメリットは、外部ソフトウェアとの連携が容易になることです。Windows上で動作するアプリを作成する際に、Win32 API/Win64 APIを用いて簡便にWWindowsが持つ各種機能を使用できます。
Webクローラー・スクレイピングツールはネト上に公開されているWebページの情報を収集するプログラムツールです。Webコンテンツには静的コンテンツと動的コンテンツがあります。前者はいつでもどこでアクセスしても同じWebページが表示されるコンテンツです。後者はアクセスした際の状況に応じて異なるWebページが表示されるコンテンツです。Web検索では、ユーザーにクエリ文字列を入植させ、Webページ要求時にそのクエリ文字列を送信することで、検索結果を表示するWebページを生成し表示します。現在は有償・無償のWebクローラー・スクレイピングツールが多く出回っております。しかしクローラーはおやり方を間違えるとWebサーバーに大きな負担を与えかねず、場合によってはサーバーを攻撃する行為になりかねません。
通信技術
通信プロトコルとは通信を行うための規格です。HTTPはWebブラウザがWebサーバーと通信する際に使用されます。HTTPSはHTTP SecureでHTTPの通信がSSLやTLSで暗号化されます。FTPはFile Transfer Protocolです。Telnetは端末から遠隔地にあるサーバーなどを操作する際に使用されます。SSHはSecure Shellで通信内容を暗号化して安全にコンピュータに接続して操作するための通信プロトコルです。HTTPの場合はGET、POST、PUT、DELETEなどのメソッドという操作手続きを持っています。
データ抽出
データ抽出のフォーマットはCSV(Conmma-Separeted Values)、TSV(TabーSeparated Values)などがあります。データベースからデータを抽出し、エクセルを用いて分析する流れでいくつかの注意点があります。意図しない形で読み込まれる、読み込み可能な行数に制限がある、元のデータベースと連動しないなどです。
データ構造
基礎知識
構造化データは一定のルールやフォーマットに従い統一された仕様で記録されたデータです。行と列という概念はJSON、XML、CSV、TSVというデータフォーマットで表現されることもあります。非構造化データは特定のフォーマットに従わず形式やルールが統一されていないデータです。例えば音声、画像、動画などです。この際は前処理でタグ付けや抽出処理を行い、構造化データに変換して利用します。
ER図とは実態関連モデル、実態関連図などと言います。関係データベースの構造を可視化するために用います。
データのまとまりをエンティティ、その属性をアトリビュートと言います。エンティティ間のつながりをリレーションシップといい、線で繋いで表します。IE記法のカーディナリティ記法は次です。
例えば次のように表します。
テーブル定義
データベースの正規化は、第一正規化、第二正規化、第三正規化があります。候補キーはテーブル上で任意のレコードを特定するためのkラムの集合です。MySQLなどのRDBでは主キーと言います。非キー属性は候補キー以外のカラムです。関数従属性は、特定のカラムAの値が決まった際に、別のkラムBの値も決まる関係性のことです。
部分関数従属性は、候補キーが複数カラムで構成されている際に、非キー属性のカラムが、候補キーの一部に関数従属している関係性です。例えば価格は商品に部分関数従属しています。
推移従属関係とは、非キー属性のカラムAが、非キー属性のカラムBに関数従属している関係です。例えば理カテゴリ名はカテゴリIDに推移従属しています。
第一正規化は、繰り返される項目がなく、レコード単位の情報になっています。非正規化から第一正規化を行ったイメージは次です。
第二正規化は、第一正規化の条件を満たし、部分関数従属がないことです。以下の図では注文IDに部分関数従属されている部分と、商品IDに部分従属されている部分があります。候補キーが注文IDと商品IDであることに注意します。
これを次のようにします。
第三正規化は第二正規化の条件を満たし、推移関数従属がないことです。
例えば顧客名は顧客IDに推移関数従属していますので、これを以下で第三正規化します。
データ蓄積
DWH
DWH(データウェアハウス)として利用されるアーキテクチャについては、一般のRDBMS(リレーショナルデータベース管理システム)を使う場合の他に、データ分析で必要な加工集積処理に対して、大量のデータを高速に処理できるように設計されたDWHアプライアンスやDWH用のクラウドサービスがあります。企業でデータ分析を行う場合、機能面で優れ、サポート面も受けられる、エンタープライズ用途で有償のDWHが採用されます。分析用途で採用される代表的なDWHアプライアンスには、Oracle ExadataやIBM Integrated Analytics Systemなどがあります。DWHアプライアンスは製品ごとにそれぞれ酵素硬化するための独自の工夫がされています。サーバーを構成するパーツや基盤設計、並列分散処理のためのノード間の連携方式、データの保持形式など、一般的なRDBMSとは異なったアーキテクチャです。代表例としてカラム指向型DBについて考えます。一般的なRDBMSは行指向型DBで、データを行単位で保持しており、トランザクションが発生するたび、行単位で対象レコードを特定し、データの追加、変更、削除などが行われます。カラム思考型DB(列指向型DB)は列単位でデータを蓄積し、列方向に大量にあるデータに対して、特定の列だけを集計・抽出するようなデータ分析や、統計処理などを効率的に行うことができます。しかし1行単位のレコードに対するトランザクション処理などには不向きです。このようにDWHアプライアンスは大量のデータの結合・集計・抽出などにおける処理能力に特化した独特なアーキテクチャを採用しているので、一般的なRDBMSに比べて苦手としている分野もあります。
分散技術
HadoopやSparkの分散技術とは、ネットワークで接続した複数のコンピュータで、分散して処理を行う技術です。一般のRDBMSと比べて、対象データが大規模で更新が少なく、構造が変化しやすい場合に向いています。処理の性能を上げたい場合は、ノード数を増やす方法で対応できます。Hadoopは実際には複数サービスを組み合わせたもので、多様な環境構成になっています。Sparkも同様で、Hadoop関連プロジェクトに含まれ、環境構成のパターンがより複雑になります。Hadoopベースの技術としてHDFS(Hadoop Distributed File System)と、分散技術における汎用性なクラスタ管理システムであるYARNがあります。HDFSは、複数のーどのストレージに分散してデータを保存することで、1ノードのストレージ容量を超えるデータを蓄積・利用できる仕組みです。巨大なファイルをこうスループットで提供できる点がメリットですが、小さなファイルを大量に扱う場合や、低レイテンシ(データ転送などにかかる応答が早く遅延が少ない)が求められる場合は向いていません。Hadoopのデータ処理の仕組みであるMapReduceアプリケーションはノードのストレージが通常メモリに比べて大きく、巨大なデータ処理ができるのがメリットですが、デメリットは、ノードのストレージに対する読み書きが何度も発生し、ストレージはメモリに比べて読み書きが遅いので、反復的な処理などに弱い点があります。Sparkでは、RDD(Resilient Distributed Dataset)などの仕組みを用いたメモリ上の分散処理によって、メリットとデメリットがMapReduceと逆になります。実際の操作はRDDより、DataFrameやDataSetといったインターフェイスを使ってプログラミングします。
NoSQLデータストアとは一般的なRDBMSと異なるデータベース管理システムの総称です。代表的なNoSQLデータストアには、HBase、Cassandra、Mongo DB、CouchDB、Amazon DynamoDB、Cloudant、Azure Cosmos DBなどがあります。SQL以外の方法で操作する必要があり、テーブル構造に固定化されず、ハードウェアの拡張性が高く、より大規模なデータを取り扱え、低レイテンシである処理に強い特徴があります。近年では各クラウドベンダーがマネージド型のNoSQLを提供し、これらにより環境構築を行わず容易にNoSQLを活用できるようになりました。多くのNoSQLマネージドサービスが重量型の課金体系で、大量データを蓄積した場合のコストもリレーショナルデータベース(RDBMS)タイプのマネージドサービスより安くなります。さらにNoSQLはAPIなどで操作し、拡張性に優れ、大量データでも安定した性能でデータアクセスできるメリットがあります。NoSQLはRDBMSのSQLで提供されるデータ操作機能を全て実現できません。データ活用の要件に応じてRDBMSとNoSQLを使い分けることが大事です。
クラウド
さまざまな形式のデータを蓄積できるストレージにいったんデータを蓄積しておくことが一般的です。クラウド上の代表的なストレージサービスに、BCC RM3、GBM Cloud Strage、Aが Cloud Object Storageなどがあります。アクセス権限の設定に漏れがあると予期せぬ外部からのアクセスを許してしまうリスクが生じます。
データ加工
フィルタリング処理
絞り込みなどでフィルタリング処理を行います。SQLではWHERE句を用いて絞り込みます。IN・LIKE・BETWEEN・AND・ORなどを用いて抽出する方法もあります。
正規表現とは文字列のパターンを記述する構文です。文字列中に特定のパターンが含まれているか判断したり。特定の部分を抽出できます。代表的な正規表現は下記になります。
ソート処理
SQLの処理としてORDER BYによるソート処理があります。ASC、DESCはそれぞれ昇順、降順という意味です。
結合処理
内部結合、外部結合、自己結合、UNION処理などがあります。
エクセルにおいてVLOOKUP関数があります。SQLではINNER JOIN(内部結合)、LEFT OUTER JOIN(左外部結合)を使います。
前処理
クレンジング処理について考えます。クレンジングの対象となるデータを抽出する必要があり、フィルタリングの能力が大事になります。抽出したデータに対して置換処理や除外処理を行います。クレンジングルールを決めて数式や関数などを用いてクレンジングします。
マッピング処理
マッピング処理とはある値を別の値と対応づける処理を指します。マッピング処理はマスター(対応表)のもとで行います。取得したマスターが最新であるかに注意します。マスターや属性情報などのソースデータの変更履歴を保存し、データ上で表現することを、スロー・チェンジ・ディメンションと言います。
サンプリング処理
有名な方法を把握することが大事です。
集計処理
データの基本的な特徴を表す値に基本統計量があります。
Pythonの場合はPandasというライブラリのdescribe関数を用いて、最大値などの一覧表を作成できます。
変換・演算処理
データを操作する際はデータ型に気をつけます。数値型、文字型、日付型などがあります。SQL、Python、エクセルでの四則演算について例が書かれています。
文字コードは文字をコンピュータで処理するため、文字の種類を割り振った(符号化した)ものがあり、EUC-JP、JIS(ISO-2022JP)、Shift_JIS、UTF-8、UTF-16が例としてあります。データ作成したシステムツールと、それを集約して分析を行うシステムやツールが異なる場合に用います。たとえばWindowsにデフォルトで入っているメモ帳を使う場合、変換元のテキストファイルを開くと右下の表示で文字コードを確認できます。そのファイルを別名で保存する場合、エンコードを切り替えて保存することで、文字コードを容易に変更できます。
データ出力
データ加工や分析をした結果を特定のフォーマットデータとしてエクスポートできます。代表的なフォーマットはこちらです。
データをデータベースに挿入するには複数の方法があります。対象がリレーショナルデータベースのときはSQLのINSERT文を用いてレコードを挿入します。CSV形式などのデータファイルを一括して挿入する場合は、対称のデータベース製品が提供するLOADコマンドやIMPORTコマンドが良く利用されます。リレーショナルデータベースのテーブルにはデータの型や桁数などが定義されており、投入対称のデータがテーブルの定義に従っている必要があります。またデータ項目がデータ型に従っていても、NOT NULL制約、一意性制約、外部参照制約などのデータベースの制約に違反すると挿入時にエラーとなるので、制約の理解が必要です。
データ展開
分析をするためのデータには社内のシステムに蓄積されたデータを利用するケースもあれば、公開されているWeb上のデータを習得して、利用することもあります。WebAPIは、HTTPなどのインターネット関連技術を利用してデータを送受信するための規格で、代表的なものにREST、SOAPがあります。このようなオープンな規格を用いて、異なるシステムからも同一の手順や仕様でデータを取得できます。
データ連携
ファイル共有サーバーは社内など自らの管理スペース内にサーバーを設置するオンプレミス型で設置されることもありますが、最近はクラウド上のファイル共有サービス利用が広まっています。デメリットは災害時の復旧などです。ファイル共有にはFTPサーバーを使うこともあります。FTPサーバーとのファイルの手印層にはFTP(File Transfer Protocol)を用います。暗号化されていないので注意が必要です。分析担当者は共有されたデータファイルをエクセルなどに取り込んで分析します。
BIツールとは、ビジネスインテリジェンスツールの略で、車内にあるさまざまなデータを集約し、一目でわかるように見える化するためのツールです。
BIツールはエンタープライズBIとセルフBIに分けられます。前者は2000年ごろから登場したツールです。データの加工・集計・分析・出力が複雑で、IT部門など専門部署にて管理されます。後者はわかりやすいUI(ユーザーインターフェイス)上で、ユーザー自身がレポート作成やデータ分析を行えます。
データのグラフ化には次のような作業が必要です。
プログラミング
基礎プログラミング
データの抽出、データの加工、データの分析の流れにおいて用いるプログラム言語について以下のようなものがあります。
プログラムの中でデータを保持する領域のことを変数といい、そのデータがどういった種類のものかをコンピュータに解釈させるために付与される属性をデータ型といいます。多くのプログラミング言語は整数を扱う整数型、小数を扱う浮動小数点型、真偽の2値をあつかうブール型、文字列を扱う文字列型といったデータ型が備えられています。多くのプログラミング言語は、異なるデータ型同士では算術演算子による処理が行えないため、データ型の変換をする必要があります。この型変換を明示的に指定して行うことを明示的型変換、明示的に指定せずコンピュータの判断によって自動的に行わせることを暗黙の型変換といいます。Pythonでは変数作成時にデータの型宣言を必要としないので、意図しない暗黙の型変換が発生することがあります。
1~5までを出力しつつ、2の倍数のときは!も出力する処理は次のようなフローチャートで表せます。
データ(プロパティ)とそれらを操作する処理(メソッド)を1つにまとめたものを、オブジェクトやクラスといいます。それらを組み合わせてソフトウェア全体を構築しようとする考えをオブジェクト指向といいます。オブジェクト指向を取り入れるプログラミング言語をオブジェクト指向言語といい、Java、C++、Python、R言語などがあります。
継承とはスーパークラス(親クラス)を継承して、親の特徴を引き継いだクラスをサブクラス(子クラス)といいます。
カプセル化とはクラスがもつデータや処理をクラス外から参照できないようにすることです。バグの派生を抑制できたり、ソースコードの可読性が向上します。Javaの場合priveteやpublicとつけると外部からアクセスできたり、できなかったりすることができます。外部のクラスからプロパティを操作する際は、アクセサという操作メソッドを用意し、メソッド経由で操作させるのが一般的です。getter/setterとよばれます。
ポリモーイズムとは継承した機能の一部を変更できることです。犬だとワン、猫だとニャンと出力できます。
ホワイトボックスは、プログラムに注目して行う、ブラックボックスは入出力に注意して行います。ホワイトボックステストはコードカバレッジ(コード網羅率)で評価します。ブラックボックステストについて、制御フローテストとはプログラムのフローチャートの条件分岐に着目し、分岐条件を網羅するようにテストをする方法です。命令網羅とは対象プログラムの中のすべての命令を一度は実行する方法で、分岐網羅とは対象プログラムの中の条件分岐についてそれぞれの条件が真または偽になる場合は少なくとも1回は含めるということです。データフローテストとは、プログラムの中で使用されるデータ(変数)に着目し、それがどこで定義され、どこで使用され、どこで消滅するかを検証するテストです。テストケース作成の際は、境界値分析や同値分類法などもあります。
拡張プログラミング
JSONはJavaScriptのオブジェクト記法でデータが定義され、同じファイル内でデータ定義もされます。XMLはデータとは異なるXML Schemaのファイルでデータ定義されます。これらは表形式のCSVと異なり配列や入れ子になる場合があるので、データ定義を確認し、階層を意識してデータ処理を行う必要があります。
組み込み関数は特別な手順なしで呼び出せる関数で、Pythonの場合はprint関数などが該当します。標準ライブラリはプログラミング言語が用意している機能群のことです。外部ライブラリの一例にPythonの機械学習ライブラリのscikit-learnがありあす。
外部ライブラリはプログラムの作業効率をあげるのに欠かせませんが、Javaのログ出力で頻繁に利用された外部ライブラリのLog4jに脆弱性がみつかったケースのようにバグなどが見つかる可能性があります。
AIサービス利用
WebAPI(REST)の活用により、外部サービスを活用し短気期間での分析機能の実現可能になり、外部サービスが提供する最新のテクノロジーやアルゴリズムを利用可能で、分析機能や予測モデルを開発するコストを削減可能で、必要なサービスを組み合わせて柔軟で効率的な開発が可能になりました。このようにメリットがある一方で、次のようなデメリットがあります。APIの認証や通信の暗号化などセキュリティの確保、外部サービスに送信するプライバシーデータの扱い、外部サービスの仕様変更やサービスの停止が発生する可能性があり、外部サービスの課金体系確認やコスト見積での注意が必要です。
単語誤り率(WER)と文字誤り率(CER)が大事です。それぞれ次のように定義されます。これらに注意して内容に合わせた適切なAPIを選択するようにします。
迅速なバグ検出と修正、品質向上と一貫性の確保、リソースの最適な利用などが大事です。
アルゴリズム
効率の良いプログラムを書くために繰り返しの処理を見ることは大事です。実行時間計測はプログラムがCPUを使用しているユーザーCPU時間と、OSが使用しているシステムCPU時間に分けて計測されることが多いです。システムCPU時間が長い場合は、システムコール(OSの機能を呼び戻している箇所)を減らせないか検討します。
分析プログラム
Jupiter NotebookやRStudioは対話型の開発環境と呼ばれています。これらは直感的な操作が可能なGUI画面が準備されており、容易にプログラムの実行制御を行います。Jupiter NotebookはPythonやRubyでの開発でよく利用されます。RStudioはRを用いた開発でよく利用されます。
Noteook環境を使ってPythonやRのコードを回は多雨して実行するスキルは大切です。クラウド上の総合環境の利用は次のような利点があります。柔軟なリソース管理、共同作業とリアルタイムコラボレーション、事前構築されたライブラリとツールです。一方でデメリットは、セキュリティ面や、課金体系などです。
SQL
SQL(Structured Query Language)はリレーショナルデータベースのデータを操作する言語です。テーブルやインデックスを定義するDDL文とデータを操作するDML文があります。
DML文の基本構文に、下記のSQL記述を組み合わせて操作を行います。
ITセキュリティ
基礎知識
セキュリティの3要素は機密性、完全性、可用性です。それぞれconfidentiality,integrity,availabilityなので頭文字をとってCIAと言います、機密性の対策はパスワード認証、アクセス権限制御、暗号化などで完全性の対策は電子署名、ハッシュ関数などで可用性の対策はシステムの二重化、バックアップなどです。ISO/IEC27001 (JIS Q27001)やISMS(情報セキュリティマネジメントシステム)にはCIAの実現が書かれています。
攻撃と防御手法
アクセス権限を制御することに対して、付与するアクションを認可と言います。これらを考えてデータ資産に対して適切なアクセス権限を設定します。以下のような複数レベルでのアクセス権限管理があります。OSレベル、ネットワークレベル、アプリケーションレベルです。
暗号化技術
共通鍵は、同じ送信者と受信者が何回も通信をやり取りする際は有用です。公開鍵暗号方式は、秘密鍵で暗号化されたデータは公開鍵で復号可能で、公開鍵で暗号化された鍵は秘密鍵で復号可能です。共通鍵暗号方式の方が漏洩リスクが高いです。SSLでは公開鍵暗号方式を用いて通信を行う2者間で一時的な共通鍵を共有して、その後は共通鍵方式で暗号化を行います。
電子署名は対象データが作成者本人によって作成されたものです。公開鍵暗号方式を活用して電子署名を実現する動作の流れは以下です。
送信者と送信者の公開鍵の関係を保証し、送信者が信頼できる人物や組織であることを証明するため、公開鍵認証基盤(PKI:Public Key INfrasuructure)があります。利用者はこのPKIの認証局に登録された利用者情報と公開鍵を信用してデータ通信を行います。
データを送信する際にメッセージの暗号化を行い、安全にデータを送ることができる仕組みが以下です。
公開鍵暗号化方式のデジタル署名は以下の流れです。
ハッシュ関数は特定の文字列を別の数値文字列に変換する関数です。例えばABCDFGという文字列は8E5Aという別の文字列に変換できます。ハッシュ関数は非可逆な性質を持つので、逆の変換はできません。ハッシュ関数で変換された値は要約値やハッシュ値といいます。データを送る際はハッシュ値も一緒に格納することにより改ざんを検出できます。ハッシュ値は改ざん検出の他にも元データを効率的に検索するためのキーとして活用することもあります。ハッシュ値が短いと、元データが別でも同一のハッシュ値に変換される衝突という事象が発生します。
認証
OAuthはリソースへのアクセスの認可を行うための標準仕様です。これは異なるWebサイト間でWebサービスのアクセス権限の認可を行います。このWebサイトへのアクセスやREST APIへのアクセスを許可する仕組みを認可といいます。認可で保護されるWebサイトやAPIをリソースといいます。OAuthでは異なるリソースへの認可を管理するためにアクセストークンを使用します。利用者であるアクセス主体は認証成功後に認可サーバーから一定期間有効なアクセストークンを取得します。アクセス主体はアクセストークンをリソースサーバーに渡すことにより、IDやパスワードを共有することなく、リソースサーバー上のリソースへアクセスできます。
AIシステム運用
AutoML
AutoML(Automated Machine Learning)は自動化された機械学習の略です。ソフトウェアとして提供される形態と、クラウドのマネージドサービスとして提供されるものがあります。
MLOps
バージョン管理は、開発するソフトウェアのソースファイルを蓄積し、ソースコードの変更を追跡管理する機能です。オープンソースのバージョン管理システムとして有名なのがGit、Subversionで、実際に多くのプロジェクトの開発現場でこれらのバージョン管理ツールが採用されています。特にGitをベースとしたウェブサービスであるGitHubはオープンソースソフトウェアの開発ソースやドキュメントの公開に広く活用されています。バージョン管理ツールのドキュメント格納領域をリポジトリといいます。Subversionは集中リポジトリ方式であるのにあ地して、Gitは分散リポジトリ方式をとっています。RやPythonなどの開発言語を用いて分析モデルをプログラミング開発する場合も、バージョン管理ツールは有用です。バージョン管理ツールを導入するメリットは以下です。
MLOpsはDevOPS(developmento+operations)のエンジニアリング手法やプラクティスを応用し、機械学習モデルの開発から運用までのライフサイクルを統合して分析モデルを継続的に発展させるための実践的手法です。MLOpsはmachine laeaning+operationsです。機械学習モデルの開発と展開に加えて継続的なモデルの評価と訓練データの再取得、モデルの再学習などのライフスタイルを管理します。モデル構築後も定期的な精度の評価と維持・改善活動が必要になります。
AIOPs
AIOps(Artificial Intelligence for IT Operations)は人工知能の技術分野を活用し、コストや負荷のかかるIT運用管理を自動化、簡素化するとともに、IT運用に関わる様々な問題を解決し、システムの品質向上、安定運用を目指すソリューションです。活用事例として以下があります。
生成AI
プロンプトエンジニアリング
生成AIを活用する際はプロンプトエンジニアリング(プロンプト技法)を用いたり、各種APIパラメータの設定を行います。プロンプト技法にはFew-shot Prompting(生成AIに対して同じタスクの入出力ペアを数個与えることでパターンを学習できます)やChain -of -Thought(生成AIに対して思考過程の複数ステップを順番に学習させてから実行させることで、より複雑なタスクを解決させます)などがあります。APIパラメータにはTemperature(モデルが予測する各単語の確率分布に影響を与え、選択肢の確率の大きさを調節します。Temperatureが高いと確率の差が小さくなりランダムに単語が選ばれすくなりますが、低いと確率が高い単語が選ばれやすくなり、文法的で論理的な文章が生成されますが、創造性が低くなります)やTop -p(次に選ばれる単語の候補を確率の高いものから選び、累積確率が閾値pを超えるまで制限します。Top-pは選択肢として考慮される単語の範囲を制御しますが、これが高いと選択肢が広がり、多様な単語が選ばれる可能性がありますが、生成品質が落ちます)があります。
画像生成AIは文章(プロンプト)を入力して該当する画像を自動で生成します。様々な種類のAIがあり、標準機能として事前学習済みモデルを選択できます。サービスによっては自ら用意したデータLoRA(Low~Rank Adaptation)を活用してチューニング可能です。入力は的確で具体的であることにして直接でシンプルな表現します。入力は説明的で、詳細を付け加えていきます。そして正しい文法や表記で入力し、ネガティブプロンプトや協調構文などは生成AIごとに違うのでルールに合わせて利用します。
コーティング支援
大規模言語モデル(LLM)を用いて文章で指示するだけでコードの作成、修正、改良が可能となりました。
上のようなメリットだけでなく下のようなデメリットもあります。
適切なダミーデータの作成は大事です。大規模言語モデルでは類似ダミーデータを自動的に生成できます。
上のメリットだけでなく下のデメリットもあります。
ビジネス力
行動規範
ビジネスマインド
ビジネスにおける分析的でデータドリブンな考え方に基づいて行動するとは次の4つを意味します。
分析対象となるビジネスに関わるステークホルダーの利害や目的と合致
分析目的を満たすための論理構成
論理構成から必要となるデータを想定・準備できている
分析により得られた結果から意思決定する
ビジネスの目的を考え、ビジネスの目的を達成するための課題・仮説を考え、原因・解決策を探るためのデータを準備します。つまり目的、論理、データの3階層を常に意識することが大事です。
KGI(Key Goal Indicator)重要目標達成指標や、KPI(Key Performance Indicator)重要業績評価指標の変化を、、数値億票として定義することは大事です。これらを欠くと次のことが起こり得ます。
目的やゴールを明確に設定しないまま分析してしまう
取得したデータを手当たり次第集計し、疑ったグラフを作ってしまう
最先端の機械学習アルゴリズムを適用し、重箱の隅をつつく分析をしてしまう
課題や仮説の言語化は問題解決スキルの1つです。これらはプロジェクト遂行する上での軸であるとと同時に変化するものです。
課題や仮説を言語化するために問題解決力、論理的思考、メタ認知思考(客観的に見る)、デザイン思考などがあります。
一次情報(データ収集などの情報)、二次情報(他社が書いた本など、一次情報を編集した情報)、三次情報(噂話のような出どころ不明な情報)があります。
データ・AI倫理
不正行為を行わない倫理観は大切です。捏造、改竄、盗用これらは、fabrication,falsification,plagiarismの頭文字をとってFFPと言われています。この倫理の問題はデータバイアスによるAIの差別的判断やディープフェイクと言われる技術の危険性があります。データ倫理はデータの倫理、アルゴリズムの倫理、実践の倫理の3つから成っており、ELSI(ethical,legal and social issues)つまり倫理的、法的、社会的課題の研究も盛んになっています。2019年に内閣府から出された人間ちゅ真のAI社会原則も、このデータ倫理の問題に対する政府の意思が一部反映されています。
フェイク動画による人権侵害などはあってはなりません。ディープフェイクとは、このようなフェイク動画を深層学習で作り出す技術です。敵対的生成ネットワーク(GAN)の発展による影響が大きいです。それ以外ではオートエンコーダーなどの深層学習技術が使われており、フェイク動画などの作成が行われます。現在ではBotを大量生産し、それがフェイクニュースを流す構造になっています。この要因として生成AIの発展があります。OpenAI社が発表したChatGPTやマイクロソフト社のAzure製品への組み込みなど、大規模言語モデルが実用的になりました。チャットボットが暴言を吐くなど、様々な事例が問題となっています。これはAIの公平性などの考察に大事な考えです。
コンプライアンス
どのような場合の法令に注意すべきか、何がリスクか、倫理的に許されないことは何か?をおさえておきましょう。これは2018年におけるGDPR(general data protection regulation)EU一般データ保護規則では、細かい要件などが定められています。CCPA(california consumer privacy act)カルフォルニア州消費者プライバシー法も2020年から適用開始されました。2023年からはCPRA(california privacy rights act)カルフォルニア州プライバシー権法が施行され消費者の権利が強化されています。日本でも2022年に改正個人情報保護法が施行されました。2023年には改正電気事業法が施行されました。
倫理的思考
MECE
MECE(ミーシー)はもれなく重複なくという意味で、mtutually,exclusive,collectively,exhaustiveつまり、お互いに、重複せず、全体的に、漏れがない頭文字をとったものです。論理的思考の最も基本的な考えです。
構造化能力
分析課題周辺のビジネスの実態や背景知識をイメージし、インプットとアウトプットのイメージ、分析手法やその手順をイメージし、書道としては、事前に準備することは何か?分析課題や当該領域の重要なポイントの整理、進め方の仮案のイメージを持っておけば十分です。
言語化能力
目で見て捉えた事実と、考察から導かれた意味合いの言語化が重要です。
ストーリーライン
一般的な論文構成の流れをおさえます。
ドミュメンテーション
引用についても大事です。
直接引用が短い場合は「」を用いて本文中にその部分を記載します。永井場合位は、出典として転載します。
メッセージをわかりやすく伝えるには、人に理解してもらうためのストーリーラインを持った構成を先に作ることが重要です。これは2つのピラミッド構造が知られています。
説明能力
ステークホルダーに対して報告を行う必要があります。この際に、分析の途中段階で定期的に関係者からのレビューを実施しておき、どのような論理構成で分析を進めたか、論理構成を可視化し、メンバーに共有しておき、論拠不足・論理破綻の指摘が論理構成のどの点を示しているか理解し、周囲の意見を柔軟に受け入れるマインドセットを持つことが大事です。また傾聴のスキルが必要です。
着想・デザイン
AI活用検討
以下のような活用シーンがあります。
課題の定義
KPI
KGI→KPIの順が大事です。そして収益方程式とは売上=平均客単価×客数となります。以下がKPIツリーの例です。
スコーピング
ビジネスとは社会に役に立つ意味のある活動全般と定義されています。スコーピングとは分析対象となる事業領域に複数存在する課題の中で、どれを取り扱うかを絞り込む作業です。事業領域、取り扱う課題領域の例を以下に示します。
次に基本的な課題の枠組みについて整理します。この時、品質(適切な品質を保証するため品質をより良くするための活動)、価格(適切なコスト管理をするための活動)、納期(適切な納期までの行程を管理するための活動)を用います。また、自社の競争優位性を探るために5フォース分析を行うこともあります。
分析する上でプロジェクトとして把握すべき要素は、分析目的において取り扱うデータ範囲、データ分析に必要となるデータ取得方法、データ分析にかかる時間、データ分析のための統計解析や機械学習モデル、実行環境です。
アプローチ設計
データ入手
アクセスを確保できるということは下記を意味します。問題を探索する上で、どのような仮定を検証すれば良いかを理解でき、仮説の検証に必要なデータがどのようなものかを洗い出すことができ、洗い出したデータが入手・使用可能か検証できることです。
分析アプローチ設計
データサイエンスのプロジェクトでは、まず分析プロジェクトの目的を明確にします。次に目標達成のため、どのような結果がデータ分析の結果から導き出せると良いか仮説を立てます。この際に、プロジェクトのタスク量や人的リソースの見積りもできると良いです。
生成AI活動
ハルシネーションは大規模言語モデルが事実に基づかない、あるいは誤った情報を生成する現象です。
対処法として生成された情報の根拠を追求する姿勢が大事で、他に信頼できる情報ソースや他LLMの出力結果と比較して、一貫性や正確性を検証することは必須です。
データ理解
統計情報への正しい理解
エビデンスベーストとは根拠に基づいたという意味で、個人の勘や思い込みでなく、事実やデータをベースに判断する考え方です。
ビジネス観点での理解
ビジネス観点で仮説を持つこと、課題を発見できることは、データサイエンスをビジネスに適用する第一歩です。データ分析プロジェクトがPoC(PFpresent present Concept)概念実証で終わってしまうのは、仮説と異なる結果をステークホルダーが受け入れず、データ分析は使えないという不名誉な烙印を押されるといったこともあります。
事業への実装
評価・改善の仕組み
モニタリングとは、ビジネスの本来の目的・目標を達成するために、何が起きているのか、今後どのようなアクションをすべきかといった判断につながる評価・改善活動を指します。
契約・権利保護
契約
機密保持契約では二者それぞれ持つ営業や技術に関する情報などをある一定の期間の範囲・用途において、相手側へ開示する範囲、情報の活用、漏洩しないためのルールの取り決めなどを行います。プロジェクト開始前に前もって締結されるものです。販売許諾契約は相手が持つ製品・サービスについて決められた範囲においてその販売の許諾を得るもので、一定の期間で販売された売上の何%かをロイヤリティとして支払ったり、あるいは独占的に販売する権利を持つといった取り決めをします。個人情報の授受に関する契約は2者間でそれぞれの製品・サービスを利用する顧客に関する情報を取得・開示・管理・破棄する取り決めです。業務委託契約は請負契約、委任契約、準委任契約に分類されます。請負契約は、委託社が仕事の完成と引き換えに受諾社に報酬の支払いを約束する契約です。準委任契約は委託社が法律行為えないジム処理を受諾社に委託する契約です。
権利保護
大規模言語モデルに秘密情報を入力してしまった結果、意図せずその情報が大規模言語モデルの学習に利用され、外部に流出し企業が謝罪する事態になる可能性があります。そういった意図しない情報漏洩などのリスクから利用者を守るためにガイドラインを理解し遵守することが大事です。
PJマネジメント
プロジェクト発足
リソースマネジメント
下記のような模索を考えます。
スケジュール管理などは、WBS(work breakdown structure)やガントチャート、マインドマップなどを活用してタスクを洗い出し、工程表を作成すると効果的です。
リスクマネジメント
レピュテーションリスク(悪評や風評によって企業価値が下がり、経営に支障をきたす危険性)に注意します。障害報告書や発見時の報告手順などを確認します。5W1Hをもとにします。サービス品質の考え方も大事で、SLA(サービス品質保証)としてまとめ遅延や障害などの対処方法を契約書として記述することも大事です。
数理・データサイエンス・AI(リテラシーレベル)モデルカリキュラム
数理・データサイエンス・AI(リテラシーレベル)モデルカリキュラム
人間中心の適切な判断ができ、活用することが大事です。リテラシー教育として全ての大学、高専生がモデルカリキュラムを検討します。学習項目は、社会におけるデータ・AI利活動、データリテラシー、データ・AI利活用における留意事項です。
社会におけるデータ。AI利活用(導入)で学ぶこと
社会におけるデータ・AI利活用(導入)で学ぶスキル/知識
データサイエンスで、データ可視化、モデルか、モデル利活用、非構造化データ処理、生成、オペレーションズリサーチを学ぶことで、データ・AI利活用のための技術を知るとともに、AIを活用した新しいビジネス/サービスは複数の技術が組み合わされて実現していることを理解します。データエンジニアリングでは、データの向上を通して、構造化データや非構造化データ(文章、画像/動画、音声/音楽など)の特徴を理解し、社会で活用されているデータについて学びます。また、生成AIを学ぶことで、適切なプロンプトの必要性について理解します。ビジネスについて、行動規範や着想・デザイン、課題の定義、アプローチ設計を通して、データやAIを活用したビジネス/サービスの事例をしり、データ・AI活用領域の広がりを理解します。
社会におけるデータ・AI利活用(導入)の重要キーワード解説
Society5.0とは、サーバー空間とフィジカル空間を行動に融合させたシステムにより、経済発展と社会的課題の解決を両立する、人間中心の社会を目指します。society1.0,2.0,3.0,4.0はそれぞれ、狩猟社会、農耕社会、工業社会、情報社会になります。データ・AIの活動領域は、企業における事業活動がバリューチェーンに当てはめて考えることが大事です。
生成AIの活用により、文章や画像、音声などを生成できます。生成AIの応用領域として、対話やコンテンツ生成、翻訳・要約・執筆支援、コーティング支援などがあります。プロンプトエンジニアリングも大事です。
データリテラシー(基礎)で学ぶこと
データリテラシー(基礎)で学ぶスキル/知識
データサイエンスでは、数学的理解や科学的解析の基礎、データの理解・検証、データ準備を学ぶことで、データの特徴を読み解き、起きている事象の背景や意味合いを理解するスキルを身につけます。また、比較対象を正しく設定し、数字を比べるスキルを身につけます。データ可視化を学ぶことで、不適切に作成されたグラフ/数字に騙されず、適切な可視化手法を選択し、他者にデータを説明するスキルを身につけます。データエンジニアリングでは、データ加工や、データ共有を学ぶことで、スプレッドシートやBIツールなどを使って、小規模データを集計・加工するスキルを身につけます。ビジネスでは、行動規範や、論理的思考、データ理解を学ぶことで、データを読みとく上でドメイン知識が重要であることや、データの発生現場を確認することの重要性を理解します。
データリテラシー(基礎)の重要キーワード解説
データの比較については、そのデータに関するドメイン知識が必要になります。
データ・AI利活用における留意事項(心得)で学ぶこと
データ・AI利活用における留意事項(心得)で学ぶスキル/知識
データサイエンスでは、モデル化、生成を通して、データバイアスやアルゴリズムバイアス、ハルシネーションについて学び、データ駆動型社会におけるリスク・脅威を理解します。データエンジニアリングでは、ITセキュリティについて学ぶことで、情報セキュリティ対策を検討する際のポイント(セキュリティの33要素:機密性、完全性、可用性)を理解します。また、マルウェアなどによる深刻リスク(消失・漏洩・サービスの停止)を学ぶことで、個人のデータを守るために留意すべき事項を理解します。ビジネスでは、行動規範、契約・権利保護を学ぶことで、データの捏造、改ざん、盗用を行わないなど、データ・AIを利活用する際に求められるモラルや倫理について理解します。また、個人情報保護法やEU一般データ保護規制(GDP)など、データを取り巻く国際的な動きを理解します。アプローチ設計では、生成AIのハルシネーションについて学びます。
データ・AI利活用における留意事項(心得)の重要キーワード解説
基本理念として、人間の尊厳が尊重される社会、多様な背景を持つ人々が多様な幸せを追求できる社会、持続性ある社会の3つが示されています。
生成AIの留意事項としては、ELSI(エルシー)について考えることが大事です。つまり倫理的、法的、社会的課題の英語訳、ethical,legal and social issuesの頭文字をとったエルシーについて考えます。
数理・データサイエンス・AI(リテラシーレベル)を詳しく学ぶ
webサイトは、すうり・データサイエンス・AI教育強化拠点コンソーシアムのホームページが良いです。書籍については、「データサイエンス入門シリーズ(講談社)」がDS検定の試験範囲となる導入、基礎、心得について学ぶことができます。
DS検定は合格率は高いですが、しっかりと学習しないといけない試験です。僕は3月に受験しますので、お互いがんばりましょう!