久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

自動化機器學(xué)習(xí)入門指南,,來了

 520jefferson 2020-09-27
之前的工作中也有多少接觸過這個AutoML(Automated Machine Learning)的概念,,簡單來說就是把模型開發(fā)的標(biāo)準(zhǔn)過程模塊化,都交給一些自動化的組件來完成,,比如數(shù)據(jù)集的劃分,、特征衍生,、算法選擇、模型訓(xùn)練,、調(diào)優(yōu),、部署以及后續(xù)的監(jiān)控,都“一條龍”地在AutoML實現(xiàn),。

從Google Cloud繪制的AutoML的工作原理圖可以看出,,我們使用者只需要給其提供數(shù)據(jù)源,以及好壞樣本(或者不需要),,然后后面的一切都交給AutoML組件去完成,。

?? AutoML的關(guān)鍵節(jié)點

我們可以認(rèn)識到AutoML大大降低了機器學(xué)習(xí)模型的開發(fā)門檻,但是我們還是需要了解這里面的原理的,,這里涉及了機器學(xué)習(xí)的幾個關(guān)鍵節(jié)點的內(nèi)容,,需要我們特別關(guān)注。

其中最為重要的是自動化特征工程了,,一般縮寫為“Auto FE”,,主要是包括了預(yù)處理、特征選擇,、特征提取,、元學(xué)習(xí)等等的操作,把每一個環(huán)節(jié)的處理邏輯寫到腳本里,,結(jié)合一些策略讓邏輯更加科學(xué),,結(jié)果更加合理。

第二個就是自動化模型選擇,,也叫Automated Model Selection,,簡稱AMS,就是根據(jù)實際的數(shù)據(jù)來選擇合適的算法,。因為大多數(shù)的算法都是有超參數(shù)的,,這時候AutoML是需要進(jìn)行自動化的超參數(shù)優(yōu)化的,英文叫做Hyperparameter Optimization,,簡稱HPO,,在學(xué)習(xí)中了解到這塊的知識研究還是蠻豐富的,主要有下面的一些方法:

  • 基于貝葉斯優(yōu)化的超參數(shù)優(yōu)化 Bayesian Optimization
  • 基于進(jìn)化算法的超參數(shù)優(yōu)化 Evolutionary Algorithms
  • 基于本地搜索的超參數(shù)優(yōu)化 Local Search
  • 基于隨機搜索的超參數(shù)優(yōu)化 Random Search
  • 基于粒子群優(yōu)化算法的超參數(shù)優(yōu)化 Particle Swarm Optimization
  • 基于元學(xué)習(xí)的超參數(shù)優(yōu)化 Meta Learning
  • 基于遷移學(xué)習(xí)的超參數(shù)優(yōu)化 Transfer Learning

還有一個概念就是NAS,,即Neural Architecture Search(神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索),,因為目前深度學(xué)習(xí)應(yīng)用很廣泛了,很多時候是需要搭建一個深度神經(jīng)網(wǎng)絡(luò),,這里面涉及的參數(shù)是真的多,,按照傳統(tǒng)的超參數(shù)優(yōu)化的方法顯得十分吃力,所以也有了這個NAS的概念,而關(guān)于NAS的研究方法,,主要有下面幾種:

  • 基于進(jìn)化算法的超參數(shù)優(yōu)化 Evolutionary Algorithms
  • 基于元學(xué)習(xí)的超參數(shù)優(yōu)化 Meta Learning
  • 基于遷移學(xué)習(xí)的超參數(shù)優(yōu)化 Transfer Learning
  • 基于本地搜索的超參數(shù)優(yōu)化 Local Search
  • 基于強化學(xué)習(xí)的超參數(shù)優(yōu)化 Reinforcement Learning
  • 基于Network Morphism
  • 基于 Continuous Optimization優(yōu)化
 

?? 市面上的AutoML產(chǎn)品

目前AutoML工具我們可以從兩個途徑來進(jìn)行獲取學(xué)習(xí):

  • 開源框架:如Auto-Keras,、Auto-sklearn等開源工具
  • 商業(yè)服務(wù):如Google Cloud、Microsoft Azure等

