702 lines
26 KiB
JavaScript
702 lines
26 KiB
JavaScript
import * as Blockly from 'blockly/core';
|
|
|
|
const SKLEARN_HUE = 80;
|
|
|
|
export const sklearn_make_classification = {
|
|
init: function () {
|
|
this.appendDummyInput()
|
|
.appendField(Blockly.Msg.SKLEARN_CLASSIFICATION_GENERATION);
|
|
this.appendValueInput("n_samples")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.NUMBER_OF_SAMPLES);
|
|
this.appendValueInput("n_features")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.NUMBER_OF_FEATURES);
|
|
this.appendValueInput("n_informative")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.NUMBER_OF_EFFECTIVE_FEATURES);
|
|
this.appendValueInput("n_redundant")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.NUMBER_OF_REDUNDANT_FEATURES);
|
|
this.appendValueInput("n_repeated")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.NUMBER_OF_REPEATED_FEATURES);
|
|
this.appendValueInput("n_classes")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.NUMBER_OF_CLASSES);
|
|
this.appendValueInput("n_clusters_per_class")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.NUMBER_OF_CLUSTERS_PER_CLASSES);
|
|
this.appendValueInput("random_state")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.RANDOM_SEED);
|
|
this.setInputsInline(false);
|
|
this.setOutput(true, null);
|
|
this.setColour(SKLEARN_HUE);
|
|
this.setTooltip("");
|
|
this.setHelpUrl("");
|
|
}
|
|
};
|
|
|
|
//sklearn 生成回归样本
|
|
export const sklearn_make_regression = {
|
|
init: function () {
|
|
this.appendDummyInput()
|
|
.appendField(Blockly.Msg.SKLEARN_REGRESSION_GENERATION);
|
|
this.appendValueInput("n_samples")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.NUMBER_OF_SAMPLES);
|
|
this.appendValueInput("n_features")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.NUMBER_OF_FEATURES);
|
|
this.appendValueInput("n_informative")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.NUMBER_OF_EFFECTIVE_FEATURES);
|
|
this.appendValueInput("n_targets")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.NUMBER_OF_LABELS);
|
|
this.appendValueInput("bias")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.DEVIATION);
|
|
this.appendValueInput("noise")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.NOISE);
|
|
this.appendValueInput("random_state")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.RANDOM_SEED);
|
|
this.setInputsInline(false);
|
|
this.setOutput(true, null);
|
|
this.setColour(SKLEARN_HUE);
|
|
this.setTooltip("");
|
|
this.setHelpUrl("");
|
|
}
|
|
};
|
|
|
|
//sklearn 生成聚类样本
|
|
export const sklearn_make_blobs = {
|
|
init: function () {
|
|
this.appendDummyInput()
|
|
.appendField(Blockly.Msg.SKLEARN_CLUSTERING_GENERATION);
|
|
this.appendValueInput("n_samples")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.NUMBER_OF_SAMPLES);
|
|
this.appendValueInput("n_features")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.NUMBER_OF_FEATURES);
|
|
this.appendValueInput("centers")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.NUMBER_OF_CLUSTERS);
|
|
this.appendValueInput("cluster_std")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.STANDARD_DEVIATION_OF_CLUSTER);
|
|
this.appendValueInput("center_box")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.CLUSTER_BOUNDING_BOX);
|
|
this.appendValueInput("shuffle")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.SHUFFLE_SAMPLES);
|
|
this.appendValueInput("random_state")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.RANDOM_SEED);
|
|
this.setInputsInline(false);
|
|
this.setOutput(true, null);
|
|
this.setColour(SKLEARN_HUE);
|
|
this.setTooltip("");
|
|
this.setHelpUrl("");
|
|
}
|
|
};
|
|
|
|
//sklearn 加载数据集
|
|
export const sklearn_load = {
|
|
init: function () {
|
|
var data = [
|
|
[Blockly.Msg.SKLEARN_LOAD_IRIS, "load_iris"],
|
|
[Blockly.Msg.SKLEARN_LOAD_BOSTON, "load_boston"],
|
|
[Blockly.Msg.SKLEARN_LOAD_DIABETES, "load_diabetes"],
|
|
[Blockly.Msg.SKLEARN_LOAD_BREAST_CANCER, "load_breast_cancer"],
|
|
[Blockly.Msg.SKLEARN_LOAD_LINNERUD, "load_linnerud"],
|
|
[Blockly.Msg.SKLEARN_LOAD_DIGITS, "load_digits"]
|
|
];
|
|
this.appendDummyInput()
|
|
.appendField("sklearn " + Blockly.Msg.LOAD)
|
|
.appendField(new Blockly.FieldDropdown(data), "type")
|
|
.appendField(new Blockly.FieldTextInput("iris"), "name");
|
|
this.setPreviousStatement(true, null);
|
|
this.setNextStatement(true, null);
|
|
this.setColour(SKLEARN_HUE);
|
|
this.setTooltip("");
|
|
this.setHelpUrl("");
|
|
},
|
|
getVars: function () {
|
|
return [this.getFieldValue('name')];
|
|
},
|
|
renameVar: function (oldName, newName) {
|
|
if (Blockly.Names.equals(oldName, this.getFieldValue('name'))) {
|
|
this.setTitleValue(newName, 'name');
|
|
}
|
|
}
|
|
};
|
|
|
|
//sklearn 获取特征值/标签值/标签/特征
|
|
export const sklearn_data_target = {
|
|
init: function () {
|
|
this.appendValueInput("name")
|
|
.setCheck(null)
|
|
.appendField("sklearn " + Blockly.Msg.DATA_SET);
|
|
this.appendDummyInput()
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.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");
|
|
this.setOutput(true, null);
|
|
this.setColour(SKLEARN_HUE);
|
|
this.setTooltip("");
|
|
this.setHelpUrl("");
|
|
}
|
|
};
|
|
|
|
//sklearn 数据集分割
|
|
export const sklearn_train_test_split = {
|
|
init: function () {
|
|
this.appendDummyInput()
|
|
.appendField("sklearn " + Blockly.Msg.DATA_SEGMENTATION);
|
|
this.appendValueInput("train_data")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.EIGENVALUES);
|
|
this.appendValueInput("train_target")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.LABEL_VALUE);
|
|
this.appendValueInput("test_size")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.TEST_SET_PROPORTION);
|
|
this.appendValueInput("rondom_state")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.RANDOM_SEED);
|
|
this.setInputsInline(false);
|
|
this.setOutput(true, null);
|
|
this.setColour(SKLEARN_HUE);
|
|
this.setTooltip("");
|
|
this.setHelpUrl("");
|
|
}
|
|
};
|
|
|
|
//sklearn 数据集分割-无标签值
|
|
export const sklearn_train_test_split_no_target = {
|
|
init: function () {
|
|
this.appendDummyInput()
|
|
.appendField("sklearn " + Blockly.Msg.DATA_SEGMENTATION);
|
|
this.appendValueInput("train_data")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.EIGENVALUES);
|
|
this.appendValueInput("test_size")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.TEST_SET_PROPORTION);
|
|
this.appendValueInput("rondom_state")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.RANDOM_SEED);
|
|
this.setInputsInline(false);
|
|
this.setOutput(true, null);
|
|
this.setColour(SKLEARN_HUE);
|
|
this.setTooltip("");
|
|
this.setHelpUrl("");
|
|
}
|
|
};
|
|
|
|
//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("normalize")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.SKLEARN_REGRESSION_NORMIALIZATION);
|
|
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("");
|
|
}
|
|
};
|
|
|
|
//sklearn 初始化岭回归
|
|
export const sklearn_Ridge = {
|
|
init: function () {
|
|
this.appendDummyInput()
|
|
.appendField("sklearn " + Blockly.Msg.SKLEARN_RIDGE_INIT);
|
|
this.appendValueInput("model_name")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.MODEL_NAME);
|
|
this.appendValueInput("alpha")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.SKLEARN_REGULA_INTENSITY);
|
|
this.appendValueInput("fit_intercept")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.SKLEARN_CALCULATE_MODEL_INTERRUPT);
|
|
this.appendValueInput("normalize")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.SKLEARN_REGRESSION_NORMIALIZATION);
|
|
this.appendValueInput("max_iter")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.SKLEARN_MAX_ITER);
|
|
this.appendValueInput("random_state")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.RANDOM_SEED);
|
|
this.setInputsInline(false);
|
|
this.setPreviousStatement(true, null);
|
|
this.setNextStatement(true, null);
|
|
this.setColour(SKLEARN_HUE);
|
|
this.setTooltip("");
|
|
this.setHelpUrl("");
|
|
}
|
|
};
|
|
|
|
//sklearn 初始化决策树 分类/回归算法
|
|
export const sklearn_DecisionTreeClassifier_Regressor = {
|
|
init: function () {
|
|
this.appendDummyInput()
|
|
.appendField("sklearn " + Blockly.Msg.SKLEARN_DECISIONTREE_INIT)
|
|
.appendField(new Blockly.FieldDropdown([
|
|
[Blockly.Msg.SKLEARN_CLASSIFICATION_ALGORITHM, "DecisionTreeClassifier"],
|
|
[Blockly.Msg.SKLEARN_REGRESSION_ALGORITHM, "DecisionTreeRegressor"]
|
|
]), "type");
|
|
this.appendValueInput("model_name")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.MODEL_NAME);
|
|
this.appendValueInput("max_depth")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.SKLEARN_MAXIMUM_TREE_DEPTH);
|
|
this.appendValueInput("random_state")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.RANDOM_SEED);
|
|
this.setInputsInline(false);
|
|
this.setPreviousStatement(true, null);
|
|
this.setNextStatement(true, null);
|
|
this.setColour(SKLEARN_HUE);
|
|
this.setTooltip("");
|
|
this.setHelpUrl("");
|
|
}
|
|
};
|
|
|
|
//sklearn 初始化随机森林 分类/回归算法
|
|
export const sklearn_RandomForestClassifier_Regressor = {
|
|
init: function () {
|
|
this.appendDummyInput()
|
|
.appendField("sklearn " + Blockly.Msg.SKLEARN_RANDOMFOREST_INIT)
|
|
.appendField(new Blockly.FieldDropdown([
|
|
[Blockly.Msg.SKLEARN_CLASSIFICATION_ALGORITHM, "RandomForestClassifier"],
|
|
[Blockly.Msg.SKLEARN_REGRESSION_ALGORITHM, "RandomForestRegressor"]
|
|
]), "type");
|
|
this.appendValueInput("model_name")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.MODEL_NAME);
|
|
this.appendValueInput("n_estimators")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.NUMBER_OF_TREES);
|
|
this.appendValueInput("max_depth")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.SKLEARN_MAXIMUM_TREE_DEPTH);
|
|
this.appendValueInput("n_jobs")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.SKLEARN_THREADS);
|
|
this.appendValueInput("random_state")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.RANDOM_SEED);
|
|
this.setInputsInline(false);
|
|
this.setPreviousStatement(true, null);
|
|
this.setNextStatement(true, null);
|
|
this.setColour(SKLEARN_HUE);
|
|
this.setTooltip("");
|
|
this.setHelpUrl("");
|
|
}
|
|
};
|
|
|
|
//sklearn 初始化K近邻 分类/回归算法
|
|
export const sklearn_KNeighborsClassifier_Regressor = {
|
|
init: function () {
|
|
this.appendDummyInput()
|
|
.appendField("sklearn " + Blockly.Msg.SKLEARN_KNN_INIT)
|
|
.appendField(new Blockly.FieldDropdown([
|
|
[Blockly.Msg.SKLEARN_CLASSIFICATION_ALGORITHM, "KNeighborsClassifier"],
|
|
[Blockly.Msg.SKLEARN_REGRESSION_ALGORITHM, "KNeighborsRegressor"]
|
|
]), "type");
|
|
this.appendValueInput("model_name")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.MODEL_NAME);
|
|
this.appendValueInput("K")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField("K");
|
|
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("");
|
|
}
|
|
};
|
|
|
|
//sklearn 初始化高斯贝叶斯分类算法
|
|
export const sklearn_GaussianNB = {
|
|
init: function () {
|
|
this.appendDummyInput()
|
|
.appendField("sklearn " + Blockly.Msg.SKLEARN_GAUSSINNB_INIT);
|
|
this.appendValueInput("model_name")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.MODEL_NAME);
|
|
this.setInputsInline(true);
|
|
this.setPreviousStatement(true, null);
|
|
this.setNextStatement(true, null);
|
|
this.setColour(SKLEARN_HUE);
|
|
this.setTooltip("");
|
|
this.setHelpUrl("");
|
|
}
|
|
};
|
|
|
|
//sklearn 初始化PCA降维
|
|
export const sklearn_pca = {
|
|
init: function () {
|
|
this.appendDummyInput()
|
|
.appendField("sklearn 初始化 PCA 算法");
|
|
this.appendValueInput("model_name")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.MODEL_NAME);
|
|
this.appendValueInput("n_components")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.SKLEARN_PCA_N_COMPONENTS);
|
|
this.setInputsInline(false);
|
|
this.setPreviousStatement(true, null);
|
|
this.setNextStatement(true, null);
|
|
this.setColour(SKLEARN_HUE);
|
|
this.setTooltip("");
|
|
this.setHelpUrl("");
|
|
}
|
|
};
|
|
|
|
//sklearn PCA拟合并转换数据
|
|
export const sklearn_pca_fit_transform = {
|
|
init: function () {
|
|
this.appendDummyInput()
|
|
.appendField("sklearn PCA 降维");
|
|
this.appendValueInput("model_name")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.MODEL_NAME);
|
|
this.appendValueInput("train_data")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.EIGENVALUES);
|
|
this.setInputsInline(true);
|
|
this.setOutput(true, null);
|
|
this.setColour(SKLEARN_HUE);
|
|
this.setTooltip("");
|
|
this.setHelpUrl("");
|
|
}
|
|
};
|
|
|
|
//sklearn 初始化K-均值聚类
|
|
export const sklearn_KMeans = {
|
|
init: function () {
|
|
this.appendDummyInput()
|
|
.appendField("sklearn " + Blockly.Msg.SKLEARN_KMEANS_INIT);
|
|
this.appendValueInput("model_name")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.MODEL_NAME);
|
|
this.appendValueInput("n_clusters")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.NUMBER_OF_CLUSTERS_JUST);
|
|
this.appendValueInput("max_iter")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.SKLEARN_MAX_ITER);
|
|
this.appendValueInput("random_state")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.RANDOM_SEED);
|
|
this.setInputsInline(false);
|
|
this.setPreviousStatement(true, null);
|
|
this.setNextStatement(true, null);
|
|
this.setColour(SKLEARN_HUE);
|
|
this.setTooltip("");
|
|
this.setHelpUrl("");
|
|
}
|
|
};
|
|
|
|
//sklearn KMeans拟合数据
|
|
export const sklearn_KMeans_fit = {
|
|
init: function () {
|
|
this.appendDummyInput()
|
|
.appendField("sklearn K-均值聚类");
|
|
this.appendValueInput("model_name")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.MODEL_NAME);
|
|
this.appendValueInput("train_data")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.EIGENVALUES);
|
|
this.setInputsInline(true);
|
|
this.setPreviousStatement(true, null);
|
|
this.setNextStatement(true, null);
|
|
this.setColour(SKLEARN_HUE);
|
|
this.setTooltip("");
|
|
this.setHelpUrl("");
|
|
}
|
|
};
|
|
|
|
//sklearn 训练模型
|
|
export const sklearn_fit = {
|
|
init: function () {
|
|
this.appendDummyInput()
|
|
.appendField("sklearn " + Blockly.Msg.TRAINING_MODEL);
|
|
this.appendValueInput("model_name")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.MODEL_NAME);
|
|
this.appendValueInput("train_data")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.EIGENVALUES);
|
|
this.appendValueInput("train_target")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.LABEL_VALUE);
|
|
this.setInputsInline(true);
|
|
this.setPreviousStatement(true, null);
|
|
this.setNextStatement(true, null);
|
|
this.setColour(SKLEARN_HUE);
|
|
this.setTooltip("");
|
|
this.setHelpUrl("");
|
|
}
|
|
};
|
|
|
|
//sklearn 训练模型-无标签值
|
|
export const sklearn_fit_no_target = {
|
|
init: function () {
|
|
this.appendDummyInput()
|
|
.appendField("sklearn " + Blockly.Msg.TRAINING_MODEL);
|
|
this.appendValueInput("model_name")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.MODEL_NAME);
|
|
this.appendValueInput("train_data")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.EIGENVALUES);
|
|
this.setInputsInline(true);
|
|
this.setPreviousStatement(true, null);
|
|
this.setNextStatement(true, null);
|
|
this.setColour(SKLEARN_HUE);
|
|
this.setTooltip("");
|
|
this.setHelpUrl("");
|
|
}
|
|
};
|
|
|
|
//sklearn 模型预测
|
|
export const sklearn_predict = {
|
|
init: function () {
|
|
this.appendDummyInput()
|
|
.appendField("sklearn " + Blockly.Msg.MODEL_PRODICTION);
|
|
this.appendValueInput("model_name")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.MODEL_NAME);
|
|
this.appendValueInput("train_data")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.EIGENVALUES);
|
|
this.setInputsInline(true);
|
|
this.setOutput(true, null);
|
|
this.setColour(SKLEARN_HUE);
|
|
this.setTooltip("");
|
|
this.setHelpUrl("");
|
|
}
|
|
};
|
|
|
|
//sklearn 计算模型得分
|
|
export const sklearn_score = {
|
|
init: function () {
|
|
this.appendDummyInput()
|
|
.appendField("sklearn " + Blockly.Msg.CALCULATE_THE_SCORE);
|
|
this.appendValueInput("model_name")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.MODEL_NAME);
|
|
this.appendValueInput("train_data")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.EIGENVALUES);
|
|
this.appendValueInput("train_target")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.LABEL_VALUE);
|
|
this.setInputsInline(true);
|
|
this.setOutput(true, null);
|
|
this.setColour(SKLEARN_HUE);
|
|
this.setTooltip("");
|
|
this.setHelpUrl("");
|
|
}
|
|
};
|
|
|
|
//sklearn 计算模型得分 - 无标签值
|
|
export const sklearn_score_no_target = {
|
|
init: function () {
|
|
this.appendDummyInput()
|
|
.appendField("sklearn " + Blockly.Msg.CALCULATE_THE_SCORE);
|
|
this.appendValueInput("model_name")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.MODEL_NAME);
|
|
this.appendValueInput("train_data")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.EIGENVALUES);
|
|
this.setInputsInline(true);
|
|
this.setOutput(true, null);
|
|
this.setColour(SKLEARN_HUE);
|
|
this.setTooltip("");
|
|
this.setHelpUrl("");
|
|
}
|
|
};
|
|
|
|
//sklearn 线性回归 模型获取 斜率/截距
|
|
export const sklearn_coef_intercept = {
|
|
init: function () {
|
|
this.appendDummyInput()
|
|
.appendField("sklearn " + Blockly.Msg.SKLEARN_GENERALIZED_LINEAR_REGRESSION);
|
|
this.appendValueInput("model_name")
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.setCheck(null)
|
|
.appendField(Blockly.Msg.MODEL_NAME);
|
|
this.appendDummyInput()
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.MIXLY_GET)
|
|
.appendField(new Blockly.FieldDropdown([
|
|
[Blockly.Msg.SKLEARN_COEF, "coef_"],
|
|
[Blockly.Msg.SKLEARN_INTERCEPT, "intercept_"]
|
|
]), "type");
|
|
this.setOutput(true, null);
|
|
this.setColour(SKLEARN_HUE);
|
|
this.setTooltip("");
|
|
this.setHelpUrl("");
|
|
}
|
|
};
|
|
|
|
//sklearn K-均值聚类 模型获取 簇中心坐标/聚类后的标签/所有点到对应簇中心的距离平方和
|
|
export const sklearn_cluster_centers_labels_inertia = {
|
|
init: function () {
|
|
this.appendDummyInput()
|
|
.appendField("sklearn " + Blockly.Msg.SKLEARN_CLUSTERING);
|
|
this.appendValueInput("model_name")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.MODEL_NAME);
|
|
this.appendDummyInput()
|
|
.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");
|
|
this.setInputsInline(true);
|
|
this.setOutput(true, null);
|
|
this.setColour(SKLEARN_HUE);
|
|
this.setTooltip("");
|
|
this.setHelpUrl("");
|
|
}
|
|
};
|
|
|
|
//sklearn 保存/加载模型
|
|
export const sklearn_save_load_model = {
|
|
init: function () {
|
|
this.appendValueInput("model_name")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField("sklearn")
|
|
.appendField(new Blockly.FieldDropdown([
|
|
[Blockly.Msg.SKLEARN_SAVE_MODEL, "dump"],
|
|
[Blockly.Msg.SKLEARN_LOAD_MODEL, "load"]
|
|
]), "type")
|
|
.appendField(" " + Blockly.Msg.MODEL_NAME);
|
|
this.appendValueInput("address")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
|
.appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH);
|
|
this.setInputsInline(true);
|
|
this.setPreviousStatement(true, null);
|
|
this.setNextStatement(true, null);
|
|
this.setColour(SKLEARN_HUE);
|
|
this.setTooltip("");
|
|
this.setHelpUrl("");
|
|
}
|
|
}; |