我使用sklearn模块在Python中运行了一个RandomForestClassifier模型。我将模型保存在pickle文件中。然后,我从Oracle提取数据,将其保存为.csv文件,将该.csv文件发送到一台机器,该机器可以用Python打开模型的pickle文件,并对数据进行评分。数据评分后,我将结果发送回Oracle
是否可以从RandomForestClassifier(.predict_proba)函数中提取评分系数,以便我可以将该数据加载到Oracle中,并仅在Oracle内部
假设我有两个特征,它们都是基于文本的;例如,假设我试图预测体育比赛,我得到:
1) 摘自体育评论(正文)
2) 摘自互联网粉丝预测(也是正文)
如果我在功能1上使用文本向量器(比如HashingVectorizer)和fit_transform(),那么在功能2上再次使用它(fit_transform())是不好的,还是应该为此创建一个新的向量器?我只是想知道,在使用同一矢量器的多个功能上重复使用fit_transform()是否会产生不良副作用。我想说,这取决于您是否希望文本到矢量转换步骤的再
在使用自举样本构建随机林中的每棵树时,对于每个终端节点,我们从p变量中随机选择m个变量,以找到最佳分割(p是数据中特征的总数)。我的问题(针对RandomForestRegressor)是:
1) max_特征对应于什么(m或p或其他)
2) 是否从max_特征变量中随机选择m个变量(m的值是多少)
3) 如果max_features对应于m,那么我为什么要将其设置为回归的p(默认值)?该设置的随机性在哪里(即,它与装袋有何不同)
谢谢。直接从:
[Max>Max特征 >是分裂节点时要考虑的特
我已经使用sklearn和sklearn创建了一个ML管道。看起来像这样
features = ['ColA','ColB','ColC']
labels = 'ColD'
mapper = sklearn_pandas.DataFrameMapper([
('ColB',sklearn.preprocessing.StandardScaler()),
('ColC',sklearn.preprocessing.StandardScaler())
])
pipe = sklea
是否有一种方法可以在Sklearn或任何其他库中一次网格搜索多个估计器。例如,我们可以在一个网格搜索中传递SVM和随机林吗?是。例如:
pipeline=管道([
('vect',CountVectorizer()),
('clf',sgdclassizer()),
])
参数=[
{
“向量最大值”:(0.5,0.75,1.0),
“clf”:(sgdclassizer(),),
“clf__α”:(0.00001,0.000001),
“clf__惩罚”:(“l2”,“elasticnet”
据我所知:
“拟合时间复杂度与样本数成二次关系,因此很难扩展到超过10000个样本的数据集。”
我目前有350000个样本和4500个类,这个数字将进一步增长到100-200万个样本和10k+类
我的问题是内存不足。当我使用少于1000个类的200000个样本时,一切都正常工作
有没有一种方法可以内置或使用类似于支持向量机的小批量的东西?我看到存在MiniBatchKMeans,但我不认为它适用于SVM
欢迎任何意见 我在回答问题时提到了这个问题
您可以将大型数据集拆分为支持向量机算法可以安全使
我将以下白色像素作为输入数据,并使用sklearn.linear_model.ransacregrator拟合2次多项式(二次)以避免异常值。这种情况下的结果显示为红色,完全正确:
然而,我知道在我的应用程序中,二次曲线的最小值/最大值总是在这张图像的右侧(但我不知道在哪个高度),曲率不会那么强。
换言之:我已经知道我的最佳拟合应该像蓝线一样,其他点都是腐败的异常值
是否有办法通过(例如)提供损失函数来控制或限制TransacRecgressor的结果,该函数惩罚非常强的曲率,但在使用较低的曲
我正在使用sklearn训练模型。列车dataset大约为3000k,因此我使用sgdclassizer。功能不是很好,所以我知道它可能不会收敛。但是我想根据我的设置提前停止sgdclassizer,就像max_iter=1000。就我而言,函数sgdclassizer没有像max\u iter这样的参数。我怎么做?
这是代码。
这是打印信息。
感谢您的帮助……这很奇怪,在scikit学习0.18.2中,n_iter默认设置为5个时代。您能否使用脚本更新您的问题,使其能够使用玩具数据集(例如
有人知道sklearn是否支持OneVsRestClassifier中不同分类器的不同参数吗?例如,在这个例子中,我希望对于不同的类有不同的C值
from sklearn.multiclass import OneVsRestClassifier
from sklearn.svm import LinearSVC
text_clf = OneVsRestClassifier(LinearSVC(C=1.0, class_weight="balanced"))
目前没有一个VSREST分类器不使
我正在从sklearn安装此型号
LogisticRegressionCV(
solver="sag", scoring="neg_log_loss", verbose=0, n_jobs=-1, cv=10
)
拟合的结果是模型。得分(在训练集上)为0.67并发生变化。由于无法(或我不知道如何)访问作为模型拟合的一部分执行的交叉验证的结果,因此我在同一个模型上使用
cross_val_score(model, X, y, cv=10, scoring="neg_log
我一直在尝试在大型语料库上执行tf idf启发式
我可以反复阅读文档并调用
vectorizer.fit()
在每次迭代中?这是只考虑当前迭代,还是记住以前的迭代
谢谢 问题的解决方案取决于您的具体应用。您可以考虑GEnSIME的TFIDF实现,它更有效,不需要将整个语料库保留在内存中。p> 每次调用fit时,词汇表都将从头开始初始化,因此这不是一个选项。那么解决方案是什么?谢谢!这正是我想要的。
我有一个scikit学习管道的多标签预测。它在内部测试和获取每个标签预测的指标方面工作正常。但是,我很难获得正确的数据输出结构。当我对看不见的/外部数据运行代码时,它显然会运行每个标签的预测,但会替换同一列中的值。所以我只得到一列预测
该数据集涉及20多个标签(类别),是NLP模型的一部分。每个标签都是二进制的(0或1)。我是新来的,非常感谢你的帮助。谢谢大家!
代码包括三个部分:(1)管道,(2)使用拟合/预测对测试/验证数据进行循环,以及(3)尝试对外部数据的预测函数进行编码
1) 管道:
在我的raspberry pi上,我用virtualenv包创建了一个虚拟环境。我使用pip3为python 3.5安装了以下python包:
imutils==0.5.2
numpy==1.16.3
opencv-contrib-python==3.4.2.17
picamera==1.13
scikit-learn==0.20.3
scipy==1.2.1
sklearn=0.0
在我的python脚本中导入这些包会由于sklearn包而导致导入错误
我从头开始重新创建了一个新的虚拟环境,
我正在尝试复制已完成的工作:
本项目的目标是建立一个逻辑机器学习模型来预测投资失败与否的概率
代码的sklearn部分如下所示:
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import Imputer, StandardScaler
from sklearn.model_selection import GridSearchCV
from sklearn.linear_model import SGDClas
我有25000个文本文档(推特和报纸文章),表示为使用doc2vec模型获得的向量。现在,我想用回归器(多元线性回归)来预测连续价值产出——在我的例子中是英国消费者信心指数。
我的代码永远运行。我做错了什么
我从Excel导入数据,并将其拆分为x_train和x_dev。数据由预处理文本和CCI连续值组成
# Import doc2vec model
dbow = Doc2Vec.load('dbow_extended.d2v')
dmm = Doc2Vec.load('dmm_extended
标签: Scikit Learn
dimensionality-reductionearth-movers-distance
我试图用t-SNE和wasserrain距离来代替欧几里得距离。以下是我的部分代码:
from sklearn.manifold import TSNE
from scipy.stats import wasserstein_distance
tsne = TSNE(n_components=2,perplexity=40, n_iter=1000, metric=wasserstein_distance)
img_embedded = tsne.fit_transform(images)
我对随机森林分类器进行了如下训练:
rf = RandomForestClassifier(n_jobs=-1, max_depth = None, max_features = "auto",
min_samples_leaf = 1, min_samples_split = 2,
n_estimators = 1000, oob_score=True, class_weight
我想知道LabelEncoder()是如何工作的。
这是我代码的一部分
for att in all_features_test:
if (str(test_home_data[att].dtypes) == 'object'):
test_home_data[att].fillna( 'Nothing', inplace = True)
train_home_data[att].fillna( 'Nothing', inplace = True)
train_home
标签: Scikit Learn
pipelinecategorical-datasklearn-pandasone-hot-encoding
我正在使用sklearn管道执行一个热编码:
preprocess = make_column_transformer(
(MinMaxScaler(),numeric_cols),
(OneHotEncoder(),['country'])
)
param_grid = {
'xgbclassifier__learning_rate': [0.01,0.005,0.001],
我想对不同的机器学习模型做一个公平的比较。但是,我发现岭回归模型将自动使用多个处理器,并且没有参数可以限制使用的处理器数量(例如n_作业)。有什么可能的办法解决这个问题吗
一个简单的例子:
从sklearn.datasets导入进行回归
从sklearn.linear_模型导入RidgeCV
特征,目标=make_回归(n_样本=10000,n_特征=1000)
r=脊状CV()
r、 适合(特征、目标)
打印(r.分数(特征、目标))
此处尝试查看此处,我认为您可以使用njobs参数设置计算的
我使用绘制了我的sklearn决策树。节点具有以下结构:
但是我不明白值=[24171059]是什么意思。在其他节点中,还有其他值。感谢您的解释。他们向您指明了步骤中按类别划分的样本数量
例如,您的图片显示,在拆分为“hopsThanks”之前,这非常有用。
加载.pkl文件时,使用pickle.load()引发TypeError。实际上,以前它是一个使用python3.7的工作文件,但现在我使用的是python3.8.9
Python 3.8.9
cloudpickle==1.6.0
scikit-learn==0.20.2
片段-
import pickle
with open('some_model.pkl', "rb") as f:
pickle.load(f, **{"encoding"
LDA分类器将对象特征向量与特征权重向量相乘,并利用所得值使用固定阈值预测对象类。或者w.x(o)>c,其中w是特征权重向量,x(o)是对象o的特征向量,c是阈值
我想使用scikit learn从经过训练的LDA分类器中获取特征权重(w),我想知道是否有一个函数可用于此
查看代码,我看到两个属性,coef_uu和scalings_uu,它们提到了特性权重。coef_2;的描述,“线性决策函数中的特征系数”,似乎与我所寻找的相符,但我不确定这是否正确。如果这是我应该使用的属性,现在有人知道了吗?
我正在使用带有Ipython插件的starcluster。当我使用负载平衡模式从Ipython笔记本运行Kmeans群集时。它始终是100%CPU使用率的主机。而其他EC2实例从不承担此负载
我尝试使用大型数据集和20个节点。所有负载都在主机上时,结果相同。我试着用node001直接查看,但即使这样,主控器还是有所有的负载
我配置有什么问题吗。我是否需要在配置中使禁用队列为true?如何在所有实例上分配负载
模板文件
代码
从IPython并行导入
clients=parallel.Clien
我对scikit learn中的精度和召回值有疑问。我正在使用函数sgdclassizer对数据进行分类。
为了评估性能,我使用精度和召回功能precision\u recall\u fscore\u support,但每次运行程序时,精度和召回矩阵中的值都不同。我怎样才能得到真正的价值观?
我的代码是:
scalerI = preprocessing.StandardScaler()
X_train = scalerI.fit_transform(InputT)
X_test = scaler
我查看了一些著名的带有SGD实现的开源框架,以及
所有这些都将决定迭代次数的任务留给了用户!scikit要求用户明确指定,默认情况下,vowpal假定为1个历元(通过所有示例),但允许更改为任意数量的历元,而tensor仅为单个示例执行一个步骤,将整个迭代循环留给用户
为什么呢?决定终止合同的任务一点也不琐碎——是否应该在损失没有好转的时候决定?最近N次迭代的平均损失是多少?用户是否应使用验证/保留示例来测量损耗?或者,这根本不是损失,我们应该检查优化权重是否变化不大?我们应该在每次终止后检查,
我使用了具有30000×40000大小的术语文档矩阵的截断SVD,将维度减少到3000维,
使用“随机化”时,方差比约为0.5(n_iter=10)
使用“arpack”时,方差比约为0.9
“随机化”算法的方差比“arpack”算法的方差比低
那么为什么scikit learn truncatedSVD默认使用“随机化”算法呢?速度
根据sklearn.decomposition.TruncatedSVD可以使用随机算法,因为本文声称他们的算法要快得多
对于稠密矩阵,它在O(m*n*log(k
我使用scikit学习通过k-means进行聚类:
from sklearn import cluster
k = 4
kmeans = cluster.KMeans(n_clusters=k)
但另一个问题是:
如何使用scikit学习计算k-means特征重要性?不幸的是,据我所知,在k-means算法的上下文中没有“特征重要性”这样的东西——至少在理解特征重要性意味着“自动相关性确定”(如下面的链接所示)
事实上,k-means算法平等对待所有特征,因为聚类过程取决于数据点和聚类中心之
我希望scikit learn的DP-GMM允许在线更新给定新数据的集群分配,但sklearn的DP-GMM实现只有一个合适的方法
我对变分推理的理解还不清楚,我认为不能在线更新集群分配是sklearn实现的特殊情况,而不是无限GMM的变分推理
如果有人能澄清这一点并指出一个能够在线更新集群分配的实现,我将非常感激
http://scikit-learn.org/stable/modules/generated/sklearn.mixture.DPGMM.html发帖说明:
贝叶斯非参数不等于在
在scikit learn中,BaseClass和ClassMixin的含义是什么,例如:BaseEstimator和(ClassifierMixin,RegressionOrMixin)?为什么不创建一个BaseClassifier和一个BaseRegressionor呢
提前感谢,我们的想法是,一切都从BaseEstimator开始,它会给你\uuuuu repr\uuuuuu等,然后根据你试图创建的内容,如果你想要fit\uTransform方法,你可以使用Transformerxin,
我在理解sklearn的PCA方法中组件的最大数量时遇到了一个问题。文件说明,如果未指定编号,将选择:
n_components == min(n_samples, n_features)
现在让我们考虑一个例子:
我有一个包含100个数据值和3000个特征的矩阵,其大小为100 x 3000。相应的协方差矩阵的大小应为3000 x 3000,据此,应存在3000个可能的特征值
现在的问题是:为什么分量的最大值总是样本和特征的较小数量,在本例中为100,即使我指定3000作为参数?有几种解释P
我正在研究时间序列模型。我在金字塔arima模块中使用了自动arima模型。我已经在我的数据集上安装了auto_arima模型。现在我有两个问题
我想看看模型参数
我想从模型中得到拟合值
下面是我的示例代码
m1_hist = auto_arima(ts1_hist, start_p=1, start_q=1,
max_p=3, max_q=3, m=12,
start_P=0, seasonal=Tru
上下文
我尝试在我自己的数据上使用交叉验证中的方法(从csv导入,无缺失值,所有插值,无缺失,一些0,一些负到正范围,大部分是正范围)。由于使用shift进行偏移,初始数据缺少页眉和页脚行,但通过train_test_split函数中的[1:,][:-1]进行处理
无论我如何尝试在自己的数据中包含代码,都会抛出一个错误。我可以使用train_test_split函数为大多数其他函数分割数据,我怀疑错误与数据的结构方式有关
到csv
被解读为
input_file = "parsed.csv"
使用sklearn的LogisticRegression(),如何在成本最低的.fit()之后查看它找到的参数?我使用了Geron关于scikit learn和tensorflow的书,在第137页,他训练了花瓣宽度的模型。我做了以下工作:
iris=datasets.load_iris()
a1=iris['data'][:,3:]
y=(iris['target']==2).astype(int)
log_reg=LogisticRegression()
log_reg.fit(a1,y)
sklearn的RandomForestClassifier如何处理多标签问题(引擎盖下)
例如,它是否在不同的单标签问题中阻止问题
为了清楚起见,我还没有真正测试它,但我在随机森林分类器的.fit()函数中看到了y:array-like,shape=[n_-samples]或[n_-samples,n_-outputs],当我开始使用树时,我有点困惑。如果您参考sklearn文档:
如果你深入研究预测概率的方法,你会发现:
“预测的类别概率是同一类别的样本在一片叶子中的分数。”
所以在pre
我正在遵循产品推荐标准
我想使用Sagemaker上库中的SVD
from surprise import SVD
from surprise import Dataset
from surprise.model_selection import cross_validate
我在Dockerfile中添加了scikit惊喜包,但我发现以下错误:
Dockerfile:
#构建一个可以在SageMaker中进行训练和推理的图像
#这是一个使用nginx、gunicorn和flask堆栈的Pyt
我正在使用RandomizedSearchCV(sklearn)模型选择来找出最适合LightGBM LGBMClassifier模型的模型,但我面临着一些问题,无法确定为此选择了哪些功能。
我可以通过以下方式打印出每个项目的重要性:
lgbm_clf = lgbm.LGBMClassifier(boosting_type='gbdt',....
lgbm_clf.fit(X_train, y_train)
importance_type = lgbm_clf.importance_type
l
我是否需要像使用glm一样将logit的返回值转换为概率?这个问题是由一个简单的logistic回归输出的0.5阈值附近的极窄概率分布引起的
提出了这样一个问题:这些概率是真的吗?因为离散度看起来太窄了。我随后应用了CaliblatedClassifiedRCV,这增加了概率结果的“扩散”,这可能有助于解决问题,但问题是predict\u proba是否需要像logit一样进行修改:
def log_convert(prob):
prob = math.exp(prob)
我已经为我的模型中的所有特性绘制了XGBoost特性重要性,如下图所示。但是您可以看到图中的F分数值没有标准化(不在0到100的范围内)。如果你知道为什么会这样,请告诉我。我是否需要在plot_重要性函数中传递任何参数以进行规范化
绘图的特征重要性由其参数决定
重要性\u类型,默认为重量。有3个选项:weight、gain和cover。不过,它们都不是一个百分比
对于此方法,请从中选择:
重要性类型(str,默认为“权重”)–重要性的计算方式:“权重”、“增益”或“覆盖”
“权重”是特征在树中
请帮助修复此错误。TfidfVectorizer的词汇表参数不能是整数,因为您尝试在第二幅图像中进行设置。
我正试图执行这段代码,使用Sklearn-porter将决策树分类器转换为Java
porter = Porter(clf, language='java')
我得到了这个错误
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipyt
在我制作了一个MDS对象MDS,并将其与MDS.fit(X)配合后,我想我可以使用MDS.transform(X\u new)投射新的点。我认为这是其他流形类中的API。但是只有fit\u变换。从描述中我猜,fit\u transform进行了更多的拟合,我不想更改已经计算过的投影
等等,也许这没什么意义。我又读了一些书。如果我现在理解正确的话,MDS算法是一种迭代算法,“只是移动点”,直到应力值变低——实际上不允许投影
但是,我仍然对fit\u transform的作用有点困惑。文档说“拟合X
我试图用caffe模拟sklearn中的SGDClassizer和LogisticReturnal线性模型。众所周知,在caffe中,一个“InnerProduct”层加上一个“Softmaxwithloss”层表示逻辑回归Y=Logit(WX+b)
我现在使用sklearn数据集包中的digits数据集作为测试集(所有数据标签对的5/6)和测试集(其余的1/6)。然而,通过SGDclassifer()或LogisticRegression()获得的准确率可以达到近90%,而通过训练后的两层神经
我观察到scikit learn clf.tree_.特性偶尔返回负值。例如-2。据我所知,clf.tree_u2;.feature应该返回特性的顺序。如果我们有一个功能名称数组
['feature\u one'、'feature\u two'、'feature\u three'],那么-2将指的是feature\u two。我对负指数的使用感到惊讶。在中,通过索引1引用功能二将更有意义。(-2是便于人类消化的参考值,不便于机器加工)。我读对了吗
更新:以下是一个示例:
def leaf_ord
我需要知道计数矩阵的特征。我已经有了标记化数据和术语文档矩阵,我不需要做Tfidfvectorizer。我厌倦了像这样做:
但我发现这是用于原始文档的。我得到了这个错误:AttributeError:'numpy.ndarray'对象没有属性'get\u feature\u names'
这是我的尝试:
pipe = make_pipeline(TruncatedSVD(n_components=svd_components),
Normalizer(norm='l1',copy
我正在使用scikit learn的LinearSVC SVM实现,并试图理解多类预测。看看coef和intercept,我可以得到超平面的权重。例如,关于我的学习问题,我得到了两个特性和四个标签
f0 = 1.99861379*x1 - 0.09489263*x2 + 0.89433196
f1 = -2.04309715*x1 - 3.51285420*x2 - 3.1206355
f2 = 0.73536996*x1 + 2.52111207*x2 - 3.04176149
f3 =
您好,我正在使用带有多个矩阵的随机森林,我想获得我的模型的k个最佳功能
我的意思是,在我的模型中,仅3、4或k功能更具相关性,我尝试如下:
然而,这种方法的问题是,我得到了我所有功能的图,因为我计算了很多
这并不像我希望的那样可解释,因此我希望能够支持修改上述代码,以获得一个固定数字的图形
对于特性,我想将其作为一个参数进行修复
import numpy as np
import matplotlib.pyplot as plt
train_matrix = np.concatenate([s
我使用的是XGBoost 0.90。我希望使用Python训练XGBoost回归模型,使用内置的学习目标,并提前停止内置的评估指标。容易的。在我的案例中,目标是“reg:tweedie”,评估指标是“tweedie nloglik”。但是在每次迭代中,我也希望计算一个信息丰富的自定义度量,它不应该用于提前停止。但这是错误的
最后,我希望使用scikit learn GridSearchCV,训练一组模型,使其尽早停止,并具有内置的目标和指标,但最终选择在定制指标上表现最好的模型
在这个示例代码中
我正在尝试创建一个数据框架,其中包含来自Scikit Learn的所有算法以及每个算法的元数据。在R中的插入符号中,有一个名为getmodelinfo()的函数可以执行此操作
Scikit Learn中是否有类似的工具?您可以使用sklearn.utils和inspect获得最接近您想要的工具。例如,您可以获得所有sklearn类的列表,或只是分类器,如:
from sklearn.utils.testing import all_estimators
all_est = all_estimat
我在向矢量器内容添加功能时遇到问题。我有文本内容和页数,我使用ColumnTransformer sklearn函数将这些页面添加到矢量器输入中,如下所示
training_content = pd.DataFrame({'text': training_text,'pages': training_pages})
文本内容和页面的尺寸相同
19872 19872
生成的数据帧具有此形状
(19872, 2)
然后,我使用ColumnTransformer生成用于特征预处理的管道
pipe
1 2 3 4 5 6 ...
下一页 最后一页 共 35 页