我试图从安装好的管道中挑出一个组件/变压器来检查它的行为。但是,当我检索组件时,该组件显示为未安装,但是将管道作为一个整体使用是没有问题的。这表明管道已安装,组件也已安装。
有人可以解释原因,并建议如何检查已安装管道中的组件吗?
这是一个可重现的示例:
import pandas as pd
import numpy as np
from sklearn.compose import ColumnTransformer
from sklearn.pipeline import Pipeline
from sklearn.impute import SimpleImputer
from sklearn.preprocessing import StandardScaler, OneHotEncoder
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split, GridSearchCV
np.random.seed(0)
# Read data from Titanic dataset.
titanic_url = ('https://raw.githubusercontent.com/amueller/'
'scipy-2017-sklearn/091d371/notebooks/datasets/titanic3.csv')
data = pd.read_csv(titanic_url)
# We create the preprocessing pipelines for both numeric and categorical data.
numeric_features = ['age', 'fare']
numeric_transformer = Pipeline(steps=[
('imputer', SimpleImputer(strategy='median')),
('scaler', StandardScaler())])
categorical_features = ['embarked', 'sex', 'pclass']
categorical_transformer …Run Code Online (Sandbox Code Playgroud) # array
C:\> (1,2,3).count
3
C:\> (1,2,3 | measure).count
3
# hashtable
C:\> @{1=1; 2=2; 3=3}.count
3
C:\> (@{1=1; 2=2; 3=3} | measure).count
1
# array returned from function
C:\> function UnrollMe { $args }
C:\> (UnrollMe a,b,c).count
3
C:\> (UnrollMe a,b,c | measure).count
1
C:\> (1,2,3).gettype() -eq (UnrollMe a,b,c).gettype()
True
Run Code Online (Sandbox Code Playgroud)
与HashTables的差异是众所周知的,尽管官方文档仅提到它(通过示例).
但是,功能问题对我来说是个新闻.我有点震惊,现在还没有咬过我.我们编程人员可以遵循一些指导原则吗?我知道在C#中编写cmdlet时会出现WriteObject的重载,您可以在其中明确地控制枚举,但是AFAIK在Posh语言本身中没有这样的构造.正如最后一个例子所示,Posh解释器似乎相信被管道对象的类型没有区别.我怀疑在引擎盖下可能会有一些Object vs PSObject的怪异,但是当你编写纯粹的Posh并期望脚本语言"正常工作"时,这没什么用处.
/编辑/
基思是正确的指出,在我的例子中,我传入一个字符串[]参数而不是3个字符串参数.换句话说,Measure-Object说Count = 1的原因是因为它看到的是一个数组,其第一个元素是@("a","b","c").很公平.这些知识允许您以多种方式解决问题:
# stick to single objects
C:\> (UnrollMe a b c | measure).count
3 …Run Code Online (Sandbox Code Playgroud) Bash:我想运行一个命令并通过一些过滤器管道结果,但如果命令失败,我想返回命令的错误值,而不是过滤器的无聊返回值:
例如:
if !(cool_command | output_filter); then handle_the_error; fi
Run Code Online (Sandbox Code Playgroud)
要么:
set -e
cool_command | output_filter
Run Code Online (Sandbox Code Playgroud)
在任何一种情况下,它cool_command都是我关心的返回值- 对于第一种情况中的'if'条件,或者在第二种情况下退出脚本.
这样做有什么干净的习惯用法吗?
我一般关于渲染管道的问题,我看过ASP.NET MVC管道方案,还有一个名为View Engine的步骤,它是如何工作的?我想知道这种情况:
Response.End()在@{}页面开头的块中使用这个中断执行页面并停止渲染视图?我需要一个工具,以图形方式表示我们的构建管道.下面的ThoughtWorks Go和Jenkins Pipeline插件的截图几乎可以说明我想要它的样子.
问题是我们已经将Jenkins用于我们的构建和部署,以及一些其他用于编排类型职责的自定义工具.我们不希望管道工具本身进行构建或部署,它只需要调用Jenkins!我尝试了Go,它要求的第一件事是我的源代码是什么以及如何构建它.我无法以Jenkins进行构建的方式开始工作,但Go创建了管道.
我也尝试过Jenkins Pipeline插件,但它非常有限.首先,它不适用于Join插件(因此我们不能并行运行作业,这是一项要求).它还假设我们的所有任务都发生在Jenkins中(Jenkins无法在我们的测试实验室之外看到我们的生产环境).我不知道这是否也是可行的选择.
那么,有没有人对某些管道工具有什么建议可以做我正在寻找的东西?

