成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

自動化機器學習指南之四大成熟度模型

譯文
人工智能 機器學習 自動化
人工智能和機器學習的概念在數據科學界中已經普遍流行。通過這些概念,過去許多需要人工完成的任務,已經能夠被更加高效且準確的自動化方式所取代。可以說,隨著技術趨勢的變化,自動化機器學習在簡化人工操作的基礎上,既節省了時間又提高了效率。

【51CTO.com快譯】人工智能和機器學習的概念在數據科學界中已經普遍流行。通過這些概念,過去許多需要人工完成的任務,已經能夠被更加高效且準確的自動化方式所取代。可以說,隨著技術趨勢的變化,自動化機器學習在簡化人工操作的基礎上,既節省了時間又提高了效率。

自動化機器學習:自動化訓練過程

從概念上說,機器學習旨在通過對機器進行訓練,通過處理現實數據的方式,提供預期的輸出。也就是說:它能夠讓機器從現有的數據(或經驗)中得到一定程度的訓練,在經歷了一番完整的數據處理之后,進而生成更準確的輸出。那么自動化機器學習(AutoML)的概念顯然是要使得整個過程徹底實現自動化。

自動化機器學習的成熟度模型

自動化機器學習的不同實現方式可以根據它們所對應的成熟度,進行不同級別的分類。如下圖所示,模型成熟度越高,表示它對于自動化任務的支持就越好,當然也就需要該模型能夠通過對于數據的集中訓練,執行更多的任務、提供更多的服務。

自動化機器學習指南之四大成熟度模型

1.超參數優化

當數據集被提交過來之后,自動化機器學習會根據上述成熟度模型,嘗試著去匹配各種既有的模型,例如:隨機森林、線性回歸等(一般使用的是結構化的數據)。同時,它會按需為那些應用到數據上的每一種模型,去優化超參數(hyperparamters)。此類優化技術包括:手動搜索、隨機搜索、網格搜索等。

例如:Auto-sklearn使用貝葉斯模型進行超參數優化,并且能夠提供所需的結果。不過,在該級別的成熟度模型中,自動化機器學習只能執行有限的任務,例如:交叉驗證、機器學習算法的選擇、超參數的優化等。當然,隨著成熟度水平的提高,自動化機器學習將會具有更多的功能,提供更出色的結果。

2. 一級以上的數據預處理

在第一級中,自動化機器學習需要用戶自行實現數據的預處理措施。但是,到了第二級,由于使用了更為成熟的模型,各種數據的預處理任務便可以由自動化本身來完成,并為進一步處理做好準備。

通過搜索和了解列的類型,機器學習自身完全有能力將所有數據(包括一些空值數據)轉換為常見的數值類型。當然,此處并不包括對于數據的高級轉換與預處理,這些仍然需要數據科學家自行采取進一步的操作。

對于目標任務而言,系統僅負責搜索和選擇適當的機器學習算法。例如:根據手頭的移動應用開發任務,設計自動化機器學習的算法與模型,通過對于數據的預處理,以得出所需的預算、時間、以及其他準確的結果。

通過對于數據的預處理,自動化機器學習系統能夠構建并實現特征選擇降低維度、數據壓縮等功能,進而無縫地執行各項訓練任務。

3.找到合適的機器學習架構

