一、自動機器學習架構
自動機器學習(automl)是由一組自動化技術和技能組成的領域,可以為開發人員和專業分析人員提供自定義數學模型,並將其應用於大量的數據集中。automl是一個高級的人工智能(AI)技術,主要利用機器學習算法和工具來智能分析和識別數據模式、特徵和趨勢。
automl的工作原理是利用數據集分析算法來訓練和測試模型,並將結果與先前訓練的模型進行比較,以確定哪個模型最適合數據集和需求。這些算法可以是監督和非監督算法,如決策樹、支持向量機(SVM)、深度神經網絡和聚類等。
以下是使用Python的自動機器學習架構的示例代碼:
from autosklearn.estimators import AutoSklearnClassifier
import numpy as np
X_train = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
y_train = np.array([0, 1, 0])
automl = AutoSklearnClassifier()
automl.fit(X_train, y_train)
X_test = np.array([[10, 11, 12], [13, 14, 15], [16, 17, 18]])
print(automl.predict(X_test))
二、自動特徵工程
自動特徵工程是指將原始數據轉換為特徵向量的過程,主要用於保留並突出原始數據的主要特徵。自動特徵工程由一組智能算法和技術組成,可將原始數據集轉換為更具表現力和刻畫性的特徵集。
自動特徵工程可以極大地減少開發人員和專家分析人員在特徵工程方面的工作量和時間,並將他們的注意力集中於機器學習模型的訓練和優化上。通常使用的自動特徵工程技術是基於機器學習算法和深度學習神經網絡的。
以下是使用Python的利用自動化特徵工程庫TPOT進行自動化特徵工程的示例代碼:
from tpot import TPOTClassifier
from sklearn.datasets import load_digits
from sklearn.model_selection import train_test_split
digits = load_digits()
X_train, X_test, y_train, y_test = train_test_split(digits.data, digits.target, train_size=0.75, test_size=0.25)
tpot = TPOTClassifier(generations=5, population_size=20, verbosity=2)
tpot.fit(X_train, y_train)
print(tpot.score(X_test, y_test))
三、自動超參數優化
自動超參數優化是指通過對訓練過程和模型參數進行智能調整,使得機器學習算法能夠以更高、更穩定和更準確的方式解決問題。與手動優化超參數相比,自動超參數優化可以大大提高機器學習模型的性能和效率,同時降低專業知識要求和時間成本。
自動超參數優化常用的算法如網格搜索、隨機搜索和貝葉斯優化等。其中,貝葉斯優化是目前應用較廣泛的算法,可以自適應地探索和利用模型架構、學習率、正則化和初始化等超參數。
以下是使用Python的自動化超參數優化庫Hyperopt進行自動超參數優化的示例代碼:
from hyperopt import fmin, tpe, hp
def objective(params):
return params['x']**2 + params['y']**2
space = {'x': hp.uniform('x', -10, 10),
'y': hp.uniform('y', -10, 10)}
best = fmin(objective, space, algo=tpe.suggest, max_evals=100)
print(best)
四、自動模型選擇
自動模型選擇是指對所給定的數據集,從眾多的機器學習模型中自動地選擇出最適合該數據集的模型。自動模型選擇不僅可以提高機器學習模型的解釋能力和泛化能力,還可以自動化地選擇和訓練最優的模型,降低開發人員和專家分析人員的成本和時間。
自動模型選擇一般採用準則評價法,例如基於訓練集、驗證集和測試集之間的準確率、F1值、精確率和召回率等評價方式,以求得最好的效果。
以下是使用Python的自動機器學習庫MLBox進行自動化模型選擇的示例代碼:
from mlbox.preprocessing import Reader
from mlbox.optimisation import Optimiser
from mlbox.prediction import Predictor
reader = Reader(sep=',')
data = reader.train_test_split(['train.csv', 'test.csv'], 'target')
optimiser = Optimiser(scoring='accuracy', n_folds=5)
space = {'keras':
{'lr': {'search': 'choice', 'space': [0.001, 0.01, 0.1]},
'batch_size': {'search': 'choice', 'space': [16, 32, 64]},
'epochs': {'search': 'choice', 'space': [10, 20, 30]}},
'sklearn.ensemble.RandomForestClassifier':
{'n_estimators': {'search': 'choice', 'space': [10, 20, 50]},
'max_depth': {'search': 'choice', 'space': [5, 10, 20]}}}
best = optimiser.optimise(space, data)
predictor = Predictor()
predictor.fit_predict(best, data)
五、基於自動機器學習的應用
自動機器學習已經廣泛應用於各種領域和應用中,例如面部識別、語音識別、醫療保健、金融風控、精準營銷、自動駕駛、智能語音助手和智能搜索等。
預測氣溫的自動機器學習應用:
from sklearn.svm import SVR
import pandas as pd
data = pd.read_csv('temperature.csv')
train = data.iloc[:-500, :]
test = data.iloc[-500:, :]
model = SVR(kernel='linear', C=1e3, gamma=0.1)
model.fit(train[['Year', 'Month', 'Day']], train['Temperature'])
result = model.predict(test[['Year', 'Month', 'Day']])
test['Prediction'] = result
test.plot(x='Time', y=['Temperature', 'Prediction'], figsize=(15, 5))
自動化信用評估的機器學習應用:
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report
import pandas as pd
data = pd.read_csv('credit.csv')
X = data.drop('default', axis=1).values
y = data['default'].values
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
model = RandomForestClassifier(n_estimators=1000, max_depth=8, random_state=42)
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
print(classification_report(y_test, y_pred))
參考資料:
[1]Automated Machine Learning, https://en.wikipedia.org/wiki/Automated_machine_learning
[2]AutoML: a survey of the state-of-the-art, https://www.kdnuggets.com/2019/06/automl-survey-state-art.html
[3]Automated Feature Engineering in Python, https://towardsdatascience.com/automated-feature-engineering-in-python-99baf11cc219
[4]Hyperopt: Distributed Asynchronous Hyper-parameter Optimization, https://hyperopt.github.io/hyperopt/
[5]MLBox: A powerful Automated Machine Learning Python library, https://towardsdatascience.com/mlbox-a-powerful-automated-machine-learning-python-library-4ddc8acbaebd
原創文章,作者:JLWAA,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/370122.html