小编Hon*_*zaB的帖子

Python/NumPy中meshgrid的目的是什么?

有人可以向我解释meshgridNumpy功能的目的是什么?我知道它会为绘图创建某种坐标网格,但我无法真正看到它的直接好处.

我正在学习Sebastian Raschka的"Python机器学习",他正在使用它来绘制决策边界.请参见此处的输入11 .

我也从官方文档中尝试过这段代码,但是,输出对我来说并没有多大意义.

x = np.arange(-5, 5, 1)
y = np.arange(-5, 5, 1)
xx, yy = np.meshgrid(x, y, sparse=True)
z = np.sin(xx**2 + yy**2) / (xx**2 + yy**2)
h = plt.contourf(x,y,z)
Run Code Online (Sandbox Code Playgroud)

如果可能的话,请向我展示很多现实世界的例子.

python numpy mesh multidimensional-array numpy-ndarray

253
推荐指数
7
解决办法
13万
查看次数

PCA在Scikit中的预测和重建

我可以通过以下代码在scikit中执行PCA:X_train有279180行和104列.

from sklearn.decomposition import PCA
pca = PCA(n_components=30)
X_train_pca = pca.fit_transform(X_train)
Run Code Online (Sandbox Code Playgroud)

现在,当我想将特征向量投影到特征空间时,我必须做到以下几点:

""" Projection """
comp = pca.components_ #30x104
com_tr = np.transpose(pca.components_) #104x30
proj = np.dot(X_train,com_tr) #279180x104 * 104x30 = 297180x30
Run Code Online (Sandbox Code Playgroud)

但我对此步骤犹豫不决,因为Scikit 文档说:

components_:array,[n_components,n_features]

特征空间中的主轴,表示数据中最大方差的方向.

在我看来,它已经被预测,但是当我检查源代码时,它只返回特征向量.

如何投影它的正确方法是什么?

最终,我的目标是计算重建的MSE.

""" Reconstruct """
recon = np.dot(proj,comp) #297180x30 * 30x104 = 279180x104

"""  MSE Error """
print "MSE = %.6G" %(np.mean((X_train - recon)**2))
Run Code Online (Sandbox Code Playgroud)

python machine-learning pca scikit-learn

15
推荐指数
2
解决办法
1万
查看次数

来自熊猫的分层样本

我有一个pandas DataFrame,看起来大致如下:

cli_id | X1 | X2 | X3 | ... | Xn |  Y  |
----------------------------------------
123    | 1  | A  | XX | ... | 4  | 0.1 |
456    | 2  | B  | XY | ... | 5  | 0.2 |
789    | 1  | B  | XY | ... | 5  | 0.3 |
101    | 2  | A  | XX | ... | 4  | 0.1 |
...
Run Code Online (Sandbox Code Playgroud)

我有客户端ID,很少有分类属性,Y是事件的概率,其值从0到1乘以0.1.

我需要在每个组(10倍)的大小为200的Y中采取分层样本

在分成火车/测试时,我经常使用它来分层样本:

def stratifiedSplit(X,y,size):
    sss …
Run Code Online (Sandbox Code Playgroud)

python pandas

7
推荐指数
2
解决办法
1万
查看次数

Pandas - 从分类列创建布尔列

我在Pandas数据框中有一个Place,它看起来像这样:

**Place**
Berlin
Prague
Mexico
Prague
Mexico
...
Run Code Online (Sandbox Code Playgroud)

我想做以下事情:

is_Berlin   is_Prague   is_Mexico
1           0           0
0           1           0
0           0           1
0           1           0
0           0           1   
Run Code Online (Sandbox Code Playgroud)

我知道我可以单独创建列:

df['is_Berlin'] = df['Place']
df['is_Prague'] = df['Place']
df['is_Mexico'] = df['Place']
Run Code Online (Sandbox Code Playgroud)

然后为每列创建一个字典并应用一个map函数.

#Example just for is_Berlin column
d = {'Berlin': 1,'Prague': 0,'Mexico': 0} 
df['is_Berlin'] = df['is_Berlin'].map(d)
Run Code Online (Sandbox Code Playgroud)

但我觉得这有点单调乏味,我相信有很好的pythonic方式如何做到这一点.

python dataframe pandas

6
推荐指数
1
解决办法
1734
查看次数

使用 pandas 和 matplotlib_venn 绘制维恩图

我想根据我的 pandas 数据框绘制维恩图。我知道matplotlib_venn接受集合作为输入。我的数据集包含客户端 ID 和另外两列,其中包含客户端是否参与活动的信息。

df_dataset = pd.read_csv('...path...',delimiter=',',decimal=',')
campaign_a = df_dataset[(df_dataset['CAM_A'] == 1)] 
campaign_b = df_dataset[(df_dataset['CAM_B'] == 1)]

plt.figure(figsize=(4,4))
set1 = set(campaign_a['CLI_ID'])
set2 = set(campaign_b['CLI_ID'])

venn3([set1, set2], ('Set1', 'Set2'))
plt.show()
Run Code Online (Sandbox Code Playgroud)

但是我收到错误:

文件“C:\Python27\Lib\site-packages\matplotlib_venn_venn3.py”,第 44 行,在compute_venn3_areas 区域 = np.array(np.abs(diagram_areas), float)

TypeError:abs() 的操作数类型错误:“set”

python pandas matplotlib-venn

5
推荐指数
1
解决办法
2万
查看次数