我正在使用LogisticReturnal分类器对文档进行分类。结果良好(宏观平均f1=0.94)。我对预测结果(predict_proba)应用一个额外的步骤来检查分类是否足够“自信”(例如,第一类>0.5自信度,第二类>0.2自信度距离等)。否则,该样本将被丢弃为“未知”
对我来说最重要的分数是,尽管有这一额外步骤,但分配给错误类的样本数量。不幸的是,这个分数太高了(~0.03)。在许多情况下,分类器非常有信心(0.8-0.9999!)选择了正确的类
到目前为止,改变参数(C、class_权
我正在终端中执行pylint,以稍微清理一下python脚本。在我的脚本中,我还使用RandomizedSearchCV。我该怎么做才能使pylint的结果不显示随机搜索CV结果的不同组合?或者如何抑制RandomizedSearchCV的输出
下面是我的.py脚本中导致此问题的代码片段,以及我在终端中执行时看到的开始/结束的屏幕截图
LOGGER.info("Fine tune model and fit it (Model 2)")
# with warnings.catch_warning
我的sklearn版本是0.14.1,在linux Debian GNU/linux 7.1上使用python 2.7
电话:
clf = RandomForestClassifier(min_samples_split = 10, n_estimators = 50 , n_jobs = 1) is ok
打电话时:
clf = RandomForestClassifier(min_samples_split = 10, n_estimators = 50 , n_jobs = 5)
clf
我知道可以通过将probability=True选项传递到构造函数中,让svm预测概率来评估sklearn.svm.SVC的AUC,但我不确定如何评估sklearn.svm.LinearSVC的AUC。有人知道怎么做吗
我想使用LinearSVC而不是SVC,因为LinearSVC似乎可以更快地训练具有许多属性的数据。看起来这是不可能的。
您可以使用CalibredClassifiedRCV类来提取概率。这是一个例子
from sklearn.svm import LinearSVC
from
我刚做了个实验。我只提供了两个培训案例[0,1]和[1,0]。它们属于两个不同的类别。测试用例是[0,0],它位于决策边界上。分类器将其分配给类0。是否因为0类是第一类?这真的有意义吗
>>> X=numpy.array([[0,1],[1,0]])
>>> y=numpy.array([0,1])
>>> clf.fit_transform(X,y)
array([[0, 1],
[1, 0]])
>>>
我正在使用sklearn将一些n维数据可视化为2D。现在我想可视化显示数据变化主轴的主成分(向量),如中所示。有人知道怎么做吗?
我需要的是这两条线的斜率和方向
from sklearn.decomposition import PCA
pca = PCA(n_components=2)
pca.fit(X)
#now what are the two slopes?
你可以看看@Nickil:谢谢,问题解决了。
首先让我澄清一下,这里的“稀疏PCA”是指具有L1惩罚和稀疏加载的PCA,而不是稀疏矩阵上的PCA
我读过邹和黑斯蒂关于稀疏PCA的论文,我读过关于sklearn.decomposition.SparsePCA的文档,我知道如何使用PCA,但我似乎无法从SparsePCA得到正确的结果
也就是说,当L1惩罚为0时,SparsePCA的结果应该与PCA一致,但负载差异很大。为了确保我没有弄乱任何超参数,我在R中使用了相同的超参数(收敛公差、最大迭代次数、脊惩罚、套索惩罚…)和“elasticnet
我试图在多项式nb(1)上进行随机参数优化。现在我的参数有3个而不是一个值,因为它是'class_prior',我有3个类
from sklearn.naive_bayes import MultinomialNB
from sklearn.grid_search import RandomizedSearchCV
from scipy.stats import uniform
tuned_parameters = {'class_prior': [uniform.rvs(0,3), unif
我正在学习。我一直在尝试为一项特定任务优化分类器,其中性能是通过日志丢失来判断的。我试图检查VotingClassifier()是否可以使用两个性能最好的分类器来提高性能
这是我的密码:
estimators = [RandomForestClassifier(random_state=0,n_estimators=500,bootstrap=False,criterion='entropy',
max_d
我有一个csv文件,包含23列分类字符串变量,即性别、位置、技能集等
其中一些列缺少值。没有一列缺少超过20%的数据,因此我想对缺少的分类变量进行插补
这可能吗
我试过了
从sklearn_导入分类计算机
imputer=CategoricalImputer(strategy='most_frequent', axis=1)
imputer.fit(df[["Permission", "Hope"]])
imputer.transform(df)
但我得到了这个错误:
NameError:
对于降维:
在主成分分析(PCA)和线性判别分析(LDA)中,我们可以通过将数据与特征向量进行点积来可视化投影到新的降维上的数据
二次判别分析(QDA)如何做到这一点
我使用sklearn的qda,()对每个类的元素进行点乘,并为该类获得相应的缩放
这是正确的吗?
如果没有,请建议如何可视化QDA的预测数据
我试图在我的第一个ML项目中使用scikit learn,使用它的DecisionTreeClassifier和包含数字和分类特征的数据样本,例如:['High',33',No',4]
我已经到了我能做到的地步
从.csv文件中读取培训和测试数据
physio=pd.read\u csv('data.csv',header=None,names=['HR','M','T','W','D'])
提取目标类:
labels=physi.pop('D')
一个热编码的分类特征使用pandas.ge
我下面是一篇关于多标签电影类型的教程
我正在使用该教程为投诉登记创建预测标记。在我的案例中,我为投诉登记册贴上了“类型”标签,例如1个投诉可以有多个标签/类型标签)。例如:投诉#1有多种类型=保修、空调
我已经到了调用multilablebinarizer()函数来标记电影“流派”的阶段
我的问题如下:
总独特类型=55(请参见下面的屏幕截图)
image.png
我运行了Multilabel_二进制函数,并将“Genre”目标变量转换为y
问题:
我遇到y只有(166,49)。如果我的理解是正
问题:你能帮我理解为什么RandomForestClassifier和XGBClassifier的分数完全相同吗
背景:我正在研究卡格尔-泰坦尼克号问题,在我的第一次尝试中,我想比较一些常见的模型
代码:
输出:
0.770949720670391
0.770949720670391
0.6312849162011173
非常感谢你的帮助 这两种算法都是基于树的。但是,您可以看到,在RandomForestClassifier中有一棵树,因此您实际上是一个DecisionTreeClassif
sklearn roc_曲线表示:
“y_分数:数组,形状=[n_样本]
目标分数可以是正类的概率估计、置信值或二元决策。”
在什么情况下,将y_分数设置为二元向量(“二元决策”)是有意义的?这不会导致ROC曲线上有一个点,哪种点与该点不符?如果您使用的分类器不输出概率分数(例如,svm.SVC没有明确的概率=真),则无法计算ROC曲线。作为API设计器,您有两种选择:引发异常并向用户提供任何有用的信息,或者用一个数据点绘制退化曲线。我认为后者更有用 对。你不应该那样做。也许打开一个PR更改文档
我在使用稀疏SVM的预测概率时遇到了一个问题,在我的测试实例中,许多预测结果都是相同的。这些概率是在交叉验证期间产生的,当我绘制褶皱的ROC曲线时,结果看起来非常奇怪,因为图上有一些聚集点。这是我的交叉验证代码,我基于scikit网站上的样本:
skf = StratifiedKFold(y, n_folds=numfolds)
for train_index, test_index in skf:
#split the training and testing sets
我用了三种不同的方法来计算简历和工作描述之间的匹配度。谁能告诉我什么方法是最好的,为什么
我使用NLTK进行关键词提取,然后使用RAKE进行搜索
关键词/关键词评分,然后应用余弦相似性
用于关键词提取、tf idf和余弦相似性的Scikit
计算
带有LSA/LSI模型的Gensim库,用于提取关键字和计算
文档和查询之间的余弦相似性
这里没有人能给你答案决定哪种方法效果更好的唯一方法是让一个或多个人员独立匹配大量的简历和工作描述,并将他们所做的与您的算法所做的进行比较。理想情况下,你应该有一个
因此,我编写了一个网络,该网络由以下内容组成,用于多类分类:
-y_标签转换为to_范畴
-最后一层使用带有3个神经元的乙状结肠函数作为我的类
-模型编译使用分类交叉熵作为损失函数
所以我用
model.predict_classes(x_test)
然后我就把它当作
classification_report(y_test,pred)
y_测试的形式为_分类
我得到了以下错误:
ValueError: Mix type of y not allowed, got types set
以下是PCA的一个简单测试代码:
import numpy as np
from sklearn.decomposition import PCA
data = np.array([[1, 2, 3, 4, 5],
[2, 3, 4, 5, 6]])
pca = PCA()
newData = pca.fit_transform(data)
eigenvalue, eigenvector = np.linalg.eig(np.cov(data.transpo
我编写了一个简单的程序来对一组线性可分离的2D随机点进行分类。我用了一个感知器,用拟合方法训练它。现在我想一次训练一点感知器,每次使用更新的权重绘制超平面(本例中为一条线)。我想得到的是一个动画,它展示了直线如何越来越精确地划分集合。
拟合方法需要整个训练集,那么部分拟合呢?我可以做一个循环,每次给方法输入一对新的输入/输出,并连续读取coef_uu和intercept_uu吗
我阅读了这里的文档,但对如何实现它有些疑问
编辑1
多亏了Vivek Kumar,我在代码中实现了partial_fi
所以我知道有几种方法可以在文档库中找到最相似的文档,或者说是三个最相似的文档。我知道可能存在扩展问题,因为现在我有大约一万个文档,并且已经在大约三十个文档的子集上运行了测试。这是我现在得到的,但如果这被证明是不可能的或效率低下的,我正在考虑研究elasticsearch或doc2vec
到目前为止,这些脚本工作得非常好,它们使用spaCy来标记文本,并使用Sklearn TFIDFvectorier来适应所有文档,并且可以找到非常相似的文档。我注意到我的NumPy对象从管道中出来的形状是(331
我的设置:我正在运行一个流程(=管道),在该流程中,我在选择了相关变量(在标准化数据之后-由于在本例中这些步骤不相关,所以我省略了这些步骤)后运行回归,我将通过网格搜索进行优化,如下所示
fold = StratifiedShuffleSplit(n_splits=10, test_size=0.2, random_state=777)
regression_estimator = LogisticRegression(penalty='l2', random_state=777, max_it
我用scikit\u learn建立了一个多项式回归,效果很好。
然后,我尝试使用与statsmodel相同的数据,因为它提供了更多的细节,并且似乎跳过了第一个y值。你知道我做错了什么吗
我在X中有6个变量,在y中有7个可能的结果(从y=1到y=7),但是statsmodel只返回6个系数
当我打印print(result.summary())时,日志从y=2开始
以下是数据形状:
in_y.value_counts()
>>>
3 295
4 154
5 1
在哪里计算sklearn.ensemble.RandomForestClassifier.feature\u importances\u的值 相应的代码应该在里面,但我没有找到sklearn.employee.RandomForestClassifier.feature\u importances,但是有一个类叫做RandomForestClassifier,源代码的相关部分在这里:我想你可以阅读一下,你可以简单地解释一下你问题的背景吗,请
我有一个形状(120k+,14)的训练数据集,我正在尝试使用GridSearch搜索2500棵树的随机森林
只是想知道为什么我的Kaggle笔记本即使CPU使用率超过100%也不使用GPU
我需要导入一些东西或添加一些代码来启动GPU吗
只有当您使用的代码主要是利用GPU加速库(如TensorFlow、PyTorch等)来训练深度学习模型时,GPU才有帮助。您在此处使用的scikit learn不支持GPU()。除非您想使用不同的框架,否则我建议您关闭GPU
我的问题是,在sklearn中构建决策树时,如果我有一个分类变量,如果我手动输入变量的值作为数字,是否有问题?(假设数据帧很小)
如果我的变量是名义变量还是序数变量,结果会有差异吗
我认为不应该有太大的区别,因为理论上说你应该寻找熵和其他指标的最佳组合,所以它不应该关心一个值是否小于另一个值
非常感谢您如果您的分类变量是序数或标称变量,则会有差异:
如果变量为序号,则只需更改数字的每个类别(例如:坏、正常、好可以更改为1、2、3)。请注意,您只保留了一列。如果样本较少,可以手动执行此操作。您可以
我想使用scikit learn通过交叉验证对自定义内核SVM进行网格搜索。更准确地说
我想定义一个内核函数,比如
def my_kernel(x, y):
"""
We create a custom kernel:
k(x, y) = x * M *y.T
"""
return np.dot(np.dot(x, M), y.T)
其中M是核的参数(如高斯核中的gamma)
我想输入这个参数M,比如
parameters = {'kernel':('my_kernel')
交叉验证递归特征消除(RFEVC)在多层感知器估计器(以及其他几个分类器)上不起作用
我希望跨多个分类器使用一个特征选择,执行交叉验证以验证其特征选择。有什么建议吗?对于结构化数据,有一个独立于模型选择的特征选择,它被称为排列重要性。这是很好的解释和其他地方。
你应该看看。是的
目前没有针对MLP的实现,但是可以很容易地使用类似的东西(从文章中):
请注意,这里的训练集用于计算特征重要性,但您可以选择使用测试集,如前所述。注意:另一种方法是对某些分类器使用一种特征选择方法,对其他分类器使用不同的
我正在使用KneighborsRegressionor,但我想将其与自定义距离函数一起使用。我的训练集是pandas DataFrame,看起来像:
week_day hour minute temp humidity
0 1 9 0 1
1 1 9 0 1
2 1 9 0 1
3 1 9
我正在尝试使用sklearn.mixed.BayesiangAussianMixer来拟合一组轨迹
每个轨迹由一组数据点组成,例如
t_i = {x_i1, y_i1, x_i2, y_i2, ... , x_iN, y_iN},
其中,t_i是第i条轨迹,(x_ik,y_ik)是轨迹上的第k点。例如,x_ik可以表示机器人在时间步长k处的状态,y_ik可以表示机器人采取的动作。
每个GP组件将是从x_ik->y_ik的映射。这是使用sklearn学习GP的标准
然而,当您想先学习带有Diri
我有三个特点:
feature_one -> number of tokens in the given sentence.
feature_two -> number of verbs in the given sentence.
feature_three -> number of tokens - number of verbs in the given sentence.
(feature_one - feature_two)
我已经为功能部件_1和功能部
我使用混淆矩阵模块将类预测结果与实际值进行比较
val= ... #shape (3000,1,30) dtype float32
pred = ... #shape (3000,1,30) dtype float32
cnf_matrix = confusion_matrix(val, pred) #ERROR HERE
我得到了这个错误:
回溯(最后一次调用):文件“vis.py”,第757行,在
cnf_matrix=混淆_matrix(y_test,y_pred)文件“C:\Anac
标签: Scikit Learn
classificationfeature-extractiontext-classificationcountvectorizer
在用TfidfCountvectorizer拟合多项式朴素贝叶斯分类器时,我被杀了:9个错误
def classify(vector, df):
clf = MultinomialNB()
model = clf.fit(vector, df.iloc[0:, 1].values)
if __name__ == "__main__":
train, test = gen_train_test(pd.read_csv('Data/datalabel.csv'))
现在我有10GB的数据集来训练sklearn中的模型,但我的计算机只有8GB的内存,所以除了增量分类器之外,我还有其他方法。我认为如果技术正确,sklearn可以用于更大的数据。如果您选择的算法支持部分匹配或在线学习方法,那么您就走上了正轨。块大小可能会影响你的成功
这个链接可能有用()
您可以做的另一件事是随机选择是否在csv文件中保留一行…并将结果保存到.npy文件中,以便更快地加载。这样,您就可以对数据进行采样,让您可以开始使用所有算法处理数据……并在处理过程中处理更大的数据问题(或者根本
我正在尝试训练一个交叉验证的SVM模型(用于学校项目)。当我呼叫时,给定X和y
clf = svm.SVC(gamma='scale')
scores = cross_val_score(clf, X, y, cv=4)
scores按预期设置为数组,但我希望能够调用clf.predict(test_x)但当我这样做时,它会抛出一个异常,并显示消息此SVC实例尚未安装。在使用此方法之前,使用适当的参数调用“fit”。(我希望它会返回类似于[分数,预测值]的内容,或者可能是一个交叉验证预测值,它
我正在对86个不同的变量进行聚类分析,我使用主成分分析法将这些变量减少到19个。使用sklearn的K-means聚类算法,我得到了10个聚类。然而,我无法找出哪些变量负责分离这些集群。如何确定哪些变量对某个聚类负责。主成分分析创建主成分,基本上可以认为是基本特征的一些线性组合,以帮助将维度从86个特征降低到方差最大的19个“主成分”
为了了解这些主成分所基于的鉴别特征,您必须深入了解主成分分析在发动机罩下的作用。简单地说,PCA对86个特征的相关矩阵进行特征分解。然后,它将数据投影到一个新的向
我目前正在试图找出是否有一种方法可以在python中获得AUC的95%CI。目前,我有一个ypred列表,其中包含我拥有的4个类中概率最高的类预测(因此每个位置都有一个0/1/2/3)和一个实际列表,其中包含每个位置的实际标签。我如何准确地为多个类引导示例
编辑:目前,我计算AUC的方法是采用一对所有的方案,我将每个类别的AUC与其他类别的AUC进行比较,并取这4个值的平均值,以获得最终的AUC。对每个类别执行一对所有的分类方案,并按类别进行报告就足够了
我想使用sklearn库对我的训练数据进行线性回归和K倍交叉验证,以获得最佳回归模型。然后,我计划使用在我的测试集上返回的平均误差最低的预测器
例如,下面的代码给了我一个由20个结果组成的数组,其中有不同的负平均绝对误差,我感兴趣的是找到给我这个(最小)误差的预测器,然后在我的测试集中使用该预测器
sklearn.model\u selection.cross\u val\u score(LinearRegression(),trainx,trainy,score='neg\u mean\u a
结果完全不同:
age 0.011864
age2 0.000294
gender 1.015793
average -44.285129
同时,线性回归的结果是相同的
print(sm.OLS(endog=df["a"], exog=df[["b","c"]]).fit( disp=False).params)
print(LinearRegression(fit_intercept =
我想知道是否有一种方法可以将类似迭代器的函数传递到这些varius sk模型中,例如:
随机森林/逻辑回归等
我有一个张量流数据集可以从那里获取numpy迭代器,但不能在这些函数中使用它
有解决办法吗
xs = tfds.as_numpy(tf.data.Dataset.from_tensor_slices(xs))
ys = tfds.as_numpy(tf.data.Dataset.from_tensor_slices(ys))
然后拟合模型:
cls.fit(xs, ys)
导致:
T
我正在尝试为python3 scikit学习创建一个配方。我现在的食谱是
DESCRIPTION = "python3-scikit-learn"
#SECTION = "devel/python"
LICENSE = "BSD"
#version 0.24.1
LIC_FILES_CHKSUM = "file://COPYING;md5=c8d7e027b3e67a2b1fe7fe85ebeb17d7"
SRC_
我想知道但找不到任何信息,如果我尝试使用TuneSearchCV从sklearn调谐hyperparameter,为什么会一直出现这种情况:
请注意,重要的部分是日志同步警告,因此,与tensorflow和搜索优化(如optuna)相结合的日志记录无法工作:
Backend is sklearn
Concatenating h5 datasets of the following files:
('output/example_train_1.h5', 'output/example_trai
我无法理解使用scikit的这两个步骤是否相似:
1) 计算重要性为True的RandomForestClassifier,并手动选择返回的前10个特征,以进一步创建包含10个特征的新训练集,并进行训练和进一步预测
2) RandomforestClassifier,最大特征=10计算重要性=True,进一步使用rf.fit变换(训练,目标)和进一步的rf.fit(训练,目标)max\u特征=10意味着从整个集合中选择10个特征的新随机子集作为拆分的候选。换句话说,每次都会考虑10个不同的特征。
有谁能给我一个关于sklearn如何在内存中存储分类器的小解释吗?
我想知道它是否存储了一个函数或一个带有模式和标签的大矩阵或其他表示形式。您想知道的sklearn中的具体内容是什么?存储分类器、回归模型或任何其他机器学习模型意味着您需要存储可以预测新给定输入的参数
在线性模型的情况下,它可以主要是特征的系数,例如您所看到的
如果模型是一个支持向量,那么它将是一组支持向量,因此它是一个矩阵。根据型号,您需要存储更改的内容
但是我不知道你说的存储函数是什么意思。任何函数都是获取输入、对输入进行计算
我正在使用OneClassSVM进行异常值检测
clf = svm.OneClassSVM(kernel='rbf', nu=k, tol=0.001)
clf.fit(train_x)
但是,它遇到了以下错误。
流程已完成,退出代码为-1073741819 0xC0000005
数据大小约为20MBtrain_x,这对我来说不是很大。
我电脑的内存是8GB。
但是,如果我减小文件大小,它就起作用了。这种行为是不一致的。
有时它起作用了,否则就不起作用了
以前有人有过这个问题吗
谢谢
我正在进行文本分类分析,并运行了基于NB的分类器,产生了以下结果:
Classification Report:
precision recall f1-score support
0 0.00 0.00 0.00 2
1 0.67 1.00 0.80 4
avg / total 0.44 0.67
我正在RandomForestClassifier上进行网格搜索,我的代码一直在工作,直到我更改了特性,突然代码生成以下错误(在line classifier.fit)
我没有更改任何代码,但将功能维度从16降到了8。我完全不知道我应该调查什么。这个错误意味着什么
错误:
multiprocessing.pool.RemoteTraceback:
"""
Traceback (most recent call last):
File "/home/zqz/Programs/anaconda
该问题与“sklearn LogisticRegressionCV是否使用最终模型的所有数据”相关()。答案是cristal关于LogisticRecgressionCV在二元分类中如何工作,特别是如何选择C:“对于C的每个值,对提供的数据进行交叉验证,其中LogisticRecgressionCV将适用()在当前折叠的训练数据上,并在测试数据上评分。所有折叠的测试数据中的分数将被平均,这将成为当前C的分数。这将针对您提供的所有C值进行,并将选择平均分数最高的C。“。
我的问题是…在多类情况下,
我有以下scikit学习管道用于一些数据预处理
如果数据帧中有分类特征,我想提取特征并运行SimpleImputer;如果没有这样的功能(即dataframe['Categorical']不存在),我希望它只是“跳过”/通过管道并继续下一步
如何做到这一点
Pipeline ([
('extract', extract_feature(dataframe['categoricals]),
('fill', SimpleImputer(strategy='constant', fill_value
我有一个超过30个功能的时间序列。对于scikit的预处理,了解您通常为每个功能使用一个定标器,还是为所有应标准化/规范化的功能使用一个定标器?始终为每个功能使用一个定标器。这将确保保留值并仅缩放
示例
#数据
特征1特征2
1 1
2 2
5 3
10 5
对所有要素使用一个缩放器将根据所有数据点的最小值和最大值缩放数据。这将导致以下结果
#一个用于所有功能的定标器
特征1特征2
.1 .1
.0
上一页 1 2 ...
9 10 11 12 13 14 15 ...
下一页 最后一页 共 40 页