是否可以在scikit learn中调整嵌套管道的参数?例如:
svm = Pipeline([
('chi2', SelectKBest(chi2)),
('cls', LinearSVC(class_weight='auto'))
])
classifier = Pipeline([
('vectorizer', TfIdfVectorizer()),
('ova_svm', OneVsRestClassifier(svm))
})
parameters
我正在使用sklearn和skmultilearn对多标签进行一些研究
我只是想知道为什么汉明损失不能用于交叉评分,因为它确实可以单独使用。在中,规定:
评分:字符串,可调用或无,可选,默认值:无
字符串(请参阅模型评估文档)或记分器可调用对象/
带签名记分器的函数(估计量,X,y)
可用于此操作的字符串为。这里显示的这些字符串使用
hamming\u loss不在这些字符串中,但我们可以在其上使用make\u scorer来定义我们的评分函数对象,然后可以在cross\u val\u scor
我正在使用scikit学习中的NMF(也称为NNMF)对自然语言数据执行主题提取。我试图优化集群的数量(aka组件)。为了做到这一点,我需要计算重建误差。然而,使用scikit learn,我只看到了在训练集上计算此度量的方法。但我对获取测试集的这些指标感兴趣。有什么建议吗?在外部数据上模仿sklearn的机制很容易
使用函数\u beta\u散度(X,W,H,self.beta\u损失,平方根=真)计算此误差度量值。
有关如何获得W,H的事实,请参见
假设我们得到了sklearn>=0.19(
我很难使用scikit learn在Keras中实现网格搜索。基于,我编写了以下代码:
来自keras.wrappers.scikit\u了解导入KerasClassifier
从sklearn.model_选择导入GridSearchCV
def create_model():
模型=顺序()
添加(稠密(100,输入_形状=(max_len,len(字母表)),内核_正则化器=正则化器.l2(0.001)))
模型。添加(辍学率(0.85))
添加(LSTM(100,输入_形=(100,))
我用sklearn计算随机森林的学习曲线。我需要为很多不同的RFs做这件事,因此我想使用集群和Dask来减少RFs匹配的时间
目前我实现了以下算法:
from sklearn.externals import joblib
from dask.distributed import Client, LocalCluster
worker_kwargs = dict(memory_limit="2GB", ncores=4)
cluster = LocalCluster(n_workers=4,
我最近在绝对相关系数值的矩阵上执行了K-均值双聚类。然而,双聚类算法要求将双聚类数(k)定义为输入。有没有什么好的方法来确定最佳的双聚类数(k)
我以前知道很多人使用剪影分数来估计最佳的聚类数,但我只听说人们在执行层次聚类时使用了它。轮廓分数也可以应用于双集群吗?有没有其他方法来定义最佳的双聚类数?是否可以使用均方剩余分数
双聚类算法沿对角线生成双聚类,这样一行或一列永远不会属于多个双聚类
在上面的示例中,分别为训练语料库和测试语料库生成tfidf。它不应该一起生成吗?因为单独处理列车和测试时的idf与一起处理时的idf不同?谢谢
# Vectorize the training data
X_train = vectorizer.fit_transform(train_corpus)
# Vectorize the testing data
X_test = vectorizer.transform(test_corpus)
您不能使用测试来创建TF-IDF模型,因为您不允许
标签: Scikit Learn
classificationmultilabel-classificationscikit-multilearn
我想用二进制相关方法进行多标签分类,这需要一个基估计量。我想尝试几种不同的估计器,例如SGD、SVC、决策树等,每种估计器都有合适的参数。
我想也许我应该以某种方式结合管道和/或网格搜索,但我无法找到答案
大概是这样的:
paramgrid = [{
'estimator':[SVC()],
'estimator__C': [1, 10, 100, 1000],
'estimator__gamma': [0.001, 0.0001]
},
{
'e
我试图在sklearn中精简SVM模型的SVC分类器。我已经学会在各种数据集上使用它,甚至应用gridsearch来改进结果,但我还不了解一些参数,如C,gamma
如果有人能对每个参数给出简单而详细的解释,那就太好了。因为我们试图最小化一些目标函数,我们可以在函数中添加一些系数向量本身的“大小”度量。C本质上是“正则化”项上权重的倒数。减少C将通过强制系数稀疏或小(取决于惩罚)来防止过度拟合。增加C太多会促进不适
Gamma是RBF核的一个参数。增加gamma允许更复杂的决策边界(这可能导致过
我从一个数据集中生成了模型,并试图根据cohen_kappa分数和预测精度找到最佳算法。我针对各种算法运行它,因为我将获得的数据类型未知,所以通过比较它们的kappa和精度来找到最佳算法。
我的数据经过10次交叉验证
我对随机森林、决策树、SGDClassizer、感知器、被动攻击、逻辑回归、梯度推进、朴素贝叶斯、KNeighbors进行了比较
在我的例子中,我得到了Random Forest作为分类的最佳算法,Kappa=1,精度=0.94
我的分类为2级分类,条件如响应时间>200
现在,当
scikit学习有两个逻辑回归函数:
sklearn.linear_模型.逻辑回归
sklearn.linear_model.LogisticRegressionCV
我只是好奇第二份简历代表什么。在ML中,我所知道的唯一与“CV”匹配的首字母缩略词是交叉验证,但我猜不是这样,因为这将通过包装函数在scikit learn中实现,而不是作为逻辑回归函数本身的一部分(我认为)。您猜对了,后者允许用户执行交叉验证。用户可以将折叠数作为函数的参数cv传递,以执行k折叠交叉验证(默认值为10倍,带S
对于PCA荷载,通过以下公式计算:
loadings = pca.components_.T * np.sqrt(pca.explained_variance_)
对于ICA,没有.explained\u variance\u数组,所以它只是?:
ica.components_[]
这是我的数据。我知道第一列是因变量,其余列是自变量
我该怎么分呢?我不确定我应该通过哪个论点。如果你试图预测你的因变量,那就是你的“y”。自变量是你的“X”
如果是这样的话:
from sklearn.model_selection import train_test_split
Data1 = pd.read_csv(r"C:\Users\Zihao\Desktop\New\OBSTET.csv", index_col = 0)
Data1.fillna(0, inplace = Tru
我从中了解到的是,如果max_feature=n;这意味着它正在根据Tf Idf值选择top n特征。我在scikit learn上浏览了TfidfVectorizer的文档,但没有正确理解它 如果需要具有最高tfidf值的行字,则需要从矢量器访问转换后的tf idf矩阵,逐行逐文档访问它,然后对值进行排序以获得这些值
大概是这样的:
# TfidfVectorizer will by default output a sparse matrix
tfidf_data = tfidf_vecto
我想知道如何使用Amazon Sagemaker自动调整我的scikit learn随机森林模型。现在,我想调整一个名为“max_depth”的超参数。我将首先转储代码,然后表达一些担忧
文件:notebook.ipynb
estimator = sagemaker.estimator.Estimator(image, role,
train_instance_count=1,
train_instance_type='ml.m4.xlar
我想首先在测试和训练集中分割数据。然后我想在我的训练集上使用GridSearchCV(内部分为训练集/验证集)。最后,我想收集所有测试数据并做一些其他事情(不在问题的范围内)
我必须调整我的数据。所以我想在管道中处理这个问题。我的SVC中的一些东西应该是FICE的(kernel='rbf',class_weight=…)。
当我运行代码时,会出现以下情况:
“ValueError:估计器管道的参数估计器无效”
我不明白我做错了什么。我试着按照这个思路:
唯一的区别是,我在SVC中修复了一些参数。
我正在尝试使用scikit learn和python构建一个隔离林来检测异常。我附上了一张数据的图像,我试图根据几个“大小”特征预测“页面”。
当我打印(异常)时,每一行都被检测为-1,异常。这是因为我只使用“size2”对它们进行分类吗?是否有一种方法可以使用多个列来帮助检测异常?我应该使n_特性等于我使用的列数吗?非常感谢你的帮助
model = IsolationForest(n_estimators = 100, max_samples = 'auto', contamination =
我使用MLPClassizer已经有一段时间了,我想我对函数一直在做什么有一个错误的解释,我想我现在就知道了,但我不确定这一点。因此,我将总结我的理解,如果您能在正确的理解上添加您的想法,那将是非常棒的
因此,使用MLP分类器,我们正在基于训练数据集构建一个神经网络。设置early\u stopping=True可以在培训过程中使用验证数据集,以检查网络是否也在处理新的数据集。如果early\u stopping=False,则流程内不会进行验证。在一个数据集构建完成后,如果愿意,我们可以使用拟
我试图使用稀疏矩阵计算轮廓分数或轮廓样本,但得到以下错误:
ValueError:diag需要至少两个维度的数组
示例代码如下所示:
edges = [
(1, 2, 0.9),
(1, 3, 0.7),
(1, 4, 0.1),
(1, 5, 0),
(1, 6, 0),
(2, 3, 0.8),
(2, 4, 0.2),
(2, 5, 0),
(2, 6, 0.3),
(3, 4, 0.3),
(3, 5, 0.2),
(3, 6, 0.25),
(4, 5, 0.8),
(4, 6, 0.
如何通过sklearn模型的预测函数来保存数据集的索引
我在Jupyter笔记本中使用了这段代码,但是输出文件没有在X_prod中保留原始索引
clf_Naive = joblib.load('Name.pkl')
predNaive = clf_Naive.predict(X_prod)
predNaiveProba = clf_Naive.predict_proba(X_prod)
pred = pd.DataFrame(data=predNaive)
pred.to_csv('Pred_N
我了解到,当您运行支持向量机时,您应该将数据集中,并将组件标准化为单位方差。然而,我的原始数据非常稀疏,以这种方式对数据进行预处理会使数据变得密集。这似乎使我的模型火车非常慢。如果您使用的是现成的SVM实现,您将如何处理这个问题?没有必要以这种方式进行扩展。您可以只缩放,不居中,或者只除以绝对最大值,使数据在-1和1的范围内。每个实例的SVM代码中动态复制预处理数据的可能性,这样您就可以通过少量执行保持内存公平。您还可以考虑使用其他模型,如RandomForests。
我将跟随scikit learn LDA示例,并试图了解如何(如果可能的话)显示有多少文档被标记为具有这些主题中的每一个。我一直在仔细阅读LDA模型的文档,但不知道从哪里可以得到这个号码。以前是否有人能够使用scikit learn做到这一点?LDA计算每个文档的主题概率列表,因此您可能希望将文档主题解释为该文档概率最高的主题
如果dtm是您的文档术语矩阵,而lda是您的潜在Dirichlet分配对象,则可以使用transform()函数和pandas探索主题混合:
docsVStopics=l
尝试安装scikit时,请使用以下命令学习:
python -m pip install sckit-learn
它抛出一个错误,如下所示:
找不到满足安装要求的版本(来自版本:)
未找到要安装的匹配分发版
但是,在site\u软件包文件夹install.py中存在。
如何删除此问题?您的命令中有一个输入错误。应该说是学习。您已经了解了sckit。在我的例子中,通过代理配置pip也有点乏味。
这里有一个替代方案
在apt配置文件中使用设置代理后,使用Ubuntu包管理器
我知道这是一个老帖子,
根据sklearn.neights.KDTree,我们可以使用pickle将KDTree对象转储到磁盘。
然而,无论是卸载还是装载,以及存储消耗,它都非常缓慢
是否可以将其转储为hdf5格式 您可以使用\uuu getstate\uu和\uu getstate\uu。大多数内部量为数组或标量类型,因此适用于hdf5。
还有一点工作要做,因为\uuu getstate\uuu返回的最后一个术语是一个函数,我们可以将它转换为字符串,使用pickle.dumps进行hdf5存储
如果您觉得这很有趣,您
我正在学习Python,我有一个问题。我构建了一个分类器(名为build.py),如下所示:
file = 'file path/CVdb.csv'
input = pd.DataFrame.from_csv(file,index_col=None,encoding='ISO-8859-
1',sep=',')
text = input.drop_duplicates()
corpus = text.Text.str.replace(r'[^A-Za-z0-9+#,]+',' ')
catego
我有一个不包含异常值的训练数据集:
train_vectors.shape
(588649, 896)
我还有另外一组测试向量(test\u vectors),它们都是异常值
以下是我尝试执行异常值检测的步骤:
from sklearn.ensemble import IsolationForest
clf = IsolationForest(max_samples=0.01)
clf.fit(train_vectors)
y_pred_train = clf.predict(train_ve
我一直在使用Keras框架和4个NVIDIA GPU来训练NN模型。(数据行数:~160000,列数:5)。现在我想使用GridSearchCV优化它的参数
然而,每当我试图将n_作业更改为一个以外的值时,我都会遇到几个不同的错误。错误,例如
CUDA OUT OF MEMORY
Can not get device properties error code : 3
然后我看了这个网页,,
#如果您不使用GPU,可以将n#U作业设置为1以外的值
所以不可能将多个GPU与GridSearch
我正在尝试生成一个模型,该模型使用一个分子的几个物理化学性质(包括原子数、环数、体积等)来预测数值Y。我想使用PLS回归,我知道标准化在这里非常重要。我正在用Python编程,使用scikit学习。功能的类型和范围各不相同。一些是int64,而另一些是浮动的。某些特征通常具有较小的值(正值或负值),而其他特征的值非常大。我尝试过使用各种定标器(例如标准定标器、规格化、最小-最大定标器等)。然而,R2/Q2仍然很低。我有几个问题:
是否有可能通过缩放,一些非常重要的特征失去其重要性,从而对解释响应
比较Scikit learn和Spark ML的决策树模型。以下两个模型非常匹配。我无法映射的是值
Spark MLDecisionTree数据的架构:
root
|-- id: integer (nullable = true)
|-- prediction: double (nullable = true)
|-- impurity: double (nullable = true)
|-- impurityStats: array (nullable = true)
| |
我试图了解交叉验证和评分的工作原理,并观察到一些奇怪的行为
我实例化一个分类器,然后对它进行4次交叉验证,得到4个分数,准确率在90%+-0.5%之间
然后,我在所有训练数据上重新装配模型,并在测试数据上打分。我也在这段代码中对训练数据打分,只是为了证明一点
我在将数据拆分为测试集和训练集后运行此代码
从sklearn.employ导入GradientBoostingClassifier
从sklearn.metrics导入make_scorer,平衡_准确性_分数
gbc=GradientBo
我正在使用sklearn的线性SVC模型进行文本分类。现在,我想通过使用SHAP()可视化哪些单词/标记对分类决策的影响最大
现在这不起作用,因为我得到了一个错误,它似乎起源于我定义的管道中的矢量器步骤-这里出了什么问题
在这种情况下,我关于如何使用SHAP的一般方法正确吗
x_Train, x_Test, y_Train, y_Test = train_test_split(df_all['PDFText'], df_all['class'], test_size = 0.2, random_
我正在训练一系列维度上的多项式回归,并尝试使用predict()作为输入列表
inputs = np.linspace(0,10,100).reshape(-1,1)
for i, deg in enumerate([1, 3, 6, 9]):
poly = PolynomialFeatures(degree=deg)
X_poly = poly.fit_transform(X_train.reshape(-1,1))
linreg = Line
下面的代码用于音频文件分割
from pyAudioAnalysis import audioSegmentation as aS
[flagsInd, classesAll, acc, CM] = aS.mtFileClassification("diarizationExample.wav", "svmSM", "svm", True, 'dar.segments.txt')
它给了我这样的警告:
C:\Users\Kenzhegaliyev_EK\AppData\Local\Contin
我正试图用pytorch建立一个神经网络。我正在使用规范化我的数据集。但是,如何规范化需要根据数据集的mix max值预测的新传入记录
scaler=MinMaxScaler()
scaler.fit\u转换(文件\ux[特征列表\u到\u规范化])
要使用,首先需要将缩放器调整到训练数据的值。这是使用以下方法完成的(正如您已经做的)
scaler.fit\u变换(文件\ux[特征列表\u到\u规范化])
在此之后,fit您的缩放对象scaler将根据训练数据调整其内部参数(例如,min,sc
我定义了一个球树对象列表,如下所示,input1是一个带有形状(100320)的NumPy数组
我将input1的一个元素作为一个示例查询,其中sample\u index被假定在范围内
sample_query = input1[sample_index,:]
# Find nearest neighbour and compute distance and index
distance, index = bt[0].query(sample_query,1)
这里,distance[0]
scikit learn中的混合模型代码适用于单个数据点的列表,但是如果您有一个直方图呢?也就是说,我对每个体素都有一个密度值,我想让混合模型来近似它。这可能吗?我认为一种解决方案是从这个直方图中采样值,但这不是必需的。Scikit learn有大量的内核密度估计实用程序和算法,它专门围绕着从直方图之类的东西推断分布。有关一些示例,请参阅文档。如果您对数据的分布没有期望,KDE可能是一种更通用的方法。对于2D直方图Z,您可以使用2D体素数组
将numpy作为np导入
创建坐标值
十、 Y=np.
我已经通读了scikit学习文档,在谷歌上搜索也没用。我有2000个数据集,如图所示。如图所示,一些簇是错误的,这里是红色簇。我需要一个度量方法来验证所有2000个集群集。scikit learn中的几乎每一个指标都需要基本真相类标签,我认为我没有或可以有这样的标签。我有30天的每小时交通流量,我使用k-means对它们进行聚类。这些线是集群中心。我该怎么办?我走对了吗?!横轴是小时,0到23,纵轴是交通流,因此数据点表示30天内该小时的交通流,k=3
您是否查看了凝聚聚类,然后是改变度量的小节
我正在传递两个字符串,例如:$1-2$$3-4$5-6$&$7-8$$9-10$$10-11$
在这种情况下,count_vocab函数抛出错误:
empty vocabulary: perhaps the document contains only stop words"
那么$symbol有问题吗
不考虑$1-2 $作为令牌吗?< /P> < P>令牌的定义由构造函数: toknyType < /Cord>参数(正则表达式)确定:
Regular expression denoting
我正在研究卡格尔的一个知识问题,它的标签是正数。我试着在scikit中使用SGDRegressor来学习训练和测试模型。然而,从所学模型得出的一些预测是否定的
因此,我想知道是否有一种方法可以限制像SGD(在scikit learn中)这样的回归器的预测只有正值。我知道在我得到预测后使用蛮力技术来限制值,但我不喜欢采用这种方法,因为它不能代表真实的模型。你可能想适应z=np.log(y)而不是y:model=SGDRegressor(**params).fit(X_train,np.log(y_
以下链接中的功能是什么。我想真正了解这个算法是如何工作的。请告知:
我的猜测是,这是第一个参数,因为第一个参数是内核的带宽
编辑:K实际上是一个扁平(统一)内核。不同内核类型的良好图表位于,可能是这样,但文档中称内核是扁平的。这会改变什么吗?你是对的,他们使用的是扁平(统一)内核。
使用sklearn.feature\u extraction.text.tfidf矢量器
我想用一包单词tf idf数据来训练分类器
我有一个大的未标记语料库和一个小的标记语料库
我计划使用标记的语料库构建一个基于tf idf模型的单词包的分类器。
然而,我更喜欢使用完整的语料库(包括未标记的数据)来计算idf统计数据
在使用sklearn时,这可能吗
我想到的一个解决方案是建立所有语料库的模型,然后删除属于未标记数据的行。但是,语料库可能太大,无法存储在ram中。如果我理解正确的话。您可以将T
我连续使用射频两次
首先,我使用max\u features='auto'和整个数据集(109 feature)对其进行拟合,以便执行特征选择。
以下是RandomForestClassifier.feature\u importances\u,它正确地为每个feature给了我109分:
[0.00118087, 0.01268531, 0.0017589 , 0.01614814, 0.01105567,
0.0146838 , 0.0187875 , 0.0190427 ,
我正在努力做到以下几点:
vc = VotingClassifier(estimators=[('gbc',GradientBoostingClassifier()),
('rf',RandomForestClassifier()),('svc',SVC(probability=True))],
voting='soft',n_jobs=-1)
params = {'weights':[[1,2,3],
我有一个包含两列的数据,其中一列分类显示特征的状态,另一列数字显示相关值。如下图所示:
我想通过scikit运行一个决策树算法来学习这些数据。我不确定如何处理这两个列,因为从概念上讲,我不知道如何将这些非常相关的特性结合起来。基本上,我们不应该留下空数据,然而,这个数据本质上应该在数字列中为空。如果我们把它设为“0”,它有另一个含义
那么,我应该如何预处理这些数据以使决策树算法正常工作?我的prefossor提供了一个合理的答案,如下所示
首先,用“0”填充空单元格。
如果您将数据插入具有这两
我尝试使用GridSearchCV,以便为分类器提供最佳参数。我使用的是单类SVM,我的代码是:
tuned_parameters = [{'kernel': ['rbf'], 'gamma': [1e-2, 1e-3, 1e-4, 1e-5],
'nu': [0.001, 0.10, 0.1, 10, 25, 50, 100, 1000]},
{'kernel': ['linear'], 'nu': [0.001, 0.10,
我正在训练一个随机分类器(sklearn)来预测信用卡欺诈。然后,当我测试模型并检查rocauc分数时,当我使用roc\u auc\u分数和plot\u roc\u曲线时,我会得到不同的值。roc_auc_分数为0.89左右,曲线图计算auc为0.96,为什么
标签都是0和1,预测也是0或1。
代码:
代码的输出(roc_auc_分数正好在图形上方)
您将预测类而不是预测概率提供给
roc\u auc\u得分
发件人:
y\u得分:形状数组(n\u样本)或(n\u样本,n\u类)
目标分数。在二
标签: Scikit Learn
groupingrandom-forestcross-validationk-fold
我使用GroupKFold优化了RandomForest(以防止数据泄漏,因为有些行来自同一个组)
我得到了一个最适合的模型,但是当我对测试数据进行预测时,它说它需要组特性
这有意义吗?奇怪的是,群组功能也是最重要的功能之一
我只是想知道我是不是做错了什么
感谢您在scikit learn Github repo或“group_feature”或任何类似内容上进行搜索,因此我将继续并假设您的数据集中有一个名为“group”的特性,预测模型需要该特性作为输入以生成输出
请记住,预测模型基本上是一个
全部,
我的数据中有np.nans和np.inf。我想用0替换这些,但是当我执行以下操作时,会出现以下错误:
imputer = SimpleImputer(missing_values=np.nan, strategy='constant', fill_value=0)
features_to_impute = data_fe.columns.tolist()
data_fe[features_to_impute] = pd.DataFrame(imputer.fit_transform(d
根据随机搜索CV(重点矿山):
参数分布:dict或dict列表
以参数名称(str)作为键和分布的字典或
要尝试的参数列表。分发必须提供rvs方法
用于采样(例如来自scipy.stats.distributions的采样)。如果有一份清单
在给定的条件下,对其进行均匀采样如果给出了DICT列表,则首先
对dict进行均匀采样,然后使用
这句话如上所述。
如果我对上述内容的理解是正确的,则以下示例中的两种算法(XGBClassifier和LogisticRegression)都应以高概率(>9
我有如下数据:
20003.0, 20003.1, 20004.0, 20004.1, 34
1, 2, 3, 4, 5
其中以*结尾的列是多选项,它们采用的值是分类的
理想情况下,我将能够将[{'20003':['1','2','20004':['3','4'],'34':5}]传递给DictVectorizer,但这还不受支持
如何加载此数据以创建稀疏特征向量?如果可以对相同列组的值进行汇总:
In [63]: df
Out[63]:
20003.0 20003.1 20004.
上一页 1 2 ...
7 8 9 10 11 12 13 ...
下一页 最后一页 共 40 页