DASK #4 | ML
6320 ワード
ML on Big DataSets
import dask_ml
: speeds up machine learning tasks1. Preprocessing on Big DataSets
1-1) Loading & Preprocessing
from dask_ml.preprocessing import StandardScaler
X = dask_df[['X', 'Y', 'Z']]
Y = dask_df['target']
scaler_= StandardScaler()
scaler_.fit(X) # lazy 값 아님
standardized_X = scaler_.transform(X) # lazy값
print(standardized_X)
1-2) Train Test Split
from dask_ml.model_selection import train_test_split
from dask_ml.model_selection import train_test_split
X_train, X_test, y_train, y_test =
train_test_split(X, y, shuffle = True, test_size = 0.2)
1-3) Scoring
.score(X, y)
:計算値train_score = dask_model.score(X_train, y_train)
test_score = dask_model.score(X_test, y_test)
2. Learning on Big DataSets
2-1) Modeling
from dask_ml.wrappers import Incremental
:scikit-learnモデルは、Daskとともに必要なクラスを使用します.残差値ベースのスコア情報を含む増分オブジェクトを使用してモデルを作成2-2) Fitting
.fit()
lazyではなくcompute()値.fit()
を使用することをお勧めします.これは、サイクル中に複数回実行すると障害が発生するためです..partial_fit()
を実行すると、モデルは再調整されていないようにリセットされ、データに再調整されるため、最初から開始されます.fit()
方法は、ブレークポイントで継ぎ手を選択し、前のリングの継ぎ手を微調整することを可能にする..partial_fit()
を実行すると、Daskは、データを格納モデルにコピーするメインプロセスではなく、データを含むprocess|threadにモデルをコピーすることによって計算を最適化する情報のコピーに時間がかかる可能性があり、データセットよりもモデルの方がはるかに小さいため、より効率的です.
2-3) Predict
.fit()
lazy値.predict()
必須.compute()
は計算値from sklearn.linear_model import SGDRegressor
from dask_ml.wrappers import Incremental
model = SGDRegressor()
# Wrap the model for working with Dask
dask_model = Incremental(model, scoring = 'neg_mean_squared_error')
dask_model.fit(dask_X, dask_y) # compute값
# Loop -> using partial_fit
for i in range(5):
dask_model.partial_fit(dask_X, dask_y)
y_pred_delayed = dask_model.predict(dask_X)
y_pred_computed = y_pred_delayed.compute()
print(y_pred_computed)
WrapUp
funcLazyの有無
.fit()
X.fit()
X.partial_fit()
O.transform()
O.predict()
XReference
この問題について(DASK #4 | ML), 我々は、より多くの情報をここで見つけました https://velog.io/@js8456/DASK-4-Clusterテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol