我正在使用scikit的随机森林方法进行3D点识别。我经常遇到的一个问题是,某些类比其他类更经常出现
这意味着,在从经过训练的分类器生成预测的过程中,如果分类器不确定某个点类,则更可能假定它属于某个公共类,而不是不太公共的类
我看到在scikit文档中,fit方法中有一个sample\u weight参数。从我可以看出,只需对某些总体样本进行加权(比如说,我有50个训练文件,第一个样本的权重将是其他样本的两倍),而不是类
这并不能解决这个问题,因为在我所拥有的所有示例中,最不常见的类也同样罕见。
是否有可能从sci工具包中配置svm分类器,以便:
1.)svm分类器使用0,…,n-1中的示例进行训练
2.)如果没有一个分类器(一个或多个)提供积极的结果(类成员资格),则输出为指定的标签n,表示“无一个”
谢谢 通过构造,OvR多类包装器sklearn.multiclass.OneVsRestClassifier选择最大决策函数输出或最大预测概率来决定预测的类。这意味着总会有一个预测类
例如,如果您希望在decision\u function/predict\u proba都保持在某个阈值
是否有任何方法可以用所有虹膜特征来建立分类边界,而不是只使用两个特征?多谢各位
以下是KNN代码,其分类边界具有所有2个虹膜特征:
我可以包括所有功能吗?替换
X = iris.data[:, :2] # we only take the first two features. We could
# avoid this ugly slicing by using a two-dim dataset
使用X=iris.data
还将负责绘制二维图形
我正在使用Sklearn的CountVectorizer将我的文本文档转换为文章单词共现矩阵。
它工作得很好,但是我希望它排除与包含少于k个单词的文档相对应的行
from sklearn.feature_extraction.text import CountVectorizer
vectorizer = CountVectorizer()
X = vectorizer.fit_transform(doc)
for i in range(len(data)):
if sum(X[i,:])&l
标签: Scikit Learn
classificationdecision-treeone-hot-encodinglabel-encoding
我正试图用scikit学习模块为决策树分类器建立一个模型。我有5个特征,其中一个是分类的,不是数字的
from sklearn.tree import DecisionTreeClassifier
from sklearn.preprocessing import LabelEncoder
df = pd.read_csv()
labelEncoders = {}
for column in df.dtypes[df.dtypes == 'object'].index:
labelEn
基于此,我为statsmodels的glm创建了一个包装器,以便使用scikit的cross_val_得分。现在我需要介绍SM.GLM的via var_weights参数
class Wrapper(BaseEstimator, RegressorMixin):
def __init__(self, family, alpha, L1_wt, var_weights):
self.family = family
self.alpha = alpha
在文档中,它将平均精度分数描述为精度召回曲线下的面积。我很难理解这个区域意味着什么
这个指标与原始的精度分数有何不同 精度召回曲线绘制了不同概率阈值的精度和召回率p。对于p=0,所有内容都分类为1,因此召回率将为100%,精度将是测试数据集中1的比例。对于p=1,没有任何内容被归类为1,因此召回率为0%,准确率为0。对于p=0.5,这就是precision\u score告诉您的,但是,您可能不想在最终模型中使用此阈值,您将根据您愿意容忍的误报数量选择不同的阈值。因此,平均精度分数为您提供了所有
我有一个在版本0.14.1中训练过的酸洗scikit学习分类器,我想在我的mac上使用它,它有scikit学习版本0.17.1。当我尝试运行clf.score时,出现以下错误:
AttributeError: 'SVC' object has no attribute '_dual_coef_'
通过谷歌搜索,问题似乎在于制作分类器和现在想要测试分类器之间的版本差异。如果不能进行再培训,是否有办法升级分类器以在新版本的scikit learn中工作?不确定这是否能解决问题,但您是否尝试过中间升
我正在尝试使用SVM分类器进行网格搜索
考虑我的数据和目标,它们已从文件解析并输入到numpy数组
然后我对它们进行预处理
# Transform the data to have zero mean and unit variance.
zeroMeanUnitVarianceScaler = preprocessing.StandardScaler().fit(data)
zeroMeanUnitVarianceScaler.transform(data)
scaledData = data
我正在尝试使用GridSearchCV和KerasRegressionor进行超参数搜索。Keras model.fit函数本身允许使用历史对象查看“损失”和“val_损失”变量
使用GridSearchCV时,是否可以查看“loss”和“val_loss”变量
下面是我用来进行gridsearch的代码:
model = KerasRegressor(build_fn=create_model_gridsearch, verbose=0)
layers = [[16], [16,8]]
act
我不理解“较小的最大值特性减少随机林中的过度拟合”这一部分?
另外,在随机森林中装袋是什么意思?我会尽我所能向你们解释。你似乎对机器学习算法还不熟悉。我相信你知道什么是过度装修!让我来解释一下为什么随机森林很容易发生这种情况。复制此用户回答:
从前有一个叫梅尔的女孩。梅尔每天都和一个不同的朋友一起玩,她玩的每一天都是阳光明媚、美好的一天
梅尔和他一起玩
约旦星期一,
莉莉,星期二
咪咪,星期三
星期四是橄榄树节。。然后
星期五梅尔和布丽安娜一起玩,结果下雨了。那是一场可怕的雷雨
更多的日子,更多
我正在尝试编写sklearn类sklearn.tree.\u splitter.splitter的子类。
我用cython编写了以下子类:
from libc.string cimport memcpy
import numpy as np
cimport numpy as np
np.import_array()
from sklearn.tree._splitter import Splitter, SplitRecord
from ._utils import rand_int
c
是否有任何策略或黑客对数据的不同维度给予不同的重要性
这意味着,在多维数据上拟合GMM时,一个方向上的距离比其他方向上的距离受到的惩罚更大。
我考虑的备选方案:
预处理:简单的尺寸缩放不起作用,因为GMM只会学习一个类似的缩放方差
操作EM算法:我尝试在每个M步之后将协方差矩阵缩放到不太重要的维度方向。中等程度的成功
我有点惊讶,我找不到关于这个非常明显的用例的信息
标签: Scikit Learn
classificationensemble-learningimbalanced-data
我有一个分类问题的不平衡数据集。我的目标变量是二进制的,有两个类别。
我通过指定class_权重作为参数,实现了随机森林和逻辑回归。
当我分别将数据拟合到随机森林和逻辑回归时,效果很好。但是,当我在随机森林上使用投票分类器和sklearn.ensemble的逻辑回归来拟合数据时,它会给出错误类标签不存在。我需要使用3个或更多模型的集成。我已经检查过,这个错误不是因为代码中实现了Naiver_bayes
我的代码:
rf_param = { 'class_weight': {'no_payment
回归不起作用,因为数据不相关。我知道我可以增加迭代次数
但是,在这种情况下,我不希望看到以下警告:
lib/python3.7/site packages/sklearn/linear_model/_logistic.py:939:ConvergenceWarning:
lbfgs未能聚合(状态=1):
停止:达到限制的迭代总数
增加迭代次数(最大迭代次数)或缩放数据,如所示:
.
另请参阅文档以了解备选解算器选项:
使用以下代码关闭警告:
from warnings import simple
我正在探索Scikit学习逻辑回归算法。我知道,作为训练的一部分,该算法构建了一条回归曲线,其中y变量的范围为0到1(S形曲线)。y变量在这里是一个连续变量(尽管实际上它是一个离散变量)
当训练数据集反映实际情况并包含y变量作为离散变量时,算法如何学习S曲线?训练中没有概率估计,所以我想知道该算法如何能够学习S曲线
训练中没有概率估计
当然可以,但为了建模,我们假装有。我们希望最大化概率,如你所说的“现实”——如果观察到的响应(你提到的离散值)为0,我们希望用概率1预测;类似地,如果响应为1,我
我在一个多类问题中使用了随机森林分类器
rf = RandomForestClassifier(()
rf.fit(train_X, train_y)
然后是预测:
pred = rf.predict(test_X)
然后我想计算roc\u auc\u得分,如下所示:
roc_value = roc_auc_score(test_y, pred, average='weighted',
multi_class='ovr',labels=[0,1,2,3,4])
但这会产生一个错误
我试图根据原油价格、通货膨胀和货币来估算股票价值“Tupras”
Tupras Tupras Volume Crude Oil Crud Oil Volume USD/EUR USD/TRY Inf. Rate
0 13.500000 173120.0 42.119999 69484.0 0.742390 1.34400 9.24
1 13.400000 286043.0 43.910000 100665.0 0.752900
所以在完成这些计数向量器和Tfidf Transformer之后
导入pickle
从sklearn.feature\u extraction.text导入countvectorier
#获取向量计数
count\u vect=countvectorier()
X_train_counts=计数向量拟合变换(training_data.data)
从sklearn.feature\u extraction.text导入
#将字向量转换为TF-IDF
tfidf_transformer=tfid
我想用scikit learn尝试一下潜在语义分析(LSA)的一些变体。除了来自CountVectorizer()的纯频率计数和TfidfTransformer()的加权结果之外,我还想通过熵(和对数熵)测试加权()
对如何进行有什么建议吗?我知道Gensim有一个实现(LogEntropyModel()),但我更愿意坚持使用scikit learn 好吧,你需要把这个公式作为一个转换器来实现,或者把scikit learn和Gensim联系在一起。哪一部分给你带来麻烦?嗨,我还没开始。。。到目
我试图使用sklearn的随机森林回归作为一个玩具示例。我生成500个1到100之间的均匀随机数作为预测变量,然后获取它们的日志并添加高斯噪声以形成响应变量
我听说随机森林通常是开箱即用的,所以我希望有一个合理的曲线,但我得到的是:
我不明白为什么随机林似乎击中了每个数据点。由于装袋,每棵树都会丢失部分数据,因此当所有树都被平均时,曲线应该更加平滑,而不是碰到异常值
如果有人能帮助我理解为什么这个模型太过合适,我将不胜感激
以下是我用来生成绘图的代码:
from sklearn.ensembl
背景
比方说,在一个多类(分别为多标签)问题中,我们有L标签可以预测。使用OneVsRestClassifier,正在构建L分类器。让我们假设,我们对单个分类器使用LogisticRegression
使用GridSearchCV(分别为RandomizedSearchCV)搜索最佳超参数时,我们运行:
问题
通过运行上面的GridSearchCV命令,我们将获得一组最佳超参数,用于训练(重新安装)所有L分类器。因此,例如,我们将得到一个最佳值C=10,该值将用于重新安装L分类器的所有
我的问题
我正在看scikit学习文档中的这个示例:
在我看来,交叉验证并不是以无偏见的方式进行的。GridSearchCV(假定为内部CV循环)和cross_val_score(假定为外部CV循环)都使用相同的数据和相同的折叠。因此,分类器的训练数据和评估数据之间存在重叠。我做错了什么?他们没有使用相同的数据。诚然,该示例的代码并没有让它变得明显,因为拆分是不可见的:第一次拆分在cross_val_score内完成,第二次拆分在GridSearchCV(GridSearchCV对象的整个点)内完成。使用
我知道train_test_split方法将数据集分割为随机的train和test子集。使用random_state=int可以确保每次调用该方法时在此数据集上都有相同的拆分
我的问题略有不同
我有两个数据集,A和B,它们包含相同的示例集,这些示例在每个数据集中出现的顺序也是相同的。但它们的关键区别在于,每个数据集中的exmaples使用不同的功能集
我想测试A中使用的功能是否比B中使用的功能带来更好的性能。因此,我想确保当我在A和B上调用train_test_split时,我可以在两个数据集上
看起来我有一些不一致的地方,但我无法排除故障
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)
print(X_train.shape)
print(y_train.shape)
classifier.fit(X_train, y_train)
print ("A
我想通过使用管道将StandardScaler和KMeans结合起来,并检查KMeans的惯性,因为我想检查哪个集群的数量最好。
代码如下:
ks = range(3, 5)
inertias = []
inertias_temp = 9999.0
for k in ks:
scaler = StandardScaler()
kmeans = KMeans(n_clusters=k, random_state=rng)
pipeline = make_pipeline(s
我已经了解到,我们可以将scikit学习库与pyspark一起用于在单个辅助进程上处理分区
但是,如果我们想处理分布式的训练数据集,并且说回归算法应该涉及整个数据集,该怎么办呢。由于scikit learn未与RDD集成,我假设它不允许在整个数据集上运行算法,而只允许在特定分区上运行。如果我错了,请纠正我
文档中描述的解决此问题的效果如何满足您的要求
并行培训和评估多个scikit学习模型。它是默认包含的多核实现的分布式模拟
在scikit中学习
将Spark的数据帧无缝转换为numpy Nd
我正在查找“预计算距离”属性的实用程序:
class sklearn.cluster.KMeans(n_clusters=8, init=’k-means++’, n_init=10,
max_iter=300, tol=0.0001, precompute_distances=’auto’, verbose=0,
random_state=None, copy_x=True, n_jobs=1, algorithm=’auto’)
它预计算的距离是多少?对于每个k
TimeSeriesPlitCV在sklearn上工作不正常。这种行为恰当吗
使用此处给出的示例:
当您将分割数更改为2而不是默认的n_分割=5时,测试数据将变为长度2而不是1。然而,对于SKLearn文档中定义的所有时间序列案例和最常见的场景,目标是按时间顺序预测下一次观察。我是不是误解了什么
TRAIN: [0 1] TEST: [2 3]
TRAIN: [0 1 2 3] TEST: [4 5]
让验证集仅包含当您将n_分割设置为等于n_样本-1,其中n_样本是数据集中的样本数时,下一个
我一直在使用RobustScaler来缩放数据,最近我们添加了额外的数据,这些数据推动了fit_变换的内存限制。我希望对子集数据进行部分拟合,但看起来RobustScaler并没有提供该功能。大多数其他定标器(MinMax、Standard、Abs)似乎都有部分匹配
由于数据中存在异常值,因此需要使用RobustScaler。我尝试使用MinMax和标准定标器,但是异常值对数据的影响太大了
我希望找到一种替代方法,来代替对大数据集进行拟合变换,类似于在其他定标器中进行部分拟合。如果使用sciki
我的scieniao中有4000万个数据集。DBS在sklean中能支持这么大的数据集吗?下面是我的代码
result=[]
for line in open("./raw_data1"):
#for line in sys.stdin:
tagid_result = [0]*10
line = line.strip()
fields = line.split("\t")
if len(fields)<6:
我想看看这个模型是否在我的交叉验证中收敛。如何增加或减少sklearn.svm.SVC中的历元?
目前:
SVM_Model = SVC(gamma='auto')
SVM_Model.fit(X_train,y_train)
另外,我如何在培训期间看到进度条?您可以结合使用max\u iter和tol来实现收敛
max_iterint,可选(默认值=-1)
解算器内迭代的硬限制,或-1表示无限制
tol浮动,可选(默认值=1e-3)
停止标准的公差
Sklearn now中目前不提供进度条支
我有一个标量数数组,pm,还有一个索引列表,idx,因此pm[idx]是pm的子集。如何将pm[idx]分为两个簇(根据欧几里德距离)并获得两组相应的索引(理想情况下使用scikit learn)
比如说,
pm = array([0,1,2,3,4,100,105])
idx = [0,2,3,5,6]
如何获得idx1=[0,2,3]和idx2=[5,6]?基本上,您希望过滤数据pm,这可以通过idx数组轻松完成。您可以对筛选的数据进行聚类以获得两个组
基于分区的聚类算法(如or)可以完美
使用sklearn的PCA:
m = np.random.randn(10, 5)
mod = PCA()
mod.fit_transform(m)
mod.components\u将有5个组件,这对我来说很有意义,因为数据中有5个功能
但是如果m=np.random.randn(10,20)
模块组件将包含10个组件
假设mod.components.中的行对应于功能的数量,那么第二个示例中不应该有20个组件吗?数据中的组件不应该和功能一样多吗?来自scikit learn
因此,在第一种情
标签: Scikit Learn
hierarchical-clusteringunsupervised-learningdbscanhdbscan
当我尝试使用其中一种算法时,我得到了内存错误
有没有办法将大数据集分成若干部分?(使用for循环并每1000条记录重新安装一次)
如果没有,有没有更好的方法可以在不升级机器内存的情况下对大数据集进行集群
如果数据集中的特征数不是太多(低于20-25),可以考虑使用桦木。这是一种迭代方法,可用于大型数据集。在每次迭代中,它只使用一小部分数据构建一棵树,并将每个实例放入集群中
我试图通过以下示例了解如何对sklearn的默认AdaBoostClassifier()进行预测(我不关心训练,纯粹是预测):
在对某些数据(特征是连续的,标签仅为0和1)拟合AdaBoostClassifier后,它有2个DecisionTreeClassifier估计器
估计权重均为1
2个要素的要素重要性为0.5,其他要素的要素重要性为0
第一个估计器的阈值为1175000.0,第二个估计器的阈值为15601.5
第一个估计值为真:[0.79310345 0.05517241]和假:[0.
给定一个包含1000个数据样本的样本数据集,假设我想对数据进行预处理以获得10000行数据,那么每一行原始数据将产生10个新样本。此外,在培训我的模型时,我希望能够执行交叉验证。
我使用的评分函数使用原始数据来计算评分,因此我希望交叉验证评分也使用原始数据,而不是生成的数据。由于我将生成的数据提供给培训师(我使用的是RandomForestClassifier),因此我无法依靠交叉验证根据原始样本正确分割数据
我想做什么:
创建自定义特征提取器,以提取要提供给分类器的特征
例如,将特征提取器添
我正在学习ML,并使用scikit learn进行基本的决策树分类
特征值是分类的,所以我使用了DictVectorizer来转换原始特征值。这是我的密码:
training_set # list of dict representing the traing set
labels # corresponding labels of the training set
vec = DictVectorizer()
vectorized = vec.fit_transform(training_se
我正在使用scikit学习包中的LASSO来优化惩罚线性回归问题的参数。我不仅对参数的最佳选择感兴趣,而且对数据相对于优化参数的可能性感兴趣。在拟合后是否有一个简单的方法得到充分的可能性? < P>在最大似然框架下考虑 LasS/有点欺骗。然后,系数上的先验分布是拉普拉斯分布exp(-np.prod(np.abs(coef)),其产生的稀疏性仅作为处于最佳状态的“伪影”。从该分布中获得稀疏样本的概率为0(这种情况“几乎从不发生”)
这个免责声明,你可以写出来
import numpy as np
我想准备一个包含连续、标称和有序特征的数据集进行分类。下面我有一些解决方法,但我想知道是否有更好的方法使用scikit learn的编码器
让我们考虑下面的示例数据集:
import pandas as pd
df = pd.DataFrame([['green', 'M', 10.1, 'class1'], ['red', 'L', 13.5, 'class2'], ['blue', 'XL', 15.3, 'class1']])
df.columns = ['color', 'size',
标签: Scikit Learn
cluster-analysisk-meansunsupervised-learning
我有157维的数据,688个数据点。对于这些数据,我想执行集群
因为K-Means是最简单的算法,所以我决定从这个方法开始
以下是Sklearn函数调用:
KMeans(init='k-means++',n_clusters=4,n_init=10),name='k-means++',data=sales)
以下是一些输出指标:
init time inertia homo compl v-meas ARI AMI num_cl
对Keras模型的多类输出使用自定义评分会返回与cross_val_评分或GridSearchCV相同的错误,如下所示(它位于Iris上,因此您可以直接运行它进行测试):
将numpy导入为np
从sklearn导入数据集
从sklearn.model_selection导入训练测试分割、交叉值得分、GridSearchCV
从keras.models导入顺序
从keras.layers导入稠密
从keras.utils导入到_category
从keras.wrappers.scikit_学习
对于一些文本聚类,我有一个非常简单的AffinityPropagation模型函数:
def fit_affprop(X, damping=0.5):
affprop = AffinityPropagation(affinity='euclidean', damping=damping)
affprop.fit_predict(X)
clustering = collections.defaultdict(list)
for idx, label in enumerate(affprop.lab
我必须用支持向量机对一些文本进行分类。在我的火车文件中,我有5个不同的类别。我必须先用“单词袋”特征进行分类,然后用SVD特征进行分类,保持总方差的90%
我正在使用python和sklearn,但我不知道如何创建上面的SVD特性
我的列车组用tab(\t)分隔,我的文本在“内容”列,类别在“类别”列 tf idf/PCA/SVM工作流的高级步骤如下:
加载数据(在您的情况下会有所不同):
预处理特征和训练分类器:
from sklearn.feature_extraction.text imp
我正在使用python 3.7
最近,我在导入sklearn模块时开始出现此错误。
我在Jupyter笔记本、Python空闲、Pycharm虚拟环境中也遇到同样的错误
>>> import sklearn
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\aditya\AppData\Roaming\Python\Pytho
我正在尝试使用SHAP库获取高斯过程回归(GPR)模型的SHAP值。但是,所有形状值均为零。我正在使用的例子中。我只是把模型改成了GPR
import sklearn
from sklearn.model_selection import train_test_split
import numpy as np
import shap
import time
from sklearn.gaussian_process import GaussianProcessRegressor
from skl
标签: Scikit Learn
logistic-regressionsklearn-pandasgridsearchcv
似乎无法使用l1惩罚对逻辑回归执行网格搜索
reg = LogisticRegressionCV(cv=5,random_state=42, solver='liblinear',penalty='l1')
grid = {'C': [0.001, 0.01, 0.05, 0.1, 1, 10, 100]}
grid_search = GridSearchCV(reg, param_grid=grid)
grid_search.fit(X_train, y_train)
grid_sea
我目前有一个模型,它将文本描述作为输入,使用TFIDF(或其他一些文本提取方法)将其矢量化,然后输出分类标签。我的问题是,有没有一种简单的方法可以输出标签列表?不显示任何代码,很难交流问题/答案,但我想知道您是否在寻找类属性。对不起,我抽象地讲了一个模型,它是一个接受输入和输出的函数。我想知道我是否可以将我的输出(从LinearSVC模型中预测)作为一个标签列表,而不是一个标签。列表将包含什么predict仅输出。使用LinearSVC可以创建“n个最佳预测”列表,看起来不会返回多个标签。可以破
标签: Scikit Learn
hierarchical-clusteringoutlierssklearn-pandas
我正在为大约100k个2d点运行lof算法。每次,我用不同的n_邻域参数运行lof算法,得到的点数与异常值数相同。总有10%的点是异常值。这个算法就是这样工作的吗?为什么会出现这种情况?因为默认情况下,“污染”参数为0.1(10%)。添加代码以获得更多解释谢谢,正是因为这个原因,我认为它可以自己计算出异常值
使用sklearn LogisticRegression函数对不平衡训练数据集进行二元分类时(例如,85%pos类与15%neg类),将class_权重参数设置为“平衡”与将其设置为{0:0.15,1:0.85}之间是否存在差异?
根据这些文档,在我看来,使用“平衡”参数将做与提供字典相同的事情
等级重量
“平衡”模式使用y值自动调整
与输入数据中的类频率成反比的权重
作为n个样本/(n个类*np.bincount(y))
是的,意思是一样的。使用class\u weight='balanced
上一页 1 2 ...
12 13 14 15 16 17 18 ...
下一页 最后一页 共 40 页