我分别从sklearn的RandomForestClassifier和ROC_曲线AUC方法中获得不同的ROC-AUC分数
以下代码使我的ROC-AUC(即gs.best_score_)为0.878:
def train_model(mod = None, params = None, features = None,
outcome = ...outcomes array..., metric = 'roc_auc'):
gs = GridSearchCV(mod,
我有一个用于NER任务的分类器,由于'O'标签比所有其他标签都多,我想在度量计算中排除它
我想用sklearn软件包计算macro和micro分数。宏分数可以使用precision\u recall\u fscore\u support计算,因为它分别返回每个标签的precision、recall、F1和support
我可以使用sklearn软件包计算和micro分数吗?答案非常简单。函数的label参数确定要在分数计算中包括哪些标签。它还与宏,微平均值相结合
众所周知,当变量数(p)大于样本数(n)时,最小二乘估计量是不确定的
在sklearn中,我收到以下值:
In [30]: lm = LinearRegression().fit(xx,y_train)
In [31]: lm.coef_
Out[31]:
array([[ 0.20092363, -0.14378298, -0.33504391, ..., -0.40695124,
0.08619906, -0.08108713]])
In [32]: xx.shape
我试图用余弦距离得到KNN,但看起来度量参数不采用余弦距离。中只有以下指标可用。为什么呢
用于实值向量空间的度量:
标识符类名args距离函数
“欧几里德”欧几里德立场
平方米(总和((x-y)^2))
“曼哈顿”曼哈顿立场
总和(| x-y |)
“切比雪夫”切比雪夫距离
总和(最大值(x-y)
“minkowski”minkowski距离p和(| x-y | ^p)^(1/p)
“wminkowski”wminkowski距离p,w和(w*| x-y | ^p)^(1/p)
“seuclid
我计划在生产中使用sgdclassizer。其思想是在一些训练数据上训练分类器,使用cPickle将其转储到.pkl文件中,然后在脚本中重用它。然而,某些高基数字段本质上是分类的,并转化为一个热矩阵表示,可创建约5000个特征。现在,我为predict得到的输入只有其中一个特性,其余的都是零。当然,它还将包括除此之外的其他数字特征。从文档中可以看出,predict函数需要一个数组作为输入。是否有任何方法可以将输入转换为predict函数所期望的格式,而不必在每次训练模型时存储字段
更新
假设我的
我正在考虑为机器学习构建一台双CPU机器。我目前的装备中已经有一个快速GPU,但我的DDR3限制在32GB,我有一个i7-4790k,我计划升级到双E5 2683 v3
我需要的sklearn和网格搜索的CPU计算能力。Sklearn在2个cpu上的工作方式与在1个cpu上的工作方式相同吗?当n_jobs=-1时,它会使用两个CPU上的所有内核吗
在我的GPU上训练时,tensorflow是否只在一个CPU上工作?如果我只是在TF网站上复制并粘贴MNIST for experts教程,它会同时使
我从来没有使用过sklearn中存在的增量PCA,我对它的参数有点困惑,无法找到很好的解释
我看到构造函数中有batch\u size,但是,当使用partial\u fit方法时,您可以再次只传递一部分数据,我发现以下方法:
n = df.shape[0]
chunk_size = 100000
iterations = n//chunk_size
ipca = IncrementalPCA(n_components=40, batch_size=1000)
for i in range(
我训练了一个分类器,然后把它甩了又甩了它的矢量器。现在我想通过加载分类器和矢量器,用看不见的数据测试它。有人能帮忙吗?退房:
首先从文件中加载矢量器:
from sklearn.externals import joblib
vectorizer = joblib.load('your_vectorizer.pkl')
clf = joblib.load('your_classifier.pkl')
然后,它的工作原理与您将其转储到pickle文件之前相同。即:
vectorized_data
我有一个经过训练的DecisionTreeClassifier实例,我实际上对底层决策树本身的谓词感兴趣。因此我需要一种干净的方法来遍历这棵树
因为获得可遍历表示的唯一官方方法是使用scikit的export_graphviz函数导出到graphviz/dot文件。之后,我可以使用networkx和pydot的组合来解析和分析树的图形表示
但是
我的特定点文件的内容如下:
digraph Tree {
node [shape=box] ;
0 [label="X[0] <= 15.0\
我不熟悉聚类分析,正在使用Python sklearn.cluster模块分析我的数据。到目前为止我运气不好,所以我想请你推荐我。我的数据包括几个世纪内特定日期的事件计数(更具体地说,是教堂登记册中记录的洗礼、婚姻或葬礼的数量)。因此,我的数据实际上可以表示为一个简单的整数向量:[5,0,0,0,1,0,0,2,0,1…],其中表示每天,但事件计数可能为零。实际上,我想确定记录保存中可能存在的差距,我想我可以对事件进行聚类,然后查看聚类之间的差距。这并不像报告连续日期之间的间隔是否超过某个阈值那
在查找KMeans弯头时,它显示溢出错误
elbow=[]
for i in range(30):
model = KMeans(n_clusters=i)
model.fit(feature_matrix)
elbow.append(abs(model.score(feature_matrix)))
它给出了溢出错误这可能是因为您从大量集群开始i=0。
使用函数range,可以从0开始
Kmeans(nclusters=0)将失败,因为它将尝试计算log(0)
我正在尝试运行XGBClassifier参数调优,并在这行代码之后出现“name‘cross_validation’not defined”错误:
kfold\u 5=交叉验证.kfold(n=len(X),shuffle=True,n\u folds=numFolds)
可能我没有导入相应的库?首先,获取您的版本:
import sklearn
sklearn.__version__
scikit学习版本0.17之后,交叉验证.KFold已迁移到模型选择.KFold
如果您有0.17版本,
标签: Scikit Learn
mathematical-optimizationpyomononlinear-optimizationscipy-optimize
是否有人在模型上使用过任何优化模型
我想做的是根据列车数据拟合模型,并使用该模型尝试找到模型预测最大值的最佳参数组合
例如,简化代码:
import pandas as pd
df = pd.DataFrame({
'temperature': [10, 15, 30, 20, 25, 30],
'working_hours': [10, 12, 12, 10, 30, 15],
'sales': [4, 7, 6, 7.3, 10, 8]
})
from sklea
我试图使用cross\u val\u score()函数和嵌套交叉验证在python中实现一个简单的弹性网络回归,但它不允许我传递参数。它一直在为我的l1_比率声明一个无效参数的ValueError,我不明白为什么给定它在0和1之间
ValueError: Invalid parameter l1_ratio for estimator Pipeline(steps=[('preprocessor',
ColumnTransformer(remainder='p
SelfTrainingClassifier是0.24版的新版本(请参阅)
您可以使用import-sklearn查看当前版本;sklearn.show_versions()
您可以使用pip安装更新您的版本--升级scikit learn或conda安装-c conda forge scikit learn,具体取决于您以前版本的安装方式。欢迎使用SO。请花一分钟看看如何正确格式化代码和错误消息(这次为您完成)。此外,这是一个纯粹的scikit学习问题,与机器学习、深度学习或人工智能无关,敬请
我使用一个简单的决策树进行分类。数据集是一个不平衡的数据集,有30k行。
使用的软件包:sklearn
我使用predict_probab函数,然后绘制决策树。该模型有8片叶子(试过预修剪和后修剪)。50%的数据被分为7个叶,而剩下的50%则被分为一个叶。有没有一种方法可以瞄准这片叶子并将其进一步分支
我尝试的
我将50%的数据集分离出来,放在一片叶子中,并为其分别创建了一个规则。然而,我想知道这种方法是否有意义。如果是的话,我有没有办法把这些规则结合起来
谢谢
我在这里提供以下文档:
假设我已经有了一个术语频率矩阵,如X.toarray()中给出的,但我没有使用CountVectorizer来获得它
我想对该矩阵应用TfIDF。有没有一种方法可以让我使用一个计数数组+一个字典,并将这个函数的一些逆函数作为构造函数来得到一个fit_变换的X
我在找
>>> print(X.toarray())
[[0 1 1 1 0 0 1 0 1]
[0 2 0 1 0 1 1 0 1]
[1 0 0 1 1 0 1 1 1]
[0 1 1
我试图用sci工具包学习LDA分类器绘制决策边界
我知道您可以使用transform方法转换多变量数据,将数据投影到第一个组件行(两类情况)。如何获取充当分类轴的第一个组件上的值?这就是,作为决策边界的值
谢谢 LDA对$Cov_{between}/Cov_{within}$执行PCA或类似PCA的操作。分类枢轴只是$Cov_{between}/Cov_{inthein}$的前n-1个特征向量
特征矩阵存储在lda.scalings\中,因此第一个分量是lda.scalings\的第一个向量。它
在scikit learn中是否有处理不平衡班级的标准方法
sk learn的乐趣之一是有一个一致的界面
然而,当类是不平衡的(这似乎是一个非常常见的用例)时,情况并非如此:IMO one不想要分类,而是一个介于0和1之间的连续变量,这样您就可以计算auc_分数(或类似的东西)
因此,我可以在logistic和其他一些分类器上进行auc_评分(y,cf.predict_probas(X)),但我看不出为什么我不能对任何决策函数(如RidgeClassifier…等)进行基本相同的操作,即改变阈值
我正在运行GridSearchCV以找到GradientBoostingRegressionor的最佳参数
给出的教程是使用MSE进行评分
gs_cv = GridSearchCV(est, param_grid, scoring='mean_squared_error', n_jobs=4).fit(X_train, y_train)
是否可以使用其他自己定义的评分,如均方根对数误差(RMSLE)来获得最佳超参数
def rmsle(predicted, actual, size):
Python 3.4.3 v3.4.3:9b73f1c3e601,2015年2月23日,02:52:03
[GCC 4.2.1苹果公司在达尔文建造5666.3]
有关详细信息,请键入帮助、版权、信用证或许可证
import sklearn
sklearn.__version__
'0.16.1'
from sklearn.neighbors import NearestNeighbors
Traceback (most recent call last): File "<stdin&
我想提取决策树的详细信息,如阈值、基尼…您可以以格式导出决策树,并对其执行任何操作,没有人强迫您将其可视化:
iris.dot文件现在包含:
digraph Tree {
node [shape=box] ;
0 [label="X[3] <= 0.8\ngini = 0.6667\nsamples = 150\nvalue = [50, 50, 50]"] ;
1 [label="gini = 0.0\nsamples = 50\nvalue = [50, 0, 0]"] ;
0 -&
我正在尝试通过我编写的函数golub制作一个使用特征选择的分类器,golub根据SelectKBest的要求返回两个np数组。我想把它和一个支持向量机分类器联系起来,这个分类器使用线性和,并对k和C的可能组合进行优化。然而,我迄今为止所做的尝试没有成功,我不知道为什么。代码如下:
import numpy as np
from sklearn import cross_validation
from sklearn import svm
from sklearn.feature_sele
从获取代码后,我遇到了一个错误:
“ValueError:包含多个元素的数组的真值不明确。请使用a.any()或a.all()”
有什么问题吗。有人能帮我吗
下面是代码
导入选项
导入optunity.metrics
将numpy作为np导入
#k近邻
从sklearn.neighbors导入KNeighborsClassifier
#支持向量机分类器
从sklearn.svm导入SVC
#朴素贝叶斯
从sklearn.naive_bayes导入GaussianNB
#随机森林
从sklear
我有一个包含3个特性和3个类的数据框架,我将其分为X_-train、Y_-train、X_-test和Y_-test,然后使用PCA、StandardScaler和Logistic回归运行Sklearn的管道。我希望能够直接从LR权重和原始数据计算概率,而不使用预测概率,但不知道如何计算,因为我不确定管道X_测试是如何通过PCA和StandardScaler进入逻辑回归的。在不使用PCA和StandardScaler拟合方法的情况下,这是否现实?任何帮助都将不胜感激
到目前为止,我已经:
pca
我是scikit新手,需要学习如何基于多个连续数据列预测值。这里我有几个数据列,它们有如下连续的数据。(列名仅作为示例参考)
我需要做的是根据输入上述数据创建的模型预测可乐的价值。我只看到对预测值进行分类的例子。如果给出了ColB、ColC、ColD、ColE值中的任何/全部,如何获得实际值
有人能帮我了解一下如何使用scikit吗?首先,我将数据转换为csv文件,以便使用pandas。
csv是
示例:
import pandas as pd
from sklearn.linear_model
使用sklearn,我根据一些输入数据拟合了一个决策树
regr = DecisionTreeRegressor(max_depth=4)
regr.fit(X,Y1)
dot_data = tree.export_graphviz(regr_2, out_file=None,feature_names=legends,
filled=True, rounded=True, special_characters=True)
graph = graphviz.
我使用scikit learn LDA生成LDA模型,然后我可以得到主题术语。我想知道如何获得每个文档中每个主题的概率 在拟合模型后,使用LatentDirichletAllocation类的transform方法。它将返回文档主题分发
如果使用for scikit learn的潜在Dirichlet分配,则可以通过在代码后面附加以下行来访问文档主题分发:
doc_topic_dist = lda.transform(tf)
这里,lda是经过训练的lda模型,tf是文档词矩阵。在拟合模型后,
我很难理解RCF算法,尤其是它如何预期数据或应完成的预处理?例如,我有大约500K记录的以下数据/特征(带有示例值):
我的RCF模型的结果(针对57个特征(数量、30个国家和26个类别)的500K记录进行培训)非常关注数量特征(例如,所有异常都在1000.00左右,绝对不会因国家或类型而发生变化)
另外,我还规范化了amount字段,结果也不是很好。事实上,我可以放心地说,结果很糟糕,很明显,我在这方面遗漏了一些东西
总的来说,我正在寻找一些关于正确使用功能的指导(同样-1个金额字段和2个分
从我的dataframe x_train开始,我想谈谈“流派”专栏。有1000多种不同的类型,但当我使用函数multilabelbinarizer时,它只报告31列,并且查看类它们没有真正的意义,在帮助页面上,它建议不要使用列表,而是使用数组,正如我在示例中所做的,但仍然没有给我36158 x 1388矩阵。我错过了什么
x_train:
movie_id year synopsis genres
我一直在遵循下面这篇文章中关于多标签图像分类的教程:
然后我尝试应用本文中的步骤:
在第2篇文章的第3步中,作者写了以下内容
#安装多个LabelBinarizer
mlb = MultiLabelBinarizer()
mlb.fit(df['tags'].values.tolist())
# The helper function
def multilabel_flow_from_dataframe(data_generator, mlb):
for x, y in data_g
我目前正在使用scikit learn的软件包
我注意到我可以选择几种不同的方式返回分类结果。返回分类的一种方法是使用predict_log_proba方法
为什么我会选择使用predict\u log\u proba与predict\u proba与predict?
predict只为您提供每个示例的课程
predict\u proba给出每个类的概率,而predict只取概率最大的类
predict\u log\u probability提供概率的对数,这通常更方便,因为概率可能变得非常非常
python的scikit learn是否有任何能够很好地处理稀疏数据的回归模型
我四处摸索,发现了“稀疏线性回归”模块,但它似乎过时了。(我认为,scikit learn非常古老,当时被称为“scikits-learn”。大多数scikit学习回归模型(线性,如Ridge,Lasso,ElasticNet或非线性,如使用随机森林回归器)支持密集和稀疏输入数据scikit学习的最新版本(0.16.0是撰写本文时最新的稳定版本)
编辑:如果不确定,请检查感兴趣类别的fit方法的文档字符串
我试图得到需要用于分类的组件数量。我已经阅读了一个类似的问题和scikit文件:
然而,这仍然没有解决我的问题。我所有的PCA组件都非常大,当然我可以选择所有组件,但如果我这样做,PCA将毫无用处
我还阅读了scikit learn中的PCA库
它表明L:
如果n_components=='mle',则使用Minka的mle
猜测尺寸如果0
我只是试着做一个简单的线性回归,但我对这个错误感到困惑:
regr = LinearRegression()
regr.fit(df2.iloc[1:1000, 5].values, df2.iloc[1:1000, 2].values)
产生:
ValueError: Found arrays with inconsistent numbers of samples: [ 1 999]
这些选择必须具有相同的维度,并且它们应该是numpy数组,那么我缺少什么呢 看起来sklearn需要的
我有一个目标字符串,比如说target='apple',我有一个候选字符串列表,比如说candidate\u list=['orange'、'banana'、'apple1'、'菠萝']。我正在计算目标之间的余弦相似性,并使用以下代码迭代候选列表中的每个字符串
def calculate_cosine(c, h):
vec = CountVectorizer()
label_dictionary = vec.fit([c, h])
c_vector = label_dictio
我正在使用NLTK测试情绪分析模型。我需要在分类器结果中添加混淆矩阵,如果可能,还需要精度、召回率和F-度量值。到目前为止我只知道准确度。影评数据有pos和neg标签。然而,为了训练分类器,我使用的“featuresets”的格式与通常的(句子、标签)结构不同。在通过“featuresets”训练分类器后,我不确定是否可以使用sklearn中的混淆矩阵
首先,您可以对所有测试值进行分类,并将预测结果和黄金结果存储在列表中
然后,您可以使用nltk.ConfusionMatrix
test_res
我想知道在最新版本的scikit学习包中是否有平衡随机林(BRF)的实现。BRF用于数据不平衡的情况。它与普通RF一样工作,但对于每个自举迭代,它通过欠采样来平衡患病率等级。例如,给定两个类N0=100,N1=30个实例,在每次随机抽样时,它从第一个类中抽取(替换)30个实例,从第二个类中抽取相同数量的实例,即在平衡数据集上训练一棵树。了解更多信息
RandomForestClassifier()确实有“class_weight=”参数,该参数可能被设置为“balanced”,但我不确定它是否与
我有一些数据,还有这些数据点的成对距离矩阵。我想使用凝聚聚类对它们进行聚类。我读到,在sklearn中,我们可以将“预计算”作为亲和性,我希望它是距离矩阵。但我找不到任何使用预先计算的亲和力和自定义距离矩阵的示例。
任何帮助都将不胜感激 让我们调用距离矩阵D
agg = AgglomerativeClustering(n_clusters=5, affinity='precomputed', linkage = 'average')
agg.fit_predict(D) # Returns c
如何计算上述代码中的特异性。该代码计算精度和召回率。回忆也称为敏感性。建立一个计算特异性的函数,然后将其作为可调用的评分传递。如何做到这一点?有内置的功能吗
scoring=['recall', 'precision']
print("-----------------------------------------LR-------------------------
--------")
clf = LogisticRegression()
scores = cross_validate(
我正在用nltk和sklearn构建一个文本分类模型,并在sklearn的20个新闻组数据集中对其进行训练(每个文档大约有130个单词)
我的预处理包括删除停止字和柠檬化标记
接下来,在我的管道中,我将其传递给tfidfVectorizer(),并希望操纵矢量器的一些输入参数以提高精度。我读到过n-grams(通常,n小于提高了精度,但当我使用tfidf中的ngram_range=(1,2)和ngram_range=(1,3)使用multinomialNB()分类器对矢量器输出进行分类时,精度会
我试图在sklearn中使用validation_曲线函数
train_scores, test_scores = validation_curve(DecisionTreeClassifier(), X_train, y_train,
param_name="max_depth",
scoring="f1",
param_range=list(range(5,15,2)),
cv=5)
是否有一种方法可以传递
我使用逻辑回归算法和TF-IDF矢量器训练了“消费者投诉分类”的NLP模型。我想知道我的模型与特定类关联的单词。我在找这样的东西-
类1=[“帮助我的模型识别输入文本属于该类的单词列表”我想你需要的是与一个类相关的最重要的单词(或更好的标记)。因为通常所有标记都会以某种方式与所有类“关联”。因此,我将用以下方法回答您的问题:
假设由TfidfVectorizer生成的令牌(或单词)存储在X\u列中,标签位于y\u列中,您训练的模型如下:
from sklearn.linear_model imp
我在xgboost上使用RandomizedSearchCV,并在IMBRearn管道中提前停止。如果使用RandomizedSearchCV运行代码,则会收到以下错误:
File "/anaconda3/lib/python3.6/site-packages/xgboost/core.py", line 2131, in _validate_features
data.feature_names))
ValueError: feature_names mismatc
嗨,我需要检索哪些文档(文档id)使用sklearn在潜在Dirichlet分配中生成了每个主题
我正在使用数据库来存储语料库
例如,我有表格语料库:
语料库=(文档id,文本)
我在语料库上运行LDA
我需要检索:
专题1
由doc_id=(ID3、ID9、ID12等)生成
专题2
由doc_id=(ID2、ID9、ID66等)生成
主题K
由文档id(d1,d2,…)生成
我可以这样做吗?一旦LDA获取语料库并将其放入弓中,文档id丢失,我只能检索文档的序列号,而不是数据库中的文档id
我能
我想得到准确度、平均准确度、F1、准确度、召回率和roc auc分数
我确实意识到,使用下面的代码,我会得到平均精度,问题是运行此代码时,显示结果大约需要20分钟,是否有更好的方法可以在更短的时间内获得上面的所有分数
clf\u svm\u 2\u scores\u avg\u precision=cross\u val\u scores(clf\u svm\u 2,np.array(x),data['link',cv=5,score='average\u precision')交叉验证通常很长
我试图使用Sklearn中的BaggingClassifier来定义多个基估计量。根据我的理解,有些东西可能与此类似
clf = BaggingClassifier(base_estimator=[SVC(), DecisionTreeClassifier()], n_estimators=3, random_state=0)
但是这里的BaggingClassifier并没有将列表作为它的基本估计量。
我假设我可以切换到StackingRegressor(estimators=)手动定义多个
据我所知,多标签问题可以通过一对所有方案来解决,对于该方案,Scikit learn实现了OneVsRestClassifier作为分类器上的包装器,如svm.SVC。我想知道如果我真的训练会有什么不同,比如说我们有一个多标签问题,有n个类,每个标签有n个单独的二进制分类器,然后分别对它们进行评估
我知道这就像是一种“手动”实现一对一的方式,而不是使用包装器,但是这两种方式实际上是不同的吗?如果是,它们有什么不同,比如在执行时间或分类器的性能方面 没有区别。对于多标签分类,sklearn one
我试图从sklearn训练一个随机森林回归者。我想训练的功能有不同的类型,数字连续、数字分类、文本分类(姓名/国籍)、纬度和经度
我想知道的是,给定所有的特性,如何确定最有用的特性集来训练我的随机森林回归器?首先,在数据上运行随机森林模型
rf= RandomForestRegressor()
rf.fit(train_data,train_labels)
然后使用特征重要性属性了解特征的重要性,从中可以过滤出特征
print(rf.feature_importances_)
然后再次在选定
我有X和Y数据
from sklearn.feature_selection import RFECV
from sklearn.metrics import accuracy_score
from sklearn.model_selection import cross_val_predict, KFold
from sklearn.preprocessing import StandardScaler
from sklearn.ensemble import RandomForestClas
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 36 页