機械学習の理論と手法の体系的な概要

前に書いてある:機械学習やディープラーニングは原理を理解することが非常に重要で、使い方だけ知っていればチューナーにしかなれませんし、面接でも原理を聞かれます。さらに、モデル化するには原理を知らなければなりません。機械学習とディープラーニングを選択するということは、基本的には研究を行うことになりますが、研究をするときに原理を知らないわけがありません。

機械学習とディープラーニングでできること

传统预测、图像识别、自然语言处理

機械学習とは何ですか

数据→模型→预测
从历史数据中获得规律,这些历史数据是怎样的格式呢?
数据格式:数据集
数据集构成:特征值+目标值

機械学習アルゴリズムの分類

目标值是类别——分类问题
目标值是连续性数据——回归问题
没有目标值——无监督学习

機械学習の開発プロセス

1、数据处理
2、特征工程(将数据处理成更能被机器学习算法使用的数据)
3、算法训练——得到模型
4、模型评估

学習フレームワークと教材

1、算法是核心,数据和计算是基础
2、找准定位
3、怎么做?
    1、书籍:
       机器学习—周志华“西瓜书”
       统计学习算法—李航
       深度学习“花书”
    2、库和框架
    机器学习框架:scikit-learn
    深度学习框架:pytorch  tensorflow  theano  caffe2  chainer

データセット

学習フェーズで利用可能なデータセット

  1、scikit-learn
  2、kaggle
  3、UCI

scikit-learn ライブラリの概要:

  Python语言的机器学习工具
  包括许多知名的机器学习算法的实现
  文档完善、容易上手、丰富的API
  目前稳定版本0.24.1
  安装:pip3 install Scikit-learn==0.24.1
  查看是否安装成功:import sklearn
  注:安装需要numpy、scipy等库
  sklearn包含的内容:分类、回归、聚类、降维、模型选择、特征工程

sklearn データセットの使用法

  sklearn.datasets
      load_*     获取小规模数据集
      fetch_*    获取大规模数据集

データセットを表示するコードは次のとおりです。

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
def datasets_demo():
    """
    sklearn数据集使用
    """
    #获取数据集
    iris=load_iris()
    print("鸢尾花数据集:\n",iris)
    print("查看数据集描述:\n",iris["DESCR"])
    print("查看特征值的名字:\n",iris.feature_names)
    print("查看特征值:\n",iris.data,iris.data.shape)

    #数据集划分
    x_train,x_test,y_train,y_test = train_test_split(iris.data,iris.target,test_size=0.2,random_state=22)
    #查看测试集的特征值
    print("测试集的特征值:\n",x_test,x_test.shape)

    return None
if __name__=="__main__":
    datasets_demo()

特徴エンジニアリング

業界では、データ機能が機械学習の上限を決定し、モデルとアルゴリズムがこの上限に近づくだけであるという考えが広く広まっています。
特徴エンジニアリングは、特徴が機械学習アルゴリズムにおいてより適切な役割を果たすことができるように、専門的な背景知識とスキルを使用してデータを処理するプロセスです。それは機械学習の効果に直接影響します。

特徴エンジニアリングを行う方法

sklearn—特徴エンジニアリング
パンダ—データクリーニング、データ処理

特徴量エンジニアリングには次のものが含まれます。

 1、特征抽取/提取
机器学习算法——统计方法——数学公式
(数学公式无法识别字符串)
文本类型转换为→数值
类型转换为→数值
图像特征提取(深度学习)

特徴抽出 API:

   sklearn.feature_extraction
2、特征预处理
   归一化、标准化
   归一化缺点:计算公式主要依靠最大值和最小值,一旦出现异常值,将对整个数据有很大影响
   标准化:通过对原始数据进行变换,将数据变换到均值为0,标准差为1范围内:
   公式:

ここに画像の説明を挿入

 3、数据降维   
 ndarray
    维数:嵌套的层数
    0维:标量
    1维:向量
    2维:矩阵
    3维:多个2维数组嵌套而成
    n维......
    降维:降低的对象是2维数组,此处的降维是降低特征的个数(列数)。得到一组不相关主变量的过程。
    特征与特征之间不想关。
    降维方法两种:
    1、特征选择
    2、主成分分析
    API:sklearn.decomposition.PCA(n_components=None)
    n_components  是小数:表示保留百分之多少的信息。整数:表示减少到多少特征

意思決定ツリー
構造: if-else 構造の
アイデア: 意思決定を効率的に行う方法。一連の機能に重点が置かれています。
(KNN アルゴリズムと比較して、デシジョン ツリーは大量のデータを扱う状況に適しています)
利点: 視覚化、強い解釈可能性
欠点: 過学習しやすい

ランダム フォレストアンサンブル学習法
とは: 複数のモデルを組み合わせて構築することで、単一の予測問題を解決します。複数の分類器を生成し、個別に学習して予測を行い、最終的にそれらを組み合わせて複合予測を作成するため、単一の分類によって行われる予測よりも優れています。ランダム フォレスト: 複数の決定木で構成される分類子。最終結果は、複数の決定木のモードによって決まります。ランダム: トレーニング セットのランダムと特徴のランダムトレーニング セットのランダム: ブートストラップ (置換サンプリングによるランダム)


線形回帰
現象: 過小適合と過適合
線形関係と線形モデルは区別する必要があります。
目標: 予測を正確にするためのモデル パラメーターを見つけます。

損失関数
最適化損失: 最適化手法:
正規方程式:天才、直接解法(データ量が少ない場合に適)
勾配降下法: コツコツ、試行錯誤、改善(より汎用性が高い)

事例: ボストンの住宅価格予測:
1) データセットの取得
2) データセットの分割
3) 特徴量エンジニアリング: 無次元 (標準化)
4) 推定量エンジニアリング: fit()–model
coef_intercept_
5) モデルの評価

過小適合と過適合

**アンダーフィッティング: **学習された特徴が少なすぎるため、区別基準が大まかすぎて正しく識別できません。(トレーニング セットとテスト セットの両方がデータにうまく適合できず、データ量が少なすぎます)
**過適合: **学習された特徴が多すぎるため、一部の特徴が選別され、結果が不正確になります。(トレーニング セットではうまく機能しますが、テスト セットではうまく機能しません)
ここに画像の説明を挿入

ここに画像の説明を挿入
解決策:
ここに画像の説明を挿入
左側のものはシンプルすぎてアンダーフィットしやすく、右側のフィッティング効果は非常に正確ですが、一般化能力が低い、オーバーフィットしやすいので、中間の効果が最適です。
過学習の解決策:正則化: 高次項特徴の影響を最小限に抑えます。
L1 正則化: 損失関数 +λペナルティ項(パラメータの絶対値) ——— LASSO
L2 正則化: 一部のパラメータを 0 に近づけ、特定の特徴の影響を弱めます。損失関数 +λペナルティ項(パラメータの二乗) ————— リッジ—リッジ回帰

リッジ回帰 - L2 正則化による線形回帰
ロジスティック回帰 - 分類用 (分類アルゴリズムです、2つのカテゴリー)
線形回帰の出力はロジスティック回帰の入力です。
概略図:
ここに画像の説明を挿入
分類の評価方法: 精度と再現率

おすすめ

転載: blog.csdn.net/weixin_51610638/article/details/120655308