我的目标是使用一个模型来选择最重要的变量,使用另一个模型来使用这些变量进行预测.在下面的示例中,我使用两个RandomForestClassifiers,但第二个模型可以是任何其他分类器.
RF具有带阈值参数的变换方法.我想网格搜索不同的可能阈值参数.
这是一个简化的代码片段:
# Transform object and classifier
rf_filter = RandomForestClassifier(n_estimators=200, n_jobs=-1, random_state=42, oob_score=False)
clf = RandomForestClassifier(n_jobs=-1, random_state=42, oob_score=False)
pipe = Pipeline([("RFF", rf_filter), ("RF", clf)])
# Grid search parameters
rf_n_estimators = [10, 20]
rff_transform = ["median", "mean"] # Search the threshold parameters
estimator = GridSearchCV(pipe,
cv = 3,
param_grid = dict(RF__n_estimators = rf_n_estimators,
RFF__threshold = rff_transform))
estimator.fit(X_train, y_train)
Run Code Online (Sandbox Code Playgroud)
错误是 ValueError: Invalid parameter threshold for estimator RandomForestClassifier
我认为这会有效,因为文档说:
如果为None且可用,则使用对象属性阈值.
我尝试在网格搜索(rf_filter.threshold = "median")之前设置阈值属性并且它有效; 但是,我无法弄清楚如何对其进行网格搜索.
有没有办法迭代通常预期在分类器的转换方法中提供的不同参数?
我有一个如下文件:
{
"user_id": NumberLong(1),
"updated_at": ISODate("2016-11-17T09:35:56.200Z"),
"created_at": ISODate("2016-11-17T09:35:07.981Z"),
"banners": {
"normal_x970h90": "/images/banners/4/582d79cb3aef567d64621be9/photo-1440700265116-fe3f91810d72.jpg",
"normal_x468h60": "/images/banners/4/582d79cb3aef567d64621be9/photo-1433354359170-23a4ae7338c6.jpg",
"normal_x120h600": "/images/banners/4/582d79cb3aef567d64621be9/photo-1452570053594-1b985d6ea890.jpg"
},
"name": "jghjghjghj",
"budget": "2000",
"plan": null,
"daily_budget": "232323",
"daily_budget_auto": "",
"href": "qls2.ir",
"targets": {
"cats": [
"fun",
"news"
],
"region": "inIran",
"iran_states": null,
"os": "all",
"gold_network": true,
"dont_show_between_1_n_8": true
},
"payment": {
"bank": "mellat",
"tax": "add"
},
"click_cost": "102000",
"status": null
}
Run Code Online (Sandbox Code Playgroud)
我想检查是否budget低于click_cost我在检查查询中的其他参数时:
db.bcamp.aggregate(
[
{
$match:{
$and: [
{"targets.cats":{
"$in" : ["all"]
}
},
{"banners.normal_x970h90":{
"$exists":true
}
}, …Run Code Online (Sandbox Code Playgroud) 不知道如何解决.任何帮助非常感谢.我看到了矢量化:不是一个有效的集合,但不确定我是否理解这一点
train = df1.iloc[:,[4,6]]
target =df1.iloc[:,[0]]
def train(classifier, X, y):
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=33)
classifier.fit(X_train, y_train)
print ("Accuracy: %s" % classifier.score(X_test, y_test))
return classifier
trial1 = Pipeline([
('vectorizer', TfidfVectorizer()),
('classifier', MultinomialNB()),
])
train(trial1, train, target)
Run Code Online (Sandbox Code Playgroud)
错误如下:
----> 6 train(trial1, train, target)
<ipython-input-140-ac0e8d32795e> in train(classifier, X, y)
1 def train(classifier, X, y):
----> 2 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=33)
3
4 classifier.fit(X_train, y_train)
5 print ("Accuracy: %s" % classifier.score(X_test, y_test)) …Run Code Online (Sandbox Code Playgroud) 当我在 Jenkinsfile 中加载另一个 groovy 文件时,它显示以下错误。
“缺少所需的上下文类 hudson.FilePath 也许您忘记用提供此内容的步骤包围代码,例如:节点”
我制作了一个包含函数的 groovy 文件,我想在我的声明性 Jenkinsfile 中调用它。但它显示一个错误。
My Jenkinsfile--->
def myfun = load 'testfun.groovy'
pipeline{
agent any
environment{
REPO_PATH='/home/manish/Desktop'
APP_NAME='test'
}
stages{
stage('calling function'){
steps{
script{
myfun('${REPO_PATH}','${APP_NAME}')
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
结果 -
org.jenkinsci.plugins.workflow.steps.MissingContextVariableException: 缺少必需的上下文类 hudson.FilePath 也许你忘了用提供这个的步骤来包围代码,例如:节点
建议我什么是正确的方法。
我创建了一个 Github 存储库,该存储库具有构建 npm 包并将其发布到 npmjs.com 的操作。我采取行动的触发因素是在 Github 中创建一个新版本。创建新版本时,Github 要求我提供版本号。我很想在 Action 中使用这个版本号并将其提供给 yarn publish 命令。
我的 ci 文件看起来像这样(我去掉了一些在这里不重要的部分):
name: Deploy npm package
on:
release:
types: [created]
jobs:
publish-npm:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- uses: actions/setup-node@v1
with:
node-version: 12
registry-url: https://registry.npmjs.org/
- run: yarn install
- run: yarn build
- run: yarn publish --new-version ${...}
env:a
NODE_AUTH_TOKEN: ${{secrets.npm_token}}
Run Code Online (Sandbox Code Playgroud)
是否有包含发布版本号的环境变量?
pipeline ×10
python ×3
scikit-learn ×3
jenkins ×2
asp.net-mvc ×1
bash ×1
collections ×1
comparison ×1
deployment ×1
document ×1
github ×1
groovy ×1
ienumerable ×1
mongodb ×1
pandas ×1
powershell ×1
razor ×1
return-value ×1
version ×1