据我所知,random_state
在各种sklearn算法中使用它来打破具有相同度量值的不同预测变量(树)之间的联系(例如在中GradientBoosting
).但是文档没有澄清或详细说明.喜欢
1)这些种子用于随机数生成的其他地方?比如说RandomForestClassifier
,随机数可用于查找一组随机特征来构建预测器.使用子采样的算法可以使用随机数来获得不同的子样本.可以/是同一种子(random_state
)在多个随机数生成中扮演一个角色吗?
我主要关心的是
2)这个random_state变量的影响有多远.?这个值能否在预测(分类或回归)方面产生很大的不同.如果是,我应该关注哪种数据集?或者更多的是关于稳定性而不是结果的质量?
3)如果它可以产生很大的不同,如何最好地选择random_state?没有直觉,很难做GridSearch.特别是如果数据集是这样的,一个CV可能需要一个小时.
4)如果动机只是在重复运行中只有稳定的结果/评估我的模型和交叉验证分数,如果我random.seed(X)
在使用任何算法之前设置(并使用random_state
无),它是否具有相同的效果.
5)假设我random_state
在GradientBoosted分类器上使用了一个值,并且我正在交叉验证以找到我的模型的优点(每次都在验证集上得分).一旦满意,我将在整个训练集上训练我的模型,然后将其应用于测试集.现在,完整的训练集比交叉验证中的较小训练集具有更多的实例.因此,random_state
与cv循环中发生的情况相比,该值现在可以导致完全不同的行为(特征和个体预测变量的选择).类似于像样本叶子等的事情也可能导致较差的模型,因为设置是CV中的实例数,而实际的实例数更多.这是正确的理解吗?防范这种情况的方法是什么?
我正面临着一个问题,我现在已经很久没能克服.
我在Spark 1.4和Scala 2.10上.此时我无法升级(大型分布式基础架构)
我有一个包含几百列的文件,其中只有两列是字符串,其余都是Long.我想将此数据转换为标签/功能数据帧.
我已经能够将它变成LibSVM格式.
我只是无法将其变成标签/功能格式.
原因是
我无法使用此处显示的toDF() https://spark.apache.org/docs/1.5.1/ml-ensembles.html
val data = MLUtils.loadLibSVMFile(sc, "data/mllib/sample_libsvm_data.txt").toDF()
Run Code Online (Sandbox Code Playgroud)
它在1.4中不受支持
所以我首先将txtFile转换为DataFrame,我使用了这样的东西
def getColumnDType(columnName:String):StructField = {
if((columnName== "strcol1") || (columnName== "strcol2"))
return StructField(columnName, StringType, false)
else
return StructField(columnName, LongType, false)
}
def getDataFrameFromTxtFile(sc: SparkContext,staticfeatures_filepath: String,schemaConf: String) : DataFrame = {
val sfRDD = sc.textFile(staticfeatures_filepath)//
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
// reads a space delimited string from application.properties file
val schemaString = readConf(Array(schemaConf)).get(schemaConf).getOrElse("")
// Generate the schema based on the string of schema
val schema = …
Run Code Online (Sandbox Code Playgroud)scala scala-collections apache-spark apache-spark-sql apache-spark-mllib
我正在将numpy
稀疏数组(已删除)保存到csv中.结果是我有一个3GB的csv.问题是95%的细胞是0.0000.我用过fmt='%5.4f'
.如何格式化和保存,使零保存为0,非零浮点数以'%5.4f'
格式保存?如果我能做到这一点,我相信我可以将3GB降至300MB.
我在用
np.savetxt('foo.csv', arrayDense, fmt='%5.4f', delimiter = ',')
Run Code Online (Sandbox Code Playgroud)
感谢和问候
谁能告诉我sklearn(Python)中的合奏(如Random Forest,Gradient Boosting,Adaboost)和树(如决策树)如何处理连续变量?在建造树木时,它们是否被视为每个单独的价值?或者它们是否会被自动分类?如果它们被装箱 - 那么逻辑是什么.如果他们没有装箱,我相信我错过了什么.应该有一些智能分箱可用(内置?),它将根据类分布将变量值分类到箱中(至少在二进制分类的情况下)
深入:当我加载我的arff(在高度倾斜的数据集中的数百万行和几百个特征)时,在weka中,并滚动浏览变量/目标(二进制)图,我可以看到它们中的许多都有很强的垃圾箱(目标为正的区域).这些箱子即> = x <= y是否由sklearn中提到的上述型号自动拾取?参见附图(如果你能看到它在变量/目标图中有6条非常细的红线)
对此有任何见解真的很感激
问候
python machine-learning decision-tree scikit-learn ensemble-learning
您好我遵循http://deeplearning.net/tutorial/code/convolutional_mlp.py代码来实现转神经网络.我输入了通道很重要的图像,因此我希望将3通道特征图作为第0层输入.
所以我需要这样的东西
layer0_input = x.reshape((batch_size, 3, 240, 135)) # width 240, height 135, 3 channels
代替
layer0_input = x.reshape((batch_size, 1, 28, 28)) # 28*28 normalized MNIST gray scale images
将在这里使用
layer0 = LeNetConvPoolLayer(
rng,
input=layer0_input,
image_shape=(batch_size, 3, 240, 135),
filter_shape=(nkerns[0], 1, 5, 5),
poolsize=(2, 2)
)
Run Code Online (Sandbox Code Playgroud)
其中x被提供给theano为
train_model = theano.function(
[index],
cost,
updates=updates,
givens={
x: train_set_x[index * batch_size: (index + 1) * batch_size],
y: train_set_y[index * batch_size: (index + 1) * batch_size]
}
)
Run Code Online (Sandbox Code Playgroud)
所以 - 我的问题是 - …
我有一个问题,我需要从数据帧中获取一组行,其中一组中的项数超过一定数量(截止)。对于那些小组,我需要坐一些头排和尾排。
我正在使用下面的代码
train = train[train.groupby('id').id.transform(len) > headRows]
groups = pd.concat([train.groupby('id').head(headRows),train.groupby('id').tail(1)]).sort_index()
Run Code Online (Sandbox Code Playgroud)
这可行。但是第一行非常慢:(。30分钟或更长时间。
有什么方法可以使第一行更快?如果我不使用第一行,则第二行的结果中存在重复的索引,这使事情变得混乱。
在此先感谢
注意:我的火车数据框包含约70,000个组,这些组的大小各不相同,超过700,000行。实际上,它来自我的另一个问题,如此处所示:在Python Pandas Dataframe中动态添加列的数据处理。Jeff在此处给出了一个很好的答案,但是如果组大小小于或等于我在连接行时传递给head(parameter)的参数,则失败,如Jeffs的回答:在[31]中:groups = concat .....
我有一个包含很多层的 docker 文件。在文件的顶部我有一些参数,例如
FROM ubuntu:18.04
ARGS USER=test-user
ARGS UID=1000
#ARGS PW=test-user
# Then several Layers which does not use any ARGS. Example
LABEL version="1.0"
ENV LANG=C.UTF-8 LC_ALL=C.UTF-8
RUN mkdir ~/mapped-volume
RUN apt-get update && apt-get install -y wget bzip2 ca-certificates build-essential curl git-core htop pkg-config unzip unrar tree freetds-dev vim \
sudo nodejs npm net-tools flex perl automake bison libtool byacc
# And so on
# And finally towards the end
# Setup User
RUN useradd -m -d /home/${USER} --uid …
Run Code Online (Sandbox Code Playgroud) python ×3
scikit-learn ×2
apache-spark ×1
dataframe ×1
docker ×1
dockerfile ×1
numpy ×1
pandas ×1
scala ×1
theano ×1