我正在做一些粒子物理分析,希望有人可以给我一些关于高斯过程拟合的见解,我试图用来推断一些数据.
我有不确定性的数据,我正在参与scikit-learn GaussianProcess算法.我通过"nugget"参数包含了uncertanties(我的实现匹配一个标准示例,其中我的"corr"是指数的平方,"nugget"值设置为(dy/y)**2).主要关注点是:我在分布的边缘处具有较低的绝对不确定性(但是高分数不确定性),这产生了比该区域中预期的更大的预测置信区间(参见下图).
不确定性以这种方式表现的原因是我正在处理粒子物理数据,这是用不同特征(x)值观察到的粒子计数的直方图.这些计数遵循泊松分布,因此具有sqrt(N)的不确定性(标准偏差).因此,分布的较高计数区域具有较高的绝对值,但较低的分数不确定性,反之亦然,对于低计数区域.
我理解,正如我所提到的,当使用平方指数内核时,此函数中的"nugget"参数应具有(分数不确定性)**2的值.所以有意义的是,如果预测的不确定性是基于输入的分数不确定性,那么它在边缘上可能很大.但是我并不完全理解这在数学中如何发挥作用,并且预测不确定性的大小比边缘的数据点不确定性大得多,这对我来说似乎是错误的.
谁能评论这里发生了什么?这是否符合预期?如果是这样,为什么?任何有关该主题的进一步阅读的想法或参考将不胜感激!
我会给你留下几个重要的警告:
1)在分布的边缘有几个数据点,零计数.这引发了"金块"的分数不确定性的扭结,因为(sqrt(0)/ 0)**2不是一个非常幸福的值.我在这里做了一个调整,只是将这些点的金块值设置为1.0,这相当于你得到的值,如果这是1的数量.我相信这是一个常见的近似值确实影响了手头的问题,但我不知道我认为它从根本上改变了这个问题.
2)我正在使用的数据实际上是2d直方图(即,一个独立变量(比如x),另一个(y)和计数作为因变量(z)).所示的图是2d数据和预测的1d切片(即z与x在小范围的y上积分).我不认为这真的会影响到手头的问题,但我想我会提到它.
我正在使用skimage.feature的local_binary_pattern和统一模式,如下所示:
>>> from skimage.feature import local_binary_pattern
>>> lbp_image=local_binary_pattern(some_grayscale_image,8,2,method='uniform')
>>> histogram=scipy.stats.itemfreq(lbp_image)
>>> print histogram
[[ 0.00000000e+00 1.57210000e+04]
[ 1.00000000e+00 1.86520000e+04]
[ 2.00000000e+00 2.38530000e+04]
[ 3.00000000e+00 3.23200000e+04]
[ 4.00000000e+00 3.93960000e+04]
[ 5.00000000e+00 3.13570000e+04]
[ 6.00000000e+00 2.19800000e+04]
[ 7.00000000e+00 2.46530000e+04]
[ 8.00000000e+00 2.76230000e+04]
[ 9.00000000e+00 4.88030000e+04]]
Run Code Online (Sandbox Code Playgroud)
当我在附近拍摄8个像素时,预计会获得59个不同的LBP码(因为统一的方法),但它只给了我9个不同的LBP码.更一般地,总是返回P + 1个标签(其中P是邻居的数量).
这是另一种统一的方法,还是我误解了什么?
我有两个Pandas DataFrames,我想比较一下.例如
a b c
A na na na
B na 1 1
C na 1 na
Run Code Online (Sandbox Code Playgroud)
和
a b c
A 1 na 1
B na na na
C na 1 na
D na 1 na
Run Code Online (Sandbox Code Playgroud)
我希望在这种情况下找到共享的任何值的索引列坐标
b
C 1
Run Code Online (Sandbox Code Playgroud)
这可能吗?
我尝试为包含NaN值的每一行检索相应列的所有索引.
d=[[11.4,1.3,2.0, NaN],[11.4,1.3,NaN, NaN],[11.4,1.3,2.8, 0.7],[NaN,NaN,2.8, 0.7]]
df = pd.DataFrame(data=d, columns=['A','B','C','D'])
print df
A B C D
0 11.4 1.3 2.0 NaN
1 11.4 1.3 NaN NaN
2 11.4 1.3 2.8 0.7
3 NaN NaN 2.8 0.7
Run Code Online (Sandbox Code Playgroud)
我已经做了以下事情:
我想要的(理想情况下,列的名称)是这样的列表:
[ ['D'],['C','D'],['A','B'] ]
Run Code Online (Sandbox Code Playgroud)
希望我能找到一种方法,而不是为每一行测试每一行
if df.ix[i][column] == NaN:
Run Code Online (Sandbox Code Playgroud)
我正在寻找一种能够处理我庞大数据集的熊猫方式.
提前致谢.
我正在尝试计算一组查询和每个查询的结果之间的相似度。我想使用tfidf分数和余弦相似度进行此操作。我遇到的问题是我无法弄清楚如何使用两列(在pandas数据框中)生成tfidf矩阵。我已经将两列连接起来,并且工作正常,但是使用起来很尴尬,因为它需要跟踪哪个查询属于哪个结果。我将如何一次计算两列的tfidf矩阵?我正在使用熊猫和sklearn。
以下是相关代码:
tf = TfidfVectorizer(analyzer='word', min_df = 0)
tfidf_matrix = tf.fit_transform(df_all['search_term'] + df_all['product_title']) # This line is the issue
feature_names = tf.get_feature_names()
Run Code Online (Sandbox Code Playgroud)
我正在尝试将df_all ['search_term']和df_all ['product_title']作为参数传递给tf.fit_transform。这显然不起作用,因为它只是将字符串连接在一起,这使我无法将search_term与product_title进行比较。另外,也许有更好的方法来解决这个问题?
我在不同的运行中获得了不同的值...在这里我做错了什么:
X=np.random.random((100,5))
y=np.random.randint(0,2,(100,))
clf=RandomForestClassifier()
cv = StratifiedKFold(y, random_state=1)
s = cross_val_score(clf, X,y,scoring='roc_auc', cv=cv)
print(s)
# [ 0.42321429 0.44360902 0.34398496]
s = cross_val_score(clf, X,y,scoring='roc_auc', cv=cv)
print(s)
# [ 0.42678571 0.46804511 0.36090226]
Run Code Online (Sandbox Code Playgroud) 我想批量创建一些 matplotlib 图,然后以交互方式显示它们,例如这样的东西?(当前代码不显示图)
import matplotlib.pyplot as plt
from ipywidgets import interact
plots = {'a': plt.plot([1,1],[1,2]), 'b': plt.plot([2,2],[1,2])}
def f(x):
return plots[x]
interact(f, x=['a','b'])
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个具有复杂数据类型的表。下面列出了数据类型。
大批
地图
数组<映射<字符串,字符串>>
我正在尝试创建 3 类型的数据结构。是否有可能在 Hive 中创建?我的表 DDL 如下所示。
create table complexTest(names array<String>,infoMap map<String,String>, deatils array<map<String,String>>)
row format delimited
fields terminated by '/'
collection items terminated by '|'
map keys terminated by '='
lines terminated by '\n';
Run Code Online (Sandbox Code Playgroud)
我的示例数据如下所示。
Abhieet|Test|Complex/Name=abhi|age=31|Sex=male/Name=Test,age=30,Sex=male|Name=Complex,age=30,Sex=female
Run Code Online (Sandbox Code Playgroud)
无论我从表中查询数据,我都会得到以下值
["Abhieet"," Test"," Complex"] {"Name":"abhi","age":"31","Sex":"male"} [{"Name":null,"Test,age":null,"31,Sex":null,"male":null},{"Name":null,"Complex,age":null,"30,Sex":null,"female":null}]
Run Code Online (Sandbox Code Playgroud)
这不是我所期待的。如果数据类型可能,请帮我找出应该是什么 DDLarray< map < String,String>>
我有成千上万的小号s3小文件,我希望将它们合并在一起。我使用了s3distcp语法,但是发现合并文件后,合并集中不包含换行符。
我想知道s3distcp是否包含任何强制插入换行符的选项,或者是否存在另一种方法来完成此操作而无需直接修改源文件(或复制并执行相同操作)
我有以下数据:
State Murder Assault UrbanPop Rape
Alabama 13.200 236 58 21.200
Alaska 10.000 263 48 44.500
Arizona 8.100 294 80 31.000
Arkansas 8.800 190 50 19.500
California 9.000 276 91 40.600
Colorado 7.900 204 78 38.700
Connecticut 3.300 110 77 11.100
Delaware 5.900 238 72 15.800
Florida 15.400 335 80 31.900
Georgia 17.400 211 60 25.800
Hawaii 5.300 46 83 20.200
Idaho 2.600 120 54 14.200
Illinois 10.400 249 83 24.000
Indiana 7.200 113 65 21.000
Iowa 2.200 …Run Code Online (Sandbox Code Playgroud) python ×8
pandas ×4
scikit-learn ×4
amazon-emr ×1
amazon-s3 ×1
arrays ×1
dictionary ×1
hadoop ×1
hive ×1
matplotlib ×1
r ×1
scikit-image ×1
tf-idf ×1
uncertainty ×1