End-to-end example¶
Here is a scikit-learn example.
For more examples using scikit-learn, see our Comet Examples Github repository.
```python
import comet_ml in the top of your file¶
from comet_ml import Experiment
create an experiment with your api key¶
exp = Experiment(project_name='sklearn-demos', auto_param_logging=False)
import numpy as np from sklearn.datasets import load_breast_cancer from sklearn.model_selection import train_test_split, GridSearchCV from sklearn.linear_model import LogisticRegression from sklearn.preprocessing import StandardScaler from sklearn.metrics import f1_score, precision_score, recall_score, confusion_matrix random_state = 42
cancer = load_breast_cancer() print("cancer.keys(): {}".format(cancer.keys())) print("Shape of cancer data: {}\n".format(cancer.data.shape)) print("Sample counts per class:\n{}".format( {n: v for n, v in zip(cancer.target_names, np.bincount(cancer.target))})) print("\nFeature names:\n{}".format(cancer.feature_names))
X_train, X_test, y_train, y_test = train_test_split( cancer.data, cancer.target, stratify=cancer.target, random_state=random_state)
scaler = StandardScaler() X_train_scaled = scaler.fit_transform(X_train) X_test_scaled = scaler.transform(X_test)
logreg = LogisticRegression()
param_grid = {'C':[0.001,0.01,0.1,1,5,10,20,50,100]}
clf = GridSearchCV(logreg, param_grid=param_grid, cv=10, n_jobs=-1)
clf.fit(X_train_scaled, y_train)
y_pred = clf.predict(X_test_scaled)
print("\nResults\nConfusion matrix \n {}".format(confusion_matrix(y_test, y_pred)))
f1 = f1_score(y_test, y_pred) precision = precision_score(y_test, y_pred) recall = recall_score(y_test, y_pred)
print("F1 score is {:6.3f}".format(f1)) print("Precision score is {:6.3f}".format(precision)) print("Recall score is {:6.3f}".format(recall))
these will be logged to your sklearn-demos project on Comet.ml¶
params={"random_state":random_state, "model_type":"logreg", "scaler":"standard scaler", "param_grid":str(param_grid), "stratify":True }
metrics = {"f1":f1, "recall":recall, "precision":precision }
exp.log_dataset_hash(X_train_scaled) exp.log_parameters(params) exp.log_metrics(metrics) ```
Using scikit-learn grid search¶
Search across parameter combinations using grid search with this example:
```python from comet_ml import Experiment from sklearn import svm, datasets from sklearn.model_selection import GridSearchCV
iris = datasets.load_iris() parameters = {'kernel': ('linear', 'rbf'), 'C': [1, 10]} svr = svm.SVC() clf = GridSearchCV(svr, parameters) clf.fit(iris.data, iris.target)
for i in range(len(clf.cv_results_['params'])): exp = Experiment(workspace="your workspace", project_name="grid_search_example") for k,v in clf.cv_results_.items(): if k == "params": exp.log_parameters(v[i]) else: exp.log_metric(k,v[i]) ```