chore(boards): 调整mixpy下sklearn模块
This commit is contained in:
@@ -168,7 +168,12 @@ export const sklearn_data_target = {
|
|||||||
this.appendDummyInput()
|
this.appendDummyInput()
|
||||||
.setAlign(Blockly.inputs.Align.RIGHT)
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
||||||
.appendField(Blockly.Msg.MIXLY_GET)
|
.appendField(Blockly.Msg.MIXLY_GET)
|
||||||
.appendField(new Blockly.FieldDropdown([[Blockly.Msg.EIGENVALUES, "data"], [Blockly.Msg.LABEL_VALUE, "target"], [Blockly.Msg.FEATURE, "feature_names"], [Blockly.Msg.mixpy_PYLAB_TICKS_TAG, "target_names"]]), "type");
|
.appendField(new Blockly.FieldDropdown([
|
||||||
|
[Blockly.Msg.EIGENVALUES, "data"],
|
||||||
|
[Blockly.Msg.LABEL_VALUE, "target"],
|
||||||
|
[Blockly.Msg.FEATURE, "feature_names"],
|
||||||
|
[Blockly.Msg.mixpy_PYLAB_TICKS_TAG, "target_names"]
|
||||||
|
]), "type");
|
||||||
this.setOutput(true, null);
|
this.setOutput(true, null);
|
||||||
this.setColour(SKLEARN_HUE);
|
this.setColour(SKLEARN_HUE);
|
||||||
this.setTooltip("");
|
this.setTooltip("");
|
||||||
@@ -303,7 +308,10 @@ export const sklearn_DecisionTreeClassifier_Regressor = {
|
|||||||
init: function () {
|
init: function () {
|
||||||
this.appendDummyInput()
|
this.appendDummyInput()
|
||||||
.appendField("sklearn " + Blockly.Msg.SKLEARN_DECISIONTREE_INIT)
|
.appendField("sklearn " + Blockly.Msg.SKLEARN_DECISIONTREE_INIT)
|
||||||
.appendField(new Blockly.FieldDropdown([[Blockly.Msg.SKLEARN_CLASSIFICATION_ALGORITHM, "DecisionTreeClassifier"], [Blockly.Msg.SKLEARN_REGRESSION_ALGORITHM, "DecisionTreeRegressor"]]), "type");
|
.appendField(new Blockly.FieldDropdown([
|
||||||
|
[Blockly.Msg.SKLEARN_CLASSIFICATION_ALGORITHM, "DecisionTreeClassifier"],
|
||||||
|
[Blockly.Msg.SKLEARN_REGRESSION_ALGORITHM, "DecisionTreeRegressor"]
|
||||||
|
]), "type");
|
||||||
this.appendValueInput("model_name")
|
this.appendValueInput("model_name")
|
||||||
.setCheck(null)
|
.setCheck(null)
|
||||||
.setAlign(Blockly.inputs.Align.RIGHT)
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
||||||
@@ -330,7 +338,10 @@ export const sklearn_RandomForestClassifier_Regressor = {
|
|||||||
init: function () {
|
init: function () {
|
||||||
this.appendDummyInput()
|
this.appendDummyInput()
|
||||||
.appendField("sklearn " + Blockly.Msg.SKLEARN_RANDOMFOREST_INIT)
|
.appendField("sklearn " + Blockly.Msg.SKLEARN_RANDOMFOREST_INIT)
|
||||||
.appendField(new Blockly.FieldDropdown([[Blockly.Msg.SKLEARN_CLASSIFICATION_ALGORITHM, "RandomForestClassifier"], [Blockly.Msg.SKLEARN_REGRESSION_ALGORITHM, "RandomForestRegressor"]]), "type");
|
.appendField(new Blockly.FieldDropdown([
|
||||||
|
[Blockly.Msg.SKLEARN_CLASSIFICATION_ALGORITHM, "RandomForestClassifier"],
|
||||||
|
[Blockly.Msg.SKLEARN_REGRESSION_ALGORITHM, "RandomForestRegressor"]
|
||||||
|
]), "type");
|
||||||
this.appendValueInput("model_name")
|
this.appendValueInput("model_name")
|
||||||
.setCheck(null)
|
.setCheck(null)
|
||||||
.setAlign(Blockly.inputs.Align.RIGHT)
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
||||||
@@ -365,7 +376,10 @@ export const sklearn_KNeighborsClassifier_Regressor = {
|
|||||||
init: function () {
|
init: function () {
|
||||||
this.appendDummyInput()
|
this.appendDummyInput()
|
||||||
.appendField("sklearn " + Blockly.Msg.SKLEARN_KNN_INIT)
|
.appendField("sklearn " + Blockly.Msg.SKLEARN_KNN_INIT)
|
||||||
.appendField(new Blockly.FieldDropdown([[Blockly.Msg.SKLEARN_CLASSIFICATION_ALGORITHM, "KNeighborsClassifier"], [Blockly.Msg.SKLEARN_REGRESSION_ALGORITHM, "KNeighborsRegressor"]]), "type");
|
.appendField(new Blockly.FieldDropdown([
|
||||||
|
[Blockly.Msg.SKLEARN_CLASSIFICATION_ALGORITHM, "KNeighborsClassifier"],
|
||||||
|
[Blockly.Msg.SKLEARN_REGRESSION_ALGORITHM, "KNeighborsRegressor"]
|
||||||
|
]), "type");
|
||||||
this.appendValueInput("model_name")
|
this.appendValueInput("model_name")
|
||||||
.setCheck(null)
|
.setCheck(null)
|
||||||
.setAlign(Blockly.inputs.Align.RIGHT)
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
||||||
@@ -627,7 +641,10 @@ export const sklearn_coef_intercept = {
|
|||||||
this.appendDummyInput()
|
this.appendDummyInput()
|
||||||
.setAlign(Blockly.inputs.Align.RIGHT)
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
||||||
.appendField(Blockly.Msg.MIXLY_GET)
|
.appendField(Blockly.Msg.MIXLY_GET)
|
||||||
.appendField(new Blockly.FieldDropdown([[Blockly.Msg.SKLEARN_COEF, "coef_"], [Blockly.Msg.SKLEARN_INTERCEPT, "intercept_"]]), "type");
|
.appendField(new Blockly.FieldDropdown([
|
||||||
|
[Blockly.Msg.SKLEARN_COEF, "coef_"],
|
||||||
|
[Blockly.Msg.SKLEARN_INTERCEPT, "intercept_"]
|
||||||
|
]), "type");
|
||||||
this.setOutput(true, null);
|
this.setOutput(true, null);
|
||||||
this.setColour(SKLEARN_HUE);
|
this.setColour(SKLEARN_HUE);
|
||||||
this.setTooltip("");
|
this.setTooltip("");
|
||||||
@@ -646,7 +663,11 @@ export const sklearn_cluster_centers_labels_inertia = {
|
|||||||
.appendField(Blockly.Msg.MODEL_NAME);
|
.appendField(Blockly.Msg.MODEL_NAME);
|
||||||
this.appendDummyInput()
|
this.appendDummyInput()
|
||||||
.appendField(Blockly.Msg.MIXLY_GET)
|
.appendField(Blockly.Msg.MIXLY_GET)
|
||||||
.appendField(new Blockly.FieldDropdown([[Blockly.Msg.SKLEARN_CLUSTER_CENTER, "cluster_centers_"], [Blockly.Msg.SKLEARN_LABELS_AFTER_CLUSTERING, "labels_"], [Blockly.Msg.SKLEARN_CLUSTERING_SUM_OF_SQUARED_DISTANCES, "inertia_"]]), "type");
|
.appendField(new Blockly.FieldDropdown([
|
||||||
|
[Blockly.Msg.SKLEARN_CLUSTER_CENTER, "cluster_centers_"],
|
||||||
|
[Blockly.Msg.SKLEARN_LABELS_AFTER_CLUSTERING, "labels_"],
|
||||||
|
[Blockly.Msg.SKLEARN_CLUSTERING_SUM_OF_SQUARED_DISTANCES, "inertia_"]
|
||||||
|
]), "type");
|
||||||
this.setInputsInline(true);
|
this.setInputsInline(true);
|
||||||
this.setOutput(true, null);
|
this.setOutput(true, null);
|
||||||
this.setColour(SKLEARN_HUE);
|
this.setColour(SKLEARN_HUE);
|
||||||
@@ -662,7 +683,10 @@ export const sklearn_save_load_model = {
|
|||||||
.setCheck(null)
|
.setCheck(null)
|
||||||
.setAlign(Blockly.inputs.Align.RIGHT)
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
||||||
.appendField("sklearn")
|
.appendField("sklearn")
|
||||||
.appendField(new Blockly.FieldDropdown([[Blockly.Msg.SKLEARN_SAVE_MODEL, "dump"], [Blockly.Msg.SKLEARN_LOAD_MODEL, "load"]]), "type")
|
.appendField(new Blockly.FieldDropdown([
|
||||||
|
[Blockly.Msg.SKLEARN_SAVE_MODEL, "dump"],
|
||||||
|
[Blockly.Msg.SKLEARN_LOAD_MODEL, "load"]
|
||||||
|
]), "type")
|
||||||
.appendField(" " + Blockly.Msg.MODEL_NAME);
|
.appendField(" " + Blockly.Msg.MODEL_NAME);
|
||||||
this.appendValueInput("address")
|
this.appendValueInput("address")
|
||||||
.setCheck(null)
|
.setCheck(null)
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ export const sklearn_make_classification = function (_, generator) {
|
|||||||
var value_n_clusters_per_class = generator.valueToCode(this, 'n_clusters_per_class', generator.ORDER_ATOMIC) || '2';
|
var value_n_clusters_per_class = generator.valueToCode(this, 'n_clusters_per_class', generator.ORDER_ATOMIC) || '2';
|
||||||
var value_random_state = generator.valueToCode(this, 'random_state', generator.ORDER_ATOMIC) || 'None';
|
var value_random_state = generator.valueToCode(this, 'random_state', generator.ORDER_ATOMIC) || 'None';
|
||||||
generator.definitions_['import_sklearn_make_classification'] = 'from sklearn.datasets import make_classification';
|
generator.definitions_['import_sklearn_make_classification'] = 'from sklearn.datasets import make_classification';
|
||||||
var code = 'make_classification(n_samples=' + value_n_samples + ',n_features=' + value_n_features + ',n_informative=' + value_n_informative + ',n_redundant=' + value_n_redundant + ',n_repeated=' + value_n_repeated + ',n_classes=' + value_n_classes + ',n_clusters_per_class=' + value_n_clusters_per_class + ',random_state=' + value_random_state + ')';
|
var code = 'make_classification(n_samples=' + value_n_samples + ', n_features=' + value_n_features + ', n_informative=' + value_n_informative + ', n_redundant=' + value_n_redundant + ', n_repeated=' + value_n_repeated + ', n_classes=' + value_n_classes + ', n_clusters_per_class=' + value_n_clusters_per_class + ', random_state=' + value_random_state + ')';
|
||||||
return [code, generator.ORDER_ATOMIC];
|
return [code, generator.ORDER_ATOMIC];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -22,7 +22,7 @@ export const sklearn_make_regression = function (_, generator) {
|
|||||||
var value_noise = generator.valueToCode(this, 'noise', generator.ORDER_ATOMIC) || '0.0';
|
var value_noise = generator.valueToCode(this, 'noise', generator.ORDER_ATOMIC) || '0.0';
|
||||||
var value_random_state = generator.valueToCode(this, 'random_state', generator.ORDER_ATOMIC) || 'None';
|
var value_random_state = generator.valueToCode(this, 'random_state', generator.ORDER_ATOMIC) || 'None';
|
||||||
generator.definitions_['import_sklearn_make_regression'] = 'from sklearn.datasets import make_regression';
|
generator.definitions_['import_sklearn_make_regression'] = 'from sklearn.datasets import make_regression';
|
||||||
var code = 'make_regression(n_samples=' + value_n_samples + ',n_features=' + value_n_features + ',n_informative=' + value_n_informative + ',n_targets=' + value_n_targets + ',bias=' + value_bias + ',noise=' + value_noise + ',random_state=' + value_random_state + ')';
|
var code = 'make_regression(n_samples=' + value_n_samples + ', n_features=' + value_n_features + ', n_informative=' + value_n_informative + ', n_targets=' + value_n_targets + ', bias=' + value_bias + ', noise=' + value_noise + ', random_state=' + value_random_state + ')';
|
||||||
return [code, generator.ORDER_ATOMIC];
|
return [code, generator.ORDER_ATOMIC];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -36,7 +36,7 @@ export const sklearn_make_blobs = function (_, generator) {
|
|||||||
var value_shuffle = generator.valueToCode(this, 'shuffle', generator.ORDER_ATOMIC) || 'True';
|
var value_shuffle = generator.valueToCode(this, 'shuffle', generator.ORDER_ATOMIC) || 'True';
|
||||||
var value_random_state = generator.valueToCode(this, 'random_state', generator.ORDER_ATOMIC) || 'None';
|
var value_random_state = generator.valueToCode(this, 'random_state', generator.ORDER_ATOMIC) || 'None';
|
||||||
generator.definitions_['import_sklearn_make_blobs'] = 'from sklearn.datasets import make_blobs';
|
generator.definitions_['import_sklearn_make_blobs'] = 'from sklearn.datasets import make_blobs';
|
||||||
var code = 'make_blobs(n_samples=' + value_n_samples + ',n_features=' + value_n_features + ',centers=' + value_centers + ',cluster_std=' + value_cluster_std + ',center_box=' + value_center_box + ',shuffle=' + value_shuffle + ',random_state=' + value_random_state + ')';
|
var code = 'make_blobs(n_samples=' + value_n_samples + ', n_features=' + value_n_features + ', centers=' + value_centers + ', cluster_std=' + value_cluster_std + ', center_box=' + value_center_box + ', shuffle=' + value_shuffle + ', random_state=' + value_random_state + ')';
|
||||||
return [code, generator.ORDER_ATOMIC];
|
return [code, generator.ORDER_ATOMIC];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -64,10 +64,11 @@ export const sklearn_train_test_split = function (_, generator) {
|
|||||||
var value_test_size = generator.valueToCode(this, 'test_size', generator.ORDER_ATOMIC) || '0.3';
|
var value_test_size = generator.valueToCode(this, 'test_size', generator.ORDER_ATOMIC) || '0.3';
|
||||||
var value_rondom_state = generator.valueToCode(this, 'rondom_state', generator.ORDER_ATOMIC) || 'None';
|
var value_rondom_state = generator.valueToCode(this, 'rondom_state', generator.ORDER_ATOMIC) || 'None';
|
||||||
generator.definitions_['import_sklearn_train_test_split'] = 'from sklearn.model_selection import train_test_split';
|
generator.definitions_['import_sklearn_train_test_split'] = 'from sklearn.model_selection import train_test_split';
|
||||||
if (value_train_target == 'None')
|
if (value_train_target == 'None') {
|
||||||
var code = 'train_test_split(' + value_train_data + ',test_size = ' + value_test_size + ',random_state = ' + value_rondom_state + ')';
|
var code = 'train_test_split(' + value_train_data + ', test_size=' + value_test_size + ', random_state=' + value_rondom_state + ')';
|
||||||
else
|
} else {
|
||||||
var code = 'train_test_split(' + value_train_data + ',' + value_train_target + ',test_size = ' + value_test_size + ',random_state = ' + value_rondom_state + ')';
|
var code = 'train_test_split(' + value_train_data + ', ' + value_train_target + ', test_size=' + value_test_size + ', random_state=' + value_rondom_state + ')';
|
||||||
|
}
|
||||||
return [code, generator.ORDER_ATOMIC];
|
return [code, generator.ORDER_ATOMIC];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -77,7 +78,7 @@ export const sklearn_train_test_split_no_target = function (_, generator) {
|
|||||||
var value_test_size = generator.valueToCode(this, 'test_size', generator.ORDER_ATOMIC) || '0.3';
|
var value_test_size = generator.valueToCode(this, 'test_size', generator.ORDER_ATOMIC) || '0.3';
|
||||||
var value_rondom_state = generator.valueToCode(this, 'rondom_state', generator.ORDER_ATOMIC) || 'None';
|
var value_rondom_state = generator.valueToCode(this, 'rondom_state', generator.ORDER_ATOMIC) || 'None';
|
||||||
generator.definitions_['import_sklearn_train_test_split'] = 'from sklearn.model_selection import train_test_split';
|
generator.definitions_['import_sklearn_train_test_split'] = 'from sklearn.model_selection import train_test_split';
|
||||||
var code = 'train_test_split(' + value_train_data + ',test_size = ' + value_test_size + ',random_state = ' + value_rondom_state + ')';
|
var code = 'train_test_split(' + value_train_data + ', test_size=' + value_test_size + ', random_state=' + value_rondom_state + ')';
|
||||||
return [code, generator.ORDER_ATOMIC];
|
return [code, generator.ORDER_ATOMIC];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -88,7 +89,7 @@ export const sklearn_LinearRegression = function (_, generator) {
|
|||||||
var value_normalize = generator.valueToCode(this, 'normalize', generator.ORDER_ATOMIC) || 'False';
|
var value_normalize = generator.valueToCode(this, 'normalize', generator.ORDER_ATOMIC) || 'False';
|
||||||
var value_n_jobs = generator.valueToCode(this, 'n_jobs', generator.ORDER_ATOMIC) || 'None';
|
var value_n_jobs = generator.valueToCode(this, 'n_jobs', generator.ORDER_ATOMIC) || 'None';
|
||||||
generator.definitions_['import_sklearn_linear_model'] = 'from sklearn.linear_model import LinearRegression';
|
generator.definitions_['import_sklearn_linear_model'] = 'from sklearn.linear_model import LinearRegression';
|
||||||
var code = value_model_name + ' = LinearRegression(fit_intercept = ' + value_fit_intercept + ',normalize = ' + value_normalize + ',n_jobs = ' + value_n_jobs + ')\n';
|
var code = value_model_name + ' = LinearRegression(fit_intercept=' + value_fit_intercept + ', normalize=' + value_normalize + ', n_jobs=' + value_n_jobs + ')\n';
|
||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -101,7 +102,7 @@ export const sklearn_Ridge = function (_, generator) {
|
|||||||
var value_max_iter = generator.valueToCode(this, 'max_iter', generator.ORDER_ATOMIC) || '300';
|
var value_max_iter = generator.valueToCode(this, 'max_iter', generator.ORDER_ATOMIC) || '300';
|
||||||
var value_random_state = generator.valueToCode(this, 'random_state', generator.ORDER_ATOMIC) || 'None';
|
var value_random_state = generator.valueToCode(this, 'random_state', generator.ORDER_ATOMIC) || 'None';
|
||||||
generator.definitions_['import_sklearn_linear_model'] = 'from sklearn.linear_model import Ridge';
|
generator.definitions_['import_sklearn_linear_model'] = 'from sklearn.linear_model import Ridge';
|
||||||
var code = value_model_name + ' = Ridge(alpha = ' + value_alpha + ',fit_intercept = ' + value_fit_intercept + ',normalize = ' + value_normalize + ',max_iter = ' + value_max_iter + ',random_state = ' + value_random_state + ')\n';
|
var code = value_model_name + ' = Ridge(alpha=' + value_alpha + ', fit_intercept=' + value_fit_intercept + ', normalize=' + value_normalize + ', max_iter=' + value_max_iter + ', random_state=' + value_random_state + ')\n';
|
||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -112,7 +113,7 @@ export const sklearn_DecisionTreeClassifier_Regressor = function (_, generator)
|
|||||||
var value_max_depth = generator.valueToCode(this, 'max_depth', generator.ORDER_ATOMIC) || 'None';
|
var value_max_depth = generator.valueToCode(this, 'max_depth', generator.ORDER_ATOMIC) || 'None';
|
||||||
var value_random_state = generator.valueToCode(this, 'random_state', generator.ORDER_ATOMIC) || 'None';
|
var value_random_state = generator.valueToCode(this, 'random_state', generator.ORDER_ATOMIC) || 'None';
|
||||||
generator.definitions_['import_sklearn_' + dropdown_type] = 'from sklearn.tree import ' + dropdown_type;
|
generator.definitions_['import_sklearn_' + dropdown_type] = 'from sklearn.tree import ' + dropdown_type;
|
||||||
var code = value_model_name + ' = ' + dropdown_type + '(max_depth = ' + value_max_depth + ',random_state = ' + value_random_state + ')\n';
|
var code = value_model_name + ' = ' + dropdown_type + '(max_depth=' + value_max_depth + ', random_state=' + value_random_state + ')\n';
|
||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -124,7 +125,7 @@ export const sklearn_RandomForestClassifier_Regressor = function (_, generator)
|
|||||||
var value_n_jobs = generator.valueToCode(this, 'n_jobs', generator.ORDER_ATOMIC) || 'None';
|
var value_n_jobs = generator.valueToCode(this, 'n_jobs', generator.ORDER_ATOMIC) || 'None';
|
||||||
var value_random_state = generator.valueToCode(this, 'random_state', generator.ORDER_ATOMIC) || 'None';
|
var value_random_state = generator.valueToCode(this, 'random_state', generator.ORDER_ATOMIC) || 'None';
|
||||||
generator.definitions_['import_sklearn_' + dropdown_type] = 'from sklearn.ensemble import ' + dropdown_type;
|
generator.definitions_['import_sklearn_' + dropdown_type] = 'from sklearn.ensemble import ' + dropdown_type;
|
||||||
var code = value_model_name + ' = ' + dropdown_type + '(n_estimators = ' + value_n_estimators + ',max_depth = ' + value_max_depth + ',n_jobs = ' + value_n_jobs + ',random_state = ' + value_random_state + ')\n';
|
var code = value_model_name + ' = ' + dropdown_type + '(n_estimators=' + value_n_estimators + ', max_depth=' + value_max_depth + ', n_jobs=' + value_n_jobs + ', random_state=' + value_random_state + ')\n';
|
||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -135,7 +136,7 @@ export const sklearn_KNeighborsClassifier_Regressor = function (_, generator) {
|
|||||||
var value_K = generator.valueToCode(this, 'K', generator.ORDER_ATOMIC) || '5';
|
var value_K = generator.valueToCode(this, 'K', generator.ORDER_ATOMIC) || '5';
|
||||||
var value_n_jobs = generator.valueToCode(this, 'n_jobs', generator.ORDER_ATOMIC) || 'None';
|
var value_n_jobs = generator.valueToCode(this, 'n_jobs', generator.ORDER_ATOMIC) || 'None';
|
||||||
generator.definitions_['import_sklearn_' + dropdown_type] = 'from sklearn.neighbors import ' + dropdown_type;
|
generator.definitions_['import_sklearn_' + dropdown_type] = 'from sklearn.neighbors import ' + dropdown_type;
|
||||||
var code = value_model_name + ' = ' + dropdown_type + '(n_neighbors = ' + value_K + ',n_jobs = ' + value_n_jobs + ')\n';
|
var code = value_model_name + ' = ' + dropdown_type + '(n_neighbors=' + value_K + ', n_jobs=' + value_n_jobs + ')\n';
|
||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -170,7 +171,7 @@ export const sklearn_KMeans = function (_, generator) {
|
|||||||
var value_max_iter = generator.valueToCode(this, 'max_iter', generator.ORDER_ATOMIC) || '300';
|
var value_max_iter = generator.valueToCode(this, 'max_iter', generator.ORDER_ATOMIC) || '300';
|
||||||
var value_random_state = generator.valueToCode(this, 'random_state', generator.ORDER_ATOMIC) || 'None';
|
var value_random_state = generator.valueToCode(this, 'random_state', generator.ORDER_ATOMIC) || 'None';
|
||||||
generator.definitions_['import_sklearn_KMeans'] = 'from sklearn.cluster import KMeans';
|
generator.definitions_['import_sklearn_KMeans'] = 'from sklearn.cluster import KMeans';
|
||||||
var code = value_model_name + ' = KMeans(n_clusters = ' + value_n_clusters + ',max_iter = ' + value_max_iter + ',random_state = ' + value_random_state + ')\n';
|
var code = value_model_name + ' = KMeans(n_clusters=' + value_n_clusters + ', max_iter=' + value_max_iter + ', random_state=' + value_random_state + ')\n';
|
||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -186,10 +187,11 @@ export const sklearn_fit = function (_, generator) {
|
|||||||
var value_model_name = generator.valueToCode(this, 'model_name', generator.ORDER_ATOMIC) || 'model';
|
var value_model_name = generator.valueToCode(this, 'model_name', generator.ORDER_ATOMIC) || 'model';
|
||||||
var value_train_data = generator.valueToCode(this, 'train_data', generator.ORDER_ATOMIC) || 'X_train';
|
var value_train_data = generator.valueToCode(this, 'train_data', generator.ORDER_ATOMIC) || 'X_train';
|
||||||
var value_train_target = generator.valueToCode(this, 'train_target', generator.ORDER_ATOMIC) || 'y_train';
|
var value_train_target = generator.valueToCode(this, 'train_target', generator.ORDER_ATOMIC) || 'y_train';
|
||||||
if (value_train_target == 'None')
|
if (value_train_target == 'None') {
|
||||||
var code = value_model_name + '.fit(' + value_train_data + ')\n';
|
var code = value_model_name + '.fit(' + value_train_data + ')\n';
|
||||||
else
|
} else {
|
||||||
var code = value_model_name + '.fit(' + value_train_data + ',' + value_train_target + ')\n';
|
var code = value_model_name + '.fit(' + value_train_data + ', ' + value_train_target + ')\n';
|
||||||
|
}
|
||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -214,10 +216,11 @@ export const sklearn_score = function (_, generator) {
|
|||||||
var value_model_name = generator.valueToCode(this, 'model_name', generator.ORDER_ATOMIC) || 'model';
|
var value_model_name = generator.valueToCode(this, 'model_name', generator.ORDER_ATOMIC) || 'model';
|
||||||
var value_train_data = generator.valueToCode(this, 'train_data', generator.ORDER_ATOMIC) || 'X_train';
|
var value_train_data = generator.valueToCode(this, 'train_data', generator.ORDER_ATOMIC) || 'X_train';
|
||||||
var value_train_target = generator.valueToCode(this, 'train_target', generator.ORDER_ATOMIC) || 'y_train';
|
var value_train_target = generator.valueToCode(this, 'train_target', generator.ORDER_ATOMIC) || 'y_train';
|
||||||
if (value_train_target == 'None')
|
if (value_train_target == 'None') {
|
||||||
var code = value_model_name + '.score(' + value_train_data + ')';
|
var code = value_model_name + '.score(' + value_train_data + ')';
|
||||||
else
|
} else {
|
||||||
var code = value_model_name + '.score(' + value_train_data + ',' + value_train_target + ')';
|
var code = value_model_name + '.score(' + value_train_data + ', ' + value_train_target + ')';
|
||||||
|
}
|
||||||
return [code, generator.ORDER_ATOMIC];
|
return [code, generator.ORDER_ATOMIC];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -252,9 +255,10 @@ export const sklearn_save_load_model = function (_, generator) {
|
|||||||
var value_address = generator.valueToCode(this, 'address', generator.ORDER_ATOMIC) || 'D:/mixly/test.pkl';
|
var value_address = generator.valueToCode(this, 'address', generator.ORDER_ATOMIC) || 'D:/mixly/test.pkl';
|
||||||
generator.definitions_['import_sklearn_joblib'] = 'import joblib';
|
generator.definitions_['import_sklearn_joblib'] = 'import joblib';
|
||||||
var code = '';
|
var code = '';
|
||||||
if (dropdown_type == 'dump')
|
if (dropdown_type == 'dump') {
|
||||||
code = 'joblib.dump(' + value_model_name + ',' + value_address + ')\n';
|
code = 'joblib.dump(' + value_model_name + ', ' + value_address + ')\n';
|
||||||
else
|
} else {
|
||||||
code = value_model_name + ' = joblib.load(' + value_address + ')\n';
|
code = value_model_name + ' = joblib.load(' + value_address + ')\n';
|
||||||
|
}
|
||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
@@ -3502,7 +3502,7 @@
|
|||||||
<block type="sklearn_train_test_split">
|
<block type="sklearn_train_test_split">
|
||||||
<value name="train_data">
|
<value name="train_data">
|
||||||
<shadow type="variables_get">
|
<shadow type="variables_get">
|
||||||
<field name="VAR">iris_X</field>
|
<field name="VAR">iris_x</field>
|
||||||
</shadow>
|
</shadow>
|
||||||
</value>
|
</value>
|
||||||
<value name="train_target">
|
<value name="train_target">
|
||||||
@@ -3623,7 +3623,7 @@
|
|||||||
</value>
|
</value>
|
||||||
<value name="train_data">
|
<value name="train_data">
|
||||||
<shadow type="variables_get">
|
<shadow type="variables_get">
|
||||||
<field name="VAR">X</field>
|
<field name="VAR">x</field>
|
||||||
</shadow>
|
</shadow>
|
||||||
</value>
|
</value>
|
||||||
</block>
|
</block>
|
||||||
@@ -3680,7 +3680,7 @@
|
|||||||
</value>
|
</value>
|
||||||
<value name="train_data">
|
<value name="train_data">
|
||||||
<shadow type="variables_get">
|
<shadow type="variables_get">
|
||||||
<field name="VAR">X</field>
|
<field name="VAR">x</field>
|
||||||
</shadow>
|
</shadow>
|
||||||
</value>
|
</value>
|
||||||
</block>
|
</block>
|
||||||
@@ -3692,7 +3692,7 @@
|
|||||||
</value>
|
</value>
|
||||||
<value name="train_data">
|
<value name="train_data">
|
||||||
<shadow type="variables_get">
|
<shadow type="variables_get">
|
||||||
<field name="VAR">X_train</field>
|
<field name="VAR">x_train</field>
|
||||||
</shadow>
|
</shadow>
|
||||||
</value>
|
</value>
|
||||||
<value name="train_target">
|
<value name="train_target">
|
||||||
@@ -3709,7 +3709,7 @@
|
|||||||
</value>
|
</value>
|
||||||
<value name="train_data">
|
<value name="train_data">
|
||||||
<shadow type="variables_get">
|
<shadow type="variables_get">
|
||||||
<field name="VAR">X_test</field>
|
<field name="VAR">x_test</field>
|
||||||
</shadow>
|
</shadow>
|
||||||
</value>
|
</value>
|
||||||
<value name="train_target">
|
<value name="train_target">
|
||||||
@@ -3726,7 +3726,7 @@
|
|||||||
</value>
|
</value>
|
||||||
<value name="train_data">
|
<value name="train_data">
|
||||||
<shadow type="variables_get">
|
<shadow type="variables_get">
|
||||||
<field name="VAR">X_test</field>
|
<field name="VAR">x_test</field>
|
||||||
</shadow>
|
</shadow>
|
||||||
</value>
|
</value>
|
||||||
</block>
|
</block>
|
||||||
|
|||||||
36
boards/default_src/python_pyodide/blocks/sklearn.js
Normal file
36
boards/default_src/python_pyodide/blocks/sklearn.js
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
/**
|
||||||
|
* @typedef {import('@mixly/python-mixpy').PythonMixpySKLearnBlocks} PythonMixpySKLearnBlocks
|
||||||
|
*/
|
||||||
|
import * as Blockly from 'blockly/core';
|
||||||
|
|
||||||
|
const SKLEARN_HUE = 80;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @override Override {@link PythonMixpySKLearnBlocks.sklearn_LinearRegression}
|
||||||
|
*/
|
||||||
|
//sklearn 初始化线性回归
|
||||||
|
export const sklearn_LinearRegression = {
|
||||||
|
init: function () {
|
||||||
|
this.appendDummyInput()
|
||||||
|
.appendField('sklearn ' + Blockly.Msg.SKLEARN_LINEARREGRESSION_INIT);
|
||||||
|
this.appendValueInput('model_name')
|
||||||
|
.setCheck(null)
|
||||||
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
||||||
|
.appendField(Blockly.Msg.MODEL_NAME);
|
||||||
|
this.appendValueInput('fit_intercept')
|
||||||
|
.setCheck(null)
|
||||||
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
||||||
|
.appendField(Blockly.Msg.SKLEARN_CALCULATE_MODEL_INTERRUPT);
|
||||||
|
this.appendValueInput('n_jobs')
|
||||||
|
.setCheck(null)
|
||||||
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
||||||
|
.appendField(Blockly.Msg.SKLEARN_THREADS);
|
||||||
|
this.setInputsInline(false);
|
||||||
|
this.setPreviousStatement(true, null);
|
||||||
|
this.setNextStatement(true, null);
|
||||||
|
this.setColour(SKLEARN_HUE);
|
||||||
|
this.setTooltip('');
|
||||||
|
this.setHelpUrl('');
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
import * as PythonPyodideSKLearnBlocks from './blocks/sklearn';
|
||||||
|
import * as PythonPyodideSKLearnGenerators from './generators/sklearn';
|
||||||
|
|
||||||
|
export {
|
||||||
|
PythonPyodideSKLearnBlocks,
|
||||||
|
PythonPyodideSKLearnGenerators
|
||||||
|
};
|
||||||
13
boards/default_src/python_pyodide/generators/sklearn.js
Normal file
13
boards/default_src/python_pyodide/generators/sklearn.js
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
/**
|
||||||
|
* @typedef {import('@mixly/python-mixpy').PythonMixpySKLearnGenerators} PythonMixpySKLearnGenerators
|
||||||
|
*/
|
||||||
|
|
||||||
|
// sklearn 初始化线性回归
|
||||||
|
export const sklearn_LinearRegression = function (_, generator) {
|
||||||
|
const value_model_name = generator.valueToCode(this, 'model_name', generator.ORDER_ATOMIC) || 'model';
|
||||||
|
const value_fit_intercept = generator.valueToCode(this, 'fit_intercept', generator.ORDER_ATOMIC) || 'True';
|
||||||
|
const value_n_jobs = generator.valueToCode(this, 'n_jobs', generator.ORDER_ATOMIC) || 'None';
|
||||||
|
generator.definitions_['import_sklearn_linear_model'] = 'from sklearn.linear_model import LinearRegression';
|
||||||
|
const code = value_model_name + ' = LinearRegression(fit_intercept=' + value_fit_intercept + ', n_jobs=' + value_n_jobs + ')\n';
|
||||||
|
return code;
|
||||||
|
}
|
||||||
@@ -67,6 +67,11 @@ import {
|
|||||||
PythonMixpyTurtleGenerators
|
PythonMixpyTurtleGenerators
|
||||||
} from '@mixly/python-mixpy';
|
} from '@mixly/python-mixpy';
|
||||||
|
|
||||||
|
import {
|
||||||
|
PythonPyodideSKLearnBlocks,
|
||||||
|
PythonPyodideSKLearnGenerators
|
||||||
|
} from './';
|
||||||
|
|
||||||
import './others/loader';
|
import './others/loader';
|
||||||
|
|
||||||
import './css/color_mixpy_python_advance.css';
|
import './css/color_mixpy_python_advance.css';
|
||||||
@@ -108,6 +113,7 @@ Object.assign(
|
|||||||
PythonMixpySKLearnBlocks,
|
PythonMixpySKLearnBlocks,
|
||||||
PythonMixpySystemBlocks,
|
PythonMixpySystemBlocks,
|
||||||
PythonMixpyTurtleBlocks,
|
PythonMixpyTurtleBlocks,
|
||||||
|
PythonPyodideSKLearnBlocks
|
||||||
);
|
);
|
||||||
|
|
||||||
Object.assign(
|
Object.assign(
|
||||||
@@ -139,5 +145,6 @@ Object.assign(
|
|||||||
PythonMixpySerialGenerators,
|
PythonMixpySerialGenerators,
|
||||||
PythonMixpySKLearnGenerators,
|
PythonMixpySKLearnGenerators,
|
||||||
PythonMixpySystemGenerators,
|
PythonMixpySystemGenerators,
|
||||||
PythonMixpyTurtleGenerators
|
PythonMixpyTurtleGenerators,
|
||||||
|
PythonPyodideSKLearnGenerators
|
||||||
);
|
);
|
||||||
@@ -3467,7 +3467,7 @@
|
|||||||
<block type="sklearn_train_test_split">
|
<block type="sklearn_train_test_split">
|
||||||
<value name="train_data">
|
<value name="train_data">
|
||||||
<shadow type="variables_get">
|
<shadow type="variables_get">
|
||||||
<field name="VAR">iris_X</field>
|
<field name="VAR">iris_x</field>
|
||||||
</shadow>
|
</shadow>
|
||||||
</value>
|
</value>
|
||||||
<value name="train_target">
|
<value name="train_target">
|
||||||
@@ -3495,11 +3495,6 @@
|
|||||||
<field name="BOOL">TRUE</field>
|
<field name="BOOL">TRUE</field>
|
||||||
</shadow>
|
</shadow>
|
||||||
</value>
|
</value>
|
||||||
<value name="normalize">
|
|
||||||
<shadow type="logic_boolean">
|
|
||||||
<field name="BOOL">FALSE</field>
|
|
||||||
</shadow>
|
|
||||||
</value>
|
|
||||||
<value name="n_jobs">
|
<value name="n_jobs">
|
||||||
<shadow type="logic_null"></shadow>
|
<shadow type="logic_null"></shadow>
|
||||||
</value>
|
</value>
|
||||||
@@ -3588,7 +3583,7 @@
|
|||||||
</value>
|
</value>
|
||||||
<value name="train_data">
|
<value name="train_data">
|
||||||
<shadow type="variables_get">
|
<shadow type="variables_get">
|
||||||
<field name="VAR">X</field>
|
<field name="VAR">x</field>
|
||||||
</shadow>
|
</shadow>
|
||||||
</value>
|
</value>
|
||||||
</block>
|
</block>
|
||||||
@@ -3645,7 +3640,7 @@
|
|||||||
</value>
|
</value>
|
||||||
<value name="train_data">
|
<value name="train_data">
|
||||||
<shadow type="variables_get">
|
<shadow type="variables_get">
|
||||||
<field name="VAR">X</field>
|
<field name="VAR">x</field>
|
||||||
</shadow>
|
</shadow>
|
||||||
</value>
|
</value>
|
||||||
</block>
|
</block>
|
||||||
@@ -3657,7 +3652,7 @@
|
|||||||
</value>
|
</value>
|
||||||
<value name="train_data">
|
<value name="train_data">
|
||||||
<shadow type="variables_get">
|
<shadow type="variables_get">
|
||||||
<field name="VAR">X_train</field>
|
<field name="VAR">x_train</field>
|
||||||
</shadow>
|
</shadow>
|
||||||
</value>
|
</value>
|
||||||
<value name="train_target">
|
<value name="train_target">
|
||||||
@@ -3674,7 +3669,7 @@
|
|||||||
</value>
|
</value>
|
||||||
<value name="train_data">
|
<value name="train_data">
|
||||||
<shadow type="variables_get">
|
<shadow type="variables_get">
|
||||||
<field name="VAR">X_test</field>
|
<field name="VAR">x_test</field>
|
||||||
</shadow>
|
</shadow>
|
||||||
</value>
|
</value>
|
||||||
<value name="train_target">
|
<value name="train_target">
|
||||||
@@ -3691,7 +3686,7 @@
|
|||||||
</value>
|
</value>
|
||||||
<value name="train_data">
|
<value name="train_data">
|
||||||
<shadow type="variables_get">
|
<shadow type="variables_get">
|
||||||
<field name="VAR">X_test</field>
|
<field name="VAR">x_test</field>
|
||||||
</shadow>
|
</shadow>
|
||||||
</value>
|
</value>
|
||||||
</block>
|
</block>
|
||||||
@@ -3717,7 +3712,7 @@
|
|||||||
</value>
|
</value>
|
||||||
<value name="address">
|
<value name="address">
|
||||||
<shadow type="text">
|
<shadow type="text">
|
||||||
<field name="TEXT">D:/mixly/test.pkl</field>
|
<field name="TEXT">/test.pkl</field>
|
||||||
</shadow>
|
</shadow>
|
||||||
</value>
|
</value>
|
||||||
</block>
|
</block>
|
||||||
|
|||||||
Reference in New Issue
Block a user