從Awesome-AutoML-Papers(https://github.com/hibayesian/awesome-automl-papers#projects)里有一張AutoML工具的對比圖,,大家可以瀏覽一波,。

名稱支持類型編程語言
AdaNetNASPython
AdvisorHPOPython
AMLAHPO, NASPython
ATMHPOPython
AugerHPOPython
Auto-KerasNASPython
AutoML VisionNASPython
AutoML Video Intelligence
Python
AutoML Natural LanguageNASPython
AutoML TranslationNASPython
AutoML TablesAutoFE, HPOPython
auto-sklearnHPOPython
auto_mlHPOPython
BayesianOptimizationHPOPython
BayesOptHPOC++
cometHPOPython
DataRobotHPOPython
DEvolNASPython
Driverless AIAutoFEPython
FAR-HOHPOPython
H2O AutoMLHPOPython, R, Java, Scala
HpBandSterHPOPython
HyperBandHPOPython
HyperoptHPOPython
Hyperopt-sklearnHPOPython
Hyperparameter HunterHPOPython
KatibHPOPython
MateLabsHPOPython
MilanoHPOPython
MLJARHPOPython
nasbotNASPython
neptuneHPOPython
NNIHPO, NASPython
OptunityHPOPython
R2.aiHPO------
RBFOptHPOPython
RoBOHPOPython
Scikit-OptimizeHPOPython
SigOptHPOPython
SMAC3HPOPython
TPOTAutoFE, HPOPython
TransmogrifAIHPOScala
TuneHPOPython
XcessivHPOPython
SmartMLHPOR
 

?? AutoML學(xué)習(xí)框架——auto-sklearn介紹與入門

這里會簡單地講一下auto-sklearn的框架,讓大家對這個學(xué)習(xí)框架有一定的了解,,接下來就會拿官方的栗子來說明一下怎么使用,,然后羅列一下這個auto-sklearn可以做什么內(nèi)容,讓大家對這個框架的功能有一定的了解,。

二話不說,,先在本地安裝一下這個包,直接pip install auto-sklearn走起,,如果安裝失敗可能是因為缺少依賴項,,可以試試:

curl https://raw./automl/auto-sklearn/master/requirements.txt | xargs -n 1 -L 1 pip install

如果出現(xiàn)Failed to connect to raw. port 443: Connection refused的報錯,初步估計是DNS污染,,可以查看相關(guān)攻略:https://github.com/hawtim/blog/issues/10

如果安裝失敗,,可以按照官網(wǎng)網(wǎng)站的指導(dǎo)再試試:https://automl./auto-sklearn/master/installation.html

相關(guān)學(xué)習(xí)傳送門:

  • auto-sklearn官方文檔(https://automl./auto-sklearn/master/api.html
  • auto-sklearn官方示例(https://automl./auto-sklearn/master/examples/index.html
 

我們從上面官方文檔可以知道(可能需要番羽Q,所以我就把相關(guān)的example的code下載下來了,,大家可以后臺回復(fù)“automl”獲?。?/span>,auto-sklearn的功能主要有下面的截圖所示,,包括分類模型、回歸模型的構(gòu)建,,模型評估方法的支持等,,涵蓋了我們主要的基礎(chǔ)建模需求。

auto-sklearn顧名思義應(yīng)該是和我們常用的scikit-learn有一定的關(guān)系,,確實對的,,auto-sklearn就是基于scikit-learn進(jìn)行開發(fā)的自動化機器學(xué)習(xí)庫,所以如果我們熟悉scikit-learn的使用,,那么對于這個auto-sklearn就很好理解了的,,不熟悉其實也沒有關(guān)系,也蠻簡單的,,后續(xù)我拿一些小栗子來說明一下,,主要圍繞兩個核心的分類接口和回歸接口API:AutoSklearnClassifierAutoSklearnRegressor

?? AutoSklearnClassifier(分類)

我們直接在官方文檔里看下這個API的參數(shù),,如下圖所示:

參數(shù)的數(shù)量還是蠻多的,,我們簡單介紹兩個Parameters:

  • time_left_for_this_task:int類型,默認(rèn)3600秒
    時間限制是針對模型參數(shù)搜索的,我們可以通過加大這個值來增加模型訓(xùn)練的時間,,有更大的機會找到更好的模型,。
  • per_run_time_limit:int類型, 默認(rèn)值為參數(shù)time_left_for_this_task值的1/10
    這個時間限制是針對每次模型調(diào)用的,如果模型調(diào)用時間超出這個值,,則會被直接終止擬合,,可以適當(dāng)加大這個值。

簡單調(diào)用一下:

# 導(dǎo)入相關(guān)包
import numpy as np
from sklearn.datasets import load_digits
from sklearn.model_selection import train_test_split
import warnings
from autosklearn.classification import AutoSklearnClassifier
warnings.filterwarnings('ignore')  # 忽略代碼警告

# 導(dǎo)入手寫數(shù)字的數(shù)據(jù)集
digits = load_digits()  # 加載數(shù)據(jù)集

# 劃分?jǐn)?shù)據(jù)集為訓(xùn)練集和測試集
X_train, X_test, y_train, y_test = train_test_split(
    digits.data, digits.target, test_size=0.3, random_state=42)  # 切分?jǐn)?shù)據(jù)集

# 調(diào)用Auto-sklearn
# 限制算法搜索最大時間,,更快得到結(jié)果
auto_model = AutoSklearnClassifier(
    time_left_for_this_task=120, per_run_time_limit=10)

# 訓(xùn)練模型
auto_model.fit(X_train, y_train)  
# 用測試集評估模型效果
auto_model.score(X_test, y_test)

?? AutoSklearnRegressor(回歸)

我們繼續(xù)看官方文檔里的API參數(shù),,如下圖所示:

參數(shù)也是照樣很多,

  • time_left_for_this_task:int類型,,和上面的分類API是一樣的參數(shù)
  • per_run_time_limit:int類型,,和上面的分類API是一樣的參數(shù)
  • ensemble_size:int類型,默認(rèn)是50
    從算法中選擇構(gòu)建為集成模型的數(shù)量

總結(jié)來說這兩個API的參數(shù)幾乎是一樣的,正所謂一份學(xué)習(xí)double享受,,jeng,!同樣的我們簡單地調(diào)用一下,這次我們用房價預(yù)測的數(shù)據(jù)集,,這是一個很經(jīng)典的回歸算法的數(shù)據(jù)集,。

# 導(dǎo)入相關(guān)包
from sklearn.datasets import load_boston
from autosklearn.regression import AutoSklearnRegressor

# 導(dǎo)入數(shù)據(jù)集
boston = load_boston()  # 加載數(shù)據(jù)集

# 限制算法搜索最大時間,更快得到結(jié)果
auto_model = AutoSklearnRegressor(
    time_left_for_this_task=120, per_run_time_limit=10)
auto_model.fit(boston.data, boston.target)

# 查看模型效果,,用R方來看
auto_model.score(boston.data, boston.target)

?? Auto-sklearn支持的Metrics方法

我們評估一個機器學(xué)習(xí)模型的好壞需要量化的指標(biāo),,而我們常用的幾個像準(zhǔn)確率、AUC,、ROC,、f1等等,在這里是否也支持呢,?我們可以看看:

print('Available CLASSIFICATION metrics autosklearn.metrics.*:')
print('\t*' + '\n\t*'.join(autosklearn.metrics.CLASSIFICATION_METRICS))

print('Available REGRESSION autosklearn.metrics.*:')
print('\t*' + '\n\t*'.join(autosklearn.metrics.REGRESSION_METRICS))
Available CLASSIFICATION metrics autosklearn.metrics.*:
        *accuracy
        *balanced_accuracy
        *roc_auc
        *average_precision
        *log_loss
        *precision
        *precision_macro
        *precision_micro
        *precision_samples
        *precision_weighted
        *recall
        *recall_macro
        *recall_micro
        *recall_samples
        *recall_weighted
        *f1
        *f1_macro
        *f1_micro
        *f1_samples
        *f1_weighted
Available REGRESSION autosklearn.metrics.*:
        *r2
        *mean_squared_error
        *mean_absolute_error
        *median_absolute_error

我們可以看出其實大多數(shù)的評估指標(biāo)都涵蓋了,,具體怎么用,建議可以去看看官方文檔看看例子~

?? AutoDL學(xué)習(xí)框架——auto-keras介紹與入門

介紹完了機器學(xué)習(xí)框架的原理以及其中一個產(chǎn)品的簡單使用,,順便也介紹下深度學(xué)習(xí)的自動化機器學(xué)習(xí)框架,,深度學(xué)習(xí)在近幾年十分大熱,神經(jīng)網(wǎng)絡(luò)在很多時候的表現(xiàn)也是讓人吃驚,,確實也很有必要去了解一下,。

towardsdatascience.com

可以從上圖看出目前最流行的深度學(xué)習(xí)框架有TensorFlow、Keras和PyTorch,,今天我們不展開這些框架的學(xué)習(xí),,篇幅有限也不好展開(主要是我也不熟哈哈哈),我們今天就來講講Auto-Keras的簡單使用,,畢竟今天的主要還是自動化機器學(xué)習(xí),。

Auto-Keras框架是由DATA Lab開發(fā)的,,由Keras官方團隊維護。它主要提供了神經(jīng)結(jié)構(gòu)搜索(NAS)和超參數(shù)自動優(yōu)化(HPO),,其后端依賴于scikit-learn,、TensorFlow和PyTorch,我們還是把一些常用的地址貼一下:

  • 官方網(wǎng)站:https:///
  • GitHub地址:https://github.com/keras-team/autokeras

安裝的話也是比較簡單,,可以使用pip的方式進(jìn)行安裝,,不過目前AutoKeras只支持Python >= 3.5 and TensorFlow >= 2.3.0

pip3 install git+https://github.com/keras-team/keras-tuner.git@1.0.2rc1
pip3 install autokeras

我們從官網(wǎng)文檔里可以看出主要是支持圖片分類、圖片生成,、文本分類,、文本生成等,算是涵蓋了計算機視覺和自然語言處理的常用應(yīng)用場景了,。

import sys
sys.path.append('autokeras')  # 鏈接到 Auto-Keras 庫

?? ImageClassifier(圖片分類)

同樣的,,我們可以看看官方文檔:

調(diào)用栗子:

我們導(dǎo)入自帶的MNIST手寫字符分類數(shù)據(jù)集,樣本數(shù)據(jù)形狀為28x28的灰度圖像,,已經(jīng)轉(zhuǎn)為了numpy數(shù)組,。

# 導(dǎo)入相關(guān)包
import tensorflow as tf
from autokeras.image.image_supervised import ImageClassifier

# 加載數(shù)據(jù)集
(X_train, y_train), (X_test, y_test) = tf.keras.datasets.mnist.load_data()

# 實例化模型,verbose=True 輸出訓(xùn)練過程參數(shù)
clf = ImageClassifier(verbose=True)  
# 訓(xùn)練模型,,最大時間設(shè)為 30 分鐘
clf.fit(X_train, y_train, time_limit=30 * 60)  
# 評估模型
clf.evaluate(X_test, y_test)  

那如果是針對那些數(shù)據(jù)集本身是圖片的呢,,又可以如何操作?也可以參考下面的例子:

# 下載圖片數(shù)據(jù)
!wget -nc 'https://labfile.oss./courses/1357/load_raw_image_data.zip'
!unzip -o 'load_raw_image_data.zip'  # 解壓數(shù)據(jù)

# 導(dǎo)入相關(guān)包
import pandas as pd
from autokeras.image.image_supervised import load_image_dataset

# 讀取數(shù)據(jù)
X_train, y_train = load_image_dataset(
       ='load_raw_image/train/label.csv', images_path='load_raw_image/train')
X_test, y_test = load_image_dataset(
    csv_file_path='load_raw_image/test/label.csv', images_path='load_raw_image/test')

# 實例化模型,,verbose=True 輸出訓(xùn)練過程參數(shù)
clf = ImageClassifier(verbose=True)  
# 訓(xùn)練模型,,最大時間設(shè)為 30 分鐘
clf.fit(X_train, y_train, time_limit=30 * 60)  
# 評估模型
clf.evaluate(X_test, y_test)  

?? TextClassifier(文本分類)

同樣的,我們可以看看官方文檔:

NLP有十分豐富的應(yīng)用,,比如文本分類,、情感分析、機器翻譯,、智能問答等,,在Auto-Keras中也有類似的APIs可以用,我們拿其中一個文本分類預(yù)測來看看,。

# 下載數(shù)據(jù)集(關(guān)于電影影評的積極與消極情緒的識別)
!wget -nc 'https://labfile.oss./courses/1357/imdb-reviews.zip'
!unzip -o 'imdb-reviews.zip'

# 導(dǎo)入相關(guān)包
import pandas as pd
from sklearn.model_selection import train_test_split
from autokeras.text.text_supervised import TextClassifier

# 導(dǎo)入數(shù)據(jù)
reviews = pd.read_csv('imdb-reviews.csv')

# 劃分?jǐn)?shù)據(jù)集
X_train, X_test, y_train, y_test = train_test_split(
    reviews['text'], reviews['sentiment'], test_size=0.1)
X_train.shape, X_test.shape, y_train.shape, y_test.shape
# 獨熱編碼,因為auto-kearn要求輸入的為獨熱編碼后的數(shù)組
y_train_ = pd.get_dummies(y_train).values  
y_test_ = pd.get_dummies(y_test).values

# 實例化模型,,verbose=True 輸出訓(xùn)練過程參數(shù)
clf = TextClassifier(verbose=True)  
clf.fit(X_train, y_train, time_limit=30 * 60
# 評估模型
clf.evaluate(X_test, y_test) 

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多