日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

机器学习的基础

發布時間:2024/8/1 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机器学习的基础 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

請看最新版的詳細總結

文章目錄

    • 一、機器學習基本概念
      • 1. 常用算法
      • 2. 常用概念
      • 3. 機器學習步驟框架
      • 4. 機器學習中分類和預測算法的評估
    • 二、sklearn機器學習庫的介紹
      • 3.1. 定義
      • 3.2. sklearn數據類型
      • 3.3. sklearn總覽
        • 3.3.1. 數據預處理
        • 3.3.2. 數據集
        • 3.3.3. 特征選擇
        • 3.3.4. 特征降維
        • 3.3.5. 模型構建
          • (1) 分類模型
          • (2) 回歸模型
          • (3) 聚類模型
        • 3.3.6. 模型評估
        • 3.3.7. 模型優化
    • 三、機器學習用到的python庫
      • 1. Numpy
      • 2. Pandas
      • 3. Matplotlib

一、機器學習基本概念

1. 常用算法

  • 線性回歸(Linear Regression
  • 邏輯回歸(Logistic Regression
  • 線性判別分析(Linear Discriminant Analysis
  • 分類和回歸樹(Decision Tree
  • 樸素貝葉斯(Bayes Theorem
  • k近鄰(K-Nearest Neighbors
  • 支持向量機(Support Vector Machine
  • k-means聚類
  • PCA降維
  • 自適應核回歸

2. 常用概念

  • 訓練集:又稱訓練樣例,用來進行訓練,也就是產生模型或者算法的數據集

  • 測試集:又稱測試樣例,用來專門進行測試已經學習好的模型或者算法的數據集

  • 特征值:屬性的集合,通常用一個向量來表示,附屬于一個實例

  • 標記:實例類別的標記(正例與反例或者更多)

  • 分類:目標標記為類別型數據

  • 回歸:目標標記為連續型數值

  • 有監督學習:訓練集有類別標記

  • 無監督學習:訓練集無類別標記

  • 半監督學習:訓練集既有有類別標記又有無類別標記

3. 機器學習步驟框架

  • 把數據拆分為訓練集和測試集
  • 用訓練集和訓練集的特征向量來訓練算法
  • 用學習來的算法運用在測試集上來評估算法(可能要涉及到調整參數,用驗證集)
  • 4. 機器學習中分類和預測算法的評估

    • 準確性
    • 速度
    • 強壯性
    • 可規模性
    • 可解釋性

    二、sklearn機器學習庫的介紹

    3.1. 定義

    • 定義sklearn是基于python語言的機器學習工具包,是目前做機器學習項目當之無愧的第一工具。 sklearn自帶了大量的數據集,可供我們練習各種機器學習算法。 sklearn集成了數據預處理、數據特征選擇、數據特征降維、分類\回歸\聚類模型、模型評估等非常全面算法。

      分類:識別某個對象屬于哪個類別,常用的算法有:SVM(支持向量機),nearest neighbors(最近鄰)、random forest(隨機森林)

      回歸:預測與對象相關聯的連續值屬性,常用算法:SVR(支持向量機), ridge regression(嶺回歸)、Lasso

      聚類:將相似對象自動分組,常用算法: k-Means、 spectral clustering、mean-shift

      降維:減少要考慮的隨機變量的數量,PCA(主成分分析), eature selection(特征選擇)、non-negative matrix factorization(非負矩陣分解)

      模型選擇:比較,驗證,選擇參數和模型,常用的模塊有:grid search(網格搜索)、cross validation(交叉驗證)、 metrics(度量)

      預處理:特征提取和歸一化,把輸入的數據轉換為機器學習算法可用的數據

    3.2. sklearn數據類型

    ? 機器學習最終處理的數據都是數字,只不過這些數據可能以不同的形態被呈現出來,如矩陣、文字、圖片、視頻、音頻等。

    3.3. sklearn總覽

    3.3.1. 數據預處理

    • sklearn.preprocessing

      函數功能
      preprocessing.scale( )標準化
      preprocessing.MinMaxScaler( )最大最小值標準化
      preprocessing.StandardScaler( )數據標準化
      preprocessing.MaxAbsScaler( )絕對值最大標準化
      preprocessing.RobustScaler( )帶離群值數據集標準化
      preprocessing.QuantileTransformer( )使用分位數信息變換特征
      preprocessing.PowerTransformer( )使用冪變換執行到正態分布的映射
      preprocessing.Normalizer( )正則化
      preprocessing.OrdinalEncoder( )將分類特征轉換為分類數值
      preprocessing.LabelEncoder( )將分類特征轉換為分類數值
      preprocessing.MultiLabelBinarizer( )多標簽二值化
      preprocessing.OneHotEncoder( )獨熱編碼
      preprocessing.KBinsDiscretizer( )將連續數據離散化
      preprocessing.FunctionTransformer( )自定義特征處理函數
      preprocessing.Binarizer( )特征二值化
      preprocessing.PolynomialFeatures( )創建多項式特征
      preprocesssing.Normalizer( )正則化
      preprocessing.Imputer( )彌補缺失值
    • sklearn.svm

      函數介紹
      svm.OneClassSVM( )無監督異常值檢測

      上述preprocessing類函數的方法如下:

      函數方法介紹
      xxx.fit( )擬合數據
      xxx.fit_transform( )擬合并轉換數據
      xxx.get_params( )獲取函數參數
      xxx.inverse_transform( )逆轉換
      xxx.set_params( )設置參數
      xxx.transform( )轉換數據

    3.3.2. 數據集

    • sklearn.datasets
  • 獲取小數據集(本地加載):datasets.load_xxx()

  • 獲取大數據集(在線下載):datasets.fetch_xxx()

  • 本地生成數據集(本地構造):datasets.make_xxx()

    數據集介紹
    load_iris( )鳶尾花數據集:3類、4個特征、150個樣本
    load_boston( )波斯頓房價數據集:13個特征、506個樣本
    load_digits( )手寫數字集:10類、64個特征、1797個樣本
    load_breast_cancer( )乳腺癌數據集:2類、30個特征、569個樣本
    load_diabets( )糖尿病數據集:10個特征、442個樣本
    load_wine( )紅酒數據集:3類、13個特征、178個樣本
    load_files( )加載自定義的文本分類數據集
    load_linnerud( )體能訓練數據集:3個特征、20個樣本
    load_sample_image( )加載單個圖像樣本
    load_svmlight_file( )加載svmlight格式的數據
    make_blobs( )生成多類單標簽數據集
    make_biclusters( )生成雙聚類數據集
    make_checkerboard( )生成棋盤結構數組,進行雙聚類
    make_circles( )生成二維二元分類數據集
    make_classification( )生成多類單標簽數據集
    make_friedman1( )生成采用了多項式和正弦變換的數據集
    make_gaussian_quantiles( )生成高斯分布數據集
    make_hastie_10_2( )生成10維度的二元分類數據集
    make_low_rank_matrix( )生成具有鐘形奇異值的低階矩陣
    make_moons( )生成二維二元分類數據集
    make_multilabel_classification( )生成多類多標簽數據集
    make_regression( )生成回歸任務的數據集
    make_s_curve( )生成S型曲線數據集
    make_sparse_coded_signal( )生成信號作為字典元素的稀疏組合
    make_sparse_spd_matrix( )生成稀疏堆成的正定矩陣
    make_sparse_uncorrelated( )使用稀疏的不相關設計生成隨機回歸問題
    make_spd_matrix( )生成隨機堆成的正定矩陣
    make_swiss_roll( )生成瑞士卷曲線數據集
  • 3.3.3. 特征選擇

    • sklean.feature_selection

      函數功能
      feature_selection.SelectKBest( ) feature_selection.chi2 ( )feature_selection.f_regression( ) feature_selection.mutual_info_regression( )選擇K個得分最高的特征
      feature_selection.VarianceThreshold( )無監督特征選擇
      feature_selection.REF( )遞歸式特征消除
      feature_selection.REFCV( )遞歸式特征消除交叉驗證法
      feature_selection.SelectFromModel( )特征選擇

    3.3.4. 特征降維

    • sklearn.decomposition

      函數功能
      decomposition.PCA( )主成分分析
      decomposition.KernelPCA( )核主成分分析
      decomposition.IncrementalPCA( )增量主成分分析
      decomposition.MiniBatchSparsePCA( )小批量稀疏主成分分析
      decomposition.SparsePCA( )稀疏主成分分析
      decomposition.FactorAnalysis( )因子分析
      decomposition.TruncatedSVD( )截斷的奇異值分解
      decomposition.FastICA( )獨立成分分析的快速算法
      decomposition.DictionaryLearning( )字典學習
      decomposition.MiniBatchDictonaryLearning( )小批量字典學習
      decomposition.dict_learning( )字典學習用于矩陣分解
      decomposition.dict_learning_online( )在線字典學習用于矩陣分解
      decomposition.LatentDirichletAllocation( )在線變分貝葉斯算法的隱含迪利克雷分布
      decomposition.NMF( )非負矩陣分解
      decomposition.SparseCoder( )稀疏編碼
    • sklearn.manifold

      函數功能
      manifold.LocallyLinearEmbedding( )局部非線性嵌入
      manifold.Isomap( )流形學習
      manifold.MDS( )多維標度法
      manifold.t-SNE( )t分布隨機鄰域嵌入
      manifold.SpectralEmbedding( )頻譜嵌入非線性降維

    3.3.5. 模型構建

    (1) 分類模型

    • sklearn.tree

      函數功能
      tree.DecisionTreeClassifier()決策樹
    • sklearn.ensemble

      函數功能
      ensemble.BaggingClassifier()裝袋法集成學習
      ensemble.AdaBoostClassifier( )提升法集成學習
      ensemble.RandomForestClassifier( )隨機森林分類
      ensemble.ExtraTreesClassifier( )極限隨機樹分類
      ensemble.RandomTreesEmbedding( )嵌入式完全隨機樹
      ensemble.GradientBoostingClassifier( )梯度提升樹
      ensemble.VotingClassifier( )投票分類法
    • sklearn.linear_model

      函數功能
      linear_model.LogisticRegression( )邏輯回歸
      linear_model.Perceptron( )線性模型感知機
      linear_model.SGDClassifier( )具有SGD訓練的線性分類器
      linear_model.PassiveAggressiveClassifier( )增量學習分類器
    • sklearn.svm

      函數功能
      svm.SVC( )支持向量機分類
      svm.NuSVC( )Nu支持向量分類
      svm.LinearSVC( )線性支持向量分類
    • sklearn.neighbors

      函數功能
      neighbors.NearestNeighbors( )無監督學習臨近搜索
      neighbors.NearestCentroid( )最近質心分類器
      neighbors.KNeighborsClassifier()K近鄰分類器
      neighbors.KDTree( )KD樹搜索最近鄰
      neighbors.KNeighborsTransformer( )數據轉換為K個最近鄰點的加權圖
    • sklearn.discriminant_analysis

      函數功能
      discriminant_analysis.LinearDiscriminantAnalysis( )線性判別分析
      discriminant_analysis.QuadraticDiscriminantAnalysis( )二次判別分析
    • sklearn.gaussian_process

      函數功能
      gaussian_process.GaussianProcessClassifier( )高斯過程分類
    • sklearn.naive_bayes

      函數功能
      naive_bayes.GaussianNB( )樸素貝葉斯
      naive_bayes.MultinomialNB( )多項式樸素貝葉斯
      naive_bayes.BernoulliNB( )伯努利樸素貝葉斯
    (2) 回歸模型

    • sklearn.tree

      函數功能
      tree.DecisionTreeRegress( )回歸決策樹
      tree.ExtraTreeRegressor( )極限回歸樹
    • sklearn.ensemble

      函數功能
      ensemble.GradientBoostingRegressor( )梯度提升法回歸
      ensemble.AdaBoostRegressor( )提升法回歸
      ensemble.BaggingRegressor( )裝袋法回歸
      ensemble.ExtraTreeRegressor( )極限樹回歸
      ensemble.RandomForestRegressor( )隨機森林回歸
    • sklearn.linear_model

      函數功能
      linear_model.LinearRegression( )線性回歸
      linear_model.Ridge( )嶺回歸
      linear_model.Lasso( )經L1訓練后的正則化器
      linear_model.ElasticNet( )彈性網絡
      linear_model.MultiTaskLasso( )多任務Lasso
      linear_model.MultiTaskElasticNet( )多任務彈性網絡
      linear_model.Lars( )最小角回歸
      linear_model.OrthogonalMatchingPursuit( )正交匹配追蹤模型
      linear_model.BayesianRidge( )貝葉斯嶺回歸
      linear_model.ARDRegression( )貝葉斯ADA回歸
      linear_model.SGDRegressor( )隨機梯度下降回歸
      linear_model.PassiveAggressiveRegressor( )增量學習回歸
      linear_model.HuberRegression( )Huber回歸
    • sklearn.svm

      函數功能
      svm.SVR( )支持向量機回歸
      svm.NuSVR( )Nu支持向量回歸
      svm.LinearSVR( )線性支持向量回歸
    • sklearn.neighbors

      函數功能
      neighbors.KNeighborsRegressor( )K近鄰回歸
      neighbors.RadiusNeighborsRegressor( )基于半徑的近鄰回歸
    • sklearn.kernel_ridge

      函數功能
      kernel_ridge.KernelRidge( )內核嶺回歸
    • sklearn.gaussian_process

      函數功能
      gaussian_process.GaussianProcessRegressor( )高斯過程回歸
    • sklearn.cross_decomposition

      函數功能
      cross_decomposition.PLSRegression( )偏最小二乘回歸
    (3) 聚類模型

    • sklearn.cluster

      函數功能
      cluster.DBSCAN( )基于密度的聚類
      cluster.GaussianMixtureModel( )高斯混合模型
      cluster.AffinityPropagation( )吸引力傳播聚類
      cluster.AgglomerativeClustering( )層次聚類
      cluster.Birch( )利用層次方法的平衡迭代聚類
      cluster.KMeans( )K均值聚類
      cluster.MiniBatchKMeans( )小批量K均值聚類
      cluster.MeanShift( )平均移位聚類
      cluster.OPTICS( )基于點排序來識別聚類結構
      cluster.SpectralClustering( )譜聚類
      cluster.Biclustering( )雙聚類
      cluster.ward_tree( )集群病房樹
    • 模型方法

      方法功能
      xxx.fit( )模型訓練
      xxx.get_params( )獲取模型參數
      xxx.predict( )預測新輸入數據
      xxx.score( )評估模型分類/回歸/聚類模型
      xxx.set_params( )設置模型參數

    3.3.6. 模型評估

    • 分類模型評估

      函數功能
      metrics.accuracy_score( )準確率
      metrics.average_precision_score( )平均準確率
      metrics.log_loss( )對數損失
      metrics.confusion_matrix( )混淆矩陣
      metrics.classification_report( )分類模型評估報告:準確率、召回率、F1-score
      metrics.roc_curve( )受試者工作特性曲線
      metrics.auc( )ROC曲線下面積
      metrics.roc_auc_score( )AUC值
    • 回歸模型評估

      函數功能
      metrics.mean_squared_error( )平均決定誤差
      metrics.median_absolute_error( )中值絕對誤差
      metrics.r2_score( )決定系數
    • 聚類模型評估

      函數功能
      metrics.adjusted_rand_score( )隨機蘭德調整指數
      metrics.silhouette_score( )輪廓系數

    3.3.7. 模型優化

    函數功能
    model_selection.cross_val_score( )交叉驗證
    model_selection.LeaveOneOut( )留一法
    model_selection.LeavePout( )留P法交叉驗證
    model_selection.GridSearchCV( )網格搜索
    model_selection.RandomizedSearchCV( )隨機搜索
    model_selection.validation_curve( )驗證曲線
    model_selection.learning_curve( )學習曲線

    三、機器學習用到的python庫

    1. Numpy

    • Numpy:通常用來進行矢量化的計算

    • 優點:

    • numpy的基本對象是ndarray,最大的優勢在于用它進行多維數組的計算,不用寫多重for循環,直接可以進行矢量化的運算
    • 封裝了vectorize函數,可以把處理標量的函數矢量化,極大地提高了計算速度
    • 缺點:

    • ndarray中的數據類型必須相同,于是有了pandas可以處理不同數據類型的數據集

    2. Pandas

    • Pandas: 通常用來處理結構化的數據
    • 優點:
    • 數據結構Series,理解為一個一維的數組,只是index名稱可以自己改動。類似于定長的有序字典,有index和value
    • 數據結構DataFrame,理解為一個二維數組,索引有兩個維度,可更改。一行一樣本,一列一特征。每一行都可以看作一個樣本,每一列都可以看作一個Series
    • 封裝的to_datetime函數轉換日期數據類型,支持大多數的日期格式,而且轉換后的datetime類型數據支持日期運算

    3. Matplotlib

    • Matplotlib: 用來繪制出直觀的圖表

    總結

    以上是生活随笔為你收集整理的机器学习的基础的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。