上述第一、二級自動化機器學習系統,顯然無法根據數據的性質,主動發現合適的機器學習架構,并通過執行,以確保出色的輸出。而在第三級中,以AutoKeras為代表的開源式自動化機器學習庫,實現了神經架構搜索(NAS,neural architecture search,請參見:https://en.wikipedia.org/wiki/Neural_architecture_search)。該流行架構能夠有效地在圖像、語音或文本上實施機器學習算法。

因此,數據科學家可以使用不同的神經架構搜索算法,來增強對于自動化機器學習的支持與經驗積累。在實際應用中,自動駕駛汽車、自動化消費服務等領域都采用了第三級的自動化機器學習系統。

4.相關領域知識的使用

為了能夠提供準確的機器學習系統輸出,深入地了解數據,特別是數據的范圍和承載的系統是非常必要的。只有使用相關領域的知識,并時刻參照所有必需考慮的標準,才能實現復雜的人工智能的效果。

可見,針對現有相關領域的知識儲備和在實際場景中的使用,無疑會提高最終結果的準確性。與此同時,準確性的提高也會驅動出色的預測能力,并為自動化機器學習的各項任務提供全面的支持。因此,這個級別的成熟度模型注重的是:通過增加背景領域的相關知識,憑借具有明確結果導向(result-oriented)的記錄,來提高自動化機器學習系統的準確性。

自動化機器學習的實例

從事數據科學研究的人員可以根據實際應用場景的需求,使用各種工具和軟件庫來開發自動化的流程、以及具有精準輸出的機器學習系統。

自動化機器學習的開源庫

目前,業界有著很多種類的開源庫,能夠支持和滿足開發人員在其系統中實現各種自動化的機器學習需求。

1. AutoKeras

該軟件庫在GitHub上可供開發人員免費使用。由Data Lab開發的AutoKeras,旨在提供對于所有深度學習(deep learning)工具的訪問,進而增強深度學習模型的整體能力。如下代碼是AutoKeras的應用示例: 

  1. import autokeras as ak 
  2. clf = ak.ImageClassifier() 
  3. clf.fit(x_train, y_train) 
  4. results = clf.predict(x_test) 

Python源代碼鏈接:https://github.com/jhfjhfj1/autokeras

2. MLBox

MLBox是另一種使用Python編寫的開源庫。它能夠更快、更輕松地開發出自動化機器學習的各種函數,其中包含了可用于數據預處理、清理、以及格式化等功能。如下代碼示例展示了在導入數據之后,如何進行數據預處理的過程:

  1. from mlbox.preprocessing import * 
  2. from mlbox.optimisation import * 
  3. from mlbox.prediction import * 
  4. paths = ["../input/train.csv","../input/test.csv"
  5. target_name = "Survived" 
  6. rd = Reader(sep = ","
  7. df = rd.train_test_split(paths, target_name) #reading and preprocessing (dates, ...) 

Python源代碼鏈接:https://www.kaggle.com/axelderomblay/running-mlbox-auto-ml-package-on-titanic

3. Auto-sklearn

Auto-sklearn是另一種開源的自動化機器學習支持庫。它通過選擇適當的機器學習算法,來研究數據的模型和需求。它消除了用戶端對于超參數處理的要求,進而能夠自行開展處理工作。如下代碼是在數據集上實現Auto-sklearn的應用示例:

  1. import autosklearn.classification 
  2. import sklearn.model_selection 
  3. import sklearn.datasets 
  4. import sklearn.metrics 
  5. X, y = sklearn.datasets.load_digits(return_X_y=True
  6. X_train, X_test, y_train, y_test = \ 
  7. sklearn.model_selection.train_test_split(X, y, random_state=1) 
  8. automl = autosklearn.classification.AutoSklearnClassifier() 
  9. automl.fit(X_train, y_train) 
  10. y_hat = automl.predict(X_test) 
  11. print("Accuracy score", sklearn.metrics.accuracy_score(y_test, y_h 

Python源代碼鏈接:https://自動化機器學習.github.io/auto-sklearn/master/

自動化機器學習工具

如下工具雖然是為商業用途而發布的,但是它們不但得到了廣泛地使用,而且保證了自動化機器學習的輸出質量。

DataRobot

DataRobot是第一款支持自動化機器學習的工具。它提供了一個能夠實現人工智能的先進平臺,在協助用戶解決各項問題的同時,用戶可以不必過于擔心其執行過程,而能夠輕松地獲取所需的結果。DataRobot API不但支持預測,而且能夠使機器通過選擇適當的方法,來實現自動化處理,并提供輸出結果。

如下代碼是DataRobot API的一個應用示例。它使用數據集來預測30天之內各家醫院的患者可能再次入院的幾率。 

  1. import datarobot as dr  
  2. import pandas as pd  
  3. pd.options.display.max_columns = 1000  
  4. import numpy as np  
  5. import time  
  6. import matplotlib.pyplot as plt  
  7. from jupyterthemes import jtplot  
  8. # currently installed theme will be used to set plot style if no arguments provided  
  9. jtplot.style()  
  10. get_ipython().magic('matplotlib inline' 
  11. load input data  
  12. df = pd.read_csv('../demo_data/10kDiabetes.csv' 
  13. # initialize datarobot client instance  
  14. dr.Client(config_path='/Users/benjamin.miller/.config/datarobot/my_drconfig.yaml' 
  15. create 100 samples with replacement from the original 10K diabetes dataset 
  16. samples = []  
  17. for i in range(100):  
  18. samples.append(df.sample(10000, replace=True))  
  19. # loop through each sample dataframe  
  20. for i, s in enumerate(samples):  
  21. # initialize project  
  22. project = dr.Project.start  
  23.  
  24. project_name='API_Test_{}'.format(i+20),  
  25. sourcedata=s,  
  26. target='readmitted' 
  27. worker_count=2  
  28.  
  29. # get all projects  
  30. projects = []  
  31. for project in dr.Project.list():  
  32. if "API_Test" in project.project_name:  
  33. projects.append(project)  
  34. # *For each project...*  
  35. # Make predictions on the original dataset using the most accurate model  
  36. # initialize list of all predictions for consolidating results  
  37. bootstrap_predictions = []  
  38. # loop through each relevant project to get predictions on original input dataset  
  39. for project in projects:  
  40. # get best performing model  
  41. model = dr.Model.get(project=project.id, model_id=project.get_models()[0].id)  
  42. # upload dataset  
  43. new_data = project.upload_dataset(df) 
  44. # start a predict job  
  45. predict_job = model.request_predictions(new_data.id)  
  46. # get job status every 5 seconds and move on once 'inprogress'  
  47. for i in range(100):  
  48. time.sleep(5) 
  49. try:  
  50. job_status = dr.PredictJob.get(  
  51. project_id=project.id,  
  52. predict_job_id=predict_job.id  
  53. ).status  
  54. except: # normally the job_status would produce an error when it is completed 
  55. break  
  56. # now the predictions are finished  
  57. predictions = dr.PredictJob.get_predictions( 
  58. project_id=project.id, 
  59. predict_job_id=predict_job.id 
  60.  
  61. # extract row ids and positive probabilities for all records and set to dictionary  
  62. pred_dict = {k: v for k, v in zip(predictions.row_id, predictions.positive_probability)} 
  63. # append prediction dictionary to bootstrap predictions 
  64. bootstrap_predictions.append(pred_dict)  
  65. # combine all predictions into single dataframe with keys as ids  
  66. # each record is a row, each column is a set of predictions pertaining to  
  67. # a model created from a bootstrapped dataset  
  68. df_predictions = pd.DataFrame(bootstrap_predictions).T  
  69. add mean predictions for each observation in df_predictions  
  70. df_predictions['mean'] = df_predictions.mean(axis=1)  
  71. # place each record into equal sized probability groups using the mean  
  72. df_predictions['probability_group'] = pd.qcut(df_predictions['mean'], 10)  
  73. # aggregate all predictions for each probability group  
  74. d = {} # dictionary to contain {Interval(probability_group): array([predictions])}  
  75. for pg in set(df_predictions.probability_group):  
  76. # combine all predictions for a given group  
  77. frame = df_predictions[df_predictions.probability_group == pg].iloc[:, 0:100]  
  78. d[str(pg)] = frame.as_matrix().flatten()  
  79. create dataframe from all probability group predictions  
  80. df_pg = pd.DataFrame(d)  
  81. create boxplots in order of increasing probability ranges 
  82. props = dict(boxes='slategray', medians='black', whiskers='slategray'
  83. viz = df_pg.plot.box(color=props, figsize=(15,7), patch_artist=True, rot=45) 
  84. grid = viz.grid(False, axis='x'
  85. ylab = viz.set_ylabel('Readmission Probability'
  86. xlab = viz.set_xlabel('Mean Prediction Probability Ranges'
  87. title = viz.set_title( 
  88. label='Expected Prediction Distributions by Readmission Prediction Range'
  89. fontsize=18 

Python源代碼鏈接:https://blog.datarobot.com/estimation-of-prediction-distributions-using-datarobot

H2O.ai

另一款支持人工智能的服務平臺工具是H2O。它主要被用于完成諸如:無人駕駛的AI結果輸出等方面的機器學習任務。

總結

除了上述提到的工具和軟件庫,市場上也有著諸如:Google AutoML(https://cloud.google.com/automl/)等其他商業類型的解決方案。它們在實現機器學習相關概念的同時,推動了自動化數據的訓練,并能夠提供出色的結果與預測。如今,隨著自動化機器學習效果的凸顯,人工智能技術也得到了不斷地增強,越來越多的企業都能夠從此類系統的輸出結果中持續受益。

原文標題:A Beginner's Guide to Automated Machine Learning: 4 Maturity Models to Understand,作者:Manoj Rupareliya

【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】

 

責任編輯:龐桂玉 來源: 51CTO
相關推薦

2022-05-26 00:15:02

數據成熟度模型

2024-01-10 08:25:52

性能工程性能建模成熟度模型

2023-06-06 10:45:00

2011-02-22 10:46:34

ITIL服務管理

2021-07-31 22:37:45

DevOps 模型云廠商

2013-01-06 10:44:43

微軟Windows 8云計算

2022-05-24 14:26:11

云原生數據庫云架構

2014-10-27 12:34:50

JMP

2023-09-16 17:03:59

DevOps文檔

2022-01-11 10:52:51

數據成熟度數據數據分析

2014-05-26 10:56:46

持續交付

2009-01-12 17:39:19

SOA面向服務的架構SOA部署

2010-07-29 09:31:28

Flex編程模型

2022-03-25 08:28:05

敏捷團隊敏捷

2017-10-25 13:20:43

軟件安全模型

2022-06-02 00:13:39

數據安全成熟度模型

2023-11-30 11:54:40

網絡安全企業

2017-01-05 15:38:33

機器學習開源框架

2024-09-03 15:05:03

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91精品久久久久久久99 | 久久这里只有精品首页 | 天天插日日操 | 九九亚洲 | 欧美精品在线视频 | 国产精品久久片 | 91网站在线观看视频 | 九九热re | www.色综合 | 精品国产乱码久久久久久蜜柚 | 亚洲资源在线 | 日韩久久久久久久 | 国内自拍第一页 | 日本精品视频在线观看 | 国精产品一区一区三区免费完 | av网站免费 | 亚洲精品自拍视频 | 成人激情视频在线播放 | 完全免费在线视频 | 亚洲成av人影片在线观看 | 亚洲日韩中文字幕一区 | 午夜不卡福利视频 | 无码日韩精品一区二区免费 | 免费超碰 | 国产欧美视频一区二区三区 | 在线观看av中文字幕 | 久久蜜桃av | 水蜜桃亚洲一二三四在线 | 久久精品网| 毛片免费看 | 一级黄色毛片a | 天天插日日操 | 国产精品福利视频 | 国产午夜精品久久久久免费视高清 | 狠狠天天 | 亚洲aⅴ一区二区 | 亚洲福利视频一区二区 | 一区二区三区久久久 | 久久精品国产99国产 | 国产成人免费视频网站高清观看视频 | 香蕉一区 |