小编try*_*uff的帖子

Scipy.optimize Inequality Constraint - 不平等的哪一方被考虑?

我正在使用scipy.optimize模块来查找最小化输出的最佳输入权重.从我看到的例子中,我们用单侧方程定义约束; 然后我们创建一个'不等式'类型的变量.我的问题是优化包如何知道我的约束中的变量之和是否需要小于1或大于1?

...

def constraint1(x):
    return x[0]+x[1]+x[2]+x[3]-1
Run Code Online (Sandbox Code Playgroud)

....

con1 = {'type': 'ineq', 'fun': constraint1}
Run Code Online (Sandbox Code Playgroud)

链接到我在我的例子中使用的完整解决方案:http: //apmonitor.com/che263/index.php/Main/PythonOptimization

谢谢.

python minimize scipy

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

不明白如何实现分类特征的嵌入

从我在网上找到的各种例子来看,我仍然不太明白如何从我的分类数据为神经网络模型创建嵌入层,尤其是当我混合了数值和分类数据时。例如,取如下数据集:

numerical_df = pd.DataFrame(np.random.randint(0,100,size=(100, 3)), columns=['num_1','num_2','num_3'])

cat_df = pd.DataFrame(np.random.randint(0,5,size=(100, 3)), columns=['cat_1','cat_2','cat_3'])

df = numerical_df.join(cat_df)
Run Code Online (Sandbox Code Playgroud)

我想为我的分类数据创建嵌入层并将其与我的数值数据结合使用,但从我看到的所有示例中,它几乎就像模型只是通过嵌入层过滤整个数据集,这令人困惑。

作为我的困惑的一个例子,下面是 Keras 关于顺序模型的文档的一个例子。就好像他们只是将嵌入步骤添加为第一层并将其拟合到整个 x_train 中。

from keras.models import Sequential
from keras.layers import Dense, Dropout
from keras.layers import Embedding
from keras.layers import LSTM

max_features = 1024

model = Sequential()
model.add(Embedding(max_features, output_dim=256))
model.add(LSTM(128))
model.add(Dropout(0.5))
model.add(Dense(1, activation='sigmoid'))

model.compile(loss='binary_crossentropy',
              optimizer='rmsprop',
              metrics=['accuracy'])

model.fit(x_train, y_train, batch_size=16, epochs=10)
score = model.evaluate(x_test, y_test, batch_size=16)
Run Code Online (Sandbox Code Playgroud)

因此,最终在创建嵌入矩阵时,是否每个分类变量都有一个......所有分类变量都有一个?我如何将其与不需要嵌入矩阵的其他数据进行协调?

python neural-network keras data-science

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

当 Sparse = True 时 pd.get_dummies 数据帧的大小与 Sparse = False 时的大小相同

我有一个包含多个字符串列的数据框,我想将其转换为分类数据,以便我可以运行一些模型并从中提取重要特征。

然而,由于唯一值的数量,独热编码数据会扩展为大量列,从而导致性能问题。

为了解决这个问题,我正在尝试使用Sparse = Trueget_dummies 中的参数。

test1 = pd.get_dummies(X.loc[:,['col1','col2','col3','col4']].head(10000))
test2 = pd.get_dummies(X.loc[:,['col1','col2','col3','col4']].head(10000),sparse = True)
Run Code Online (Sandbox Code Playgroud)

但是,当我检查两个比较对象的信息时,它们占用相同的内存量。看起来并没有Sparse = True占用更少的空间。这是为什么?

test1.info()

<class 'pandas.core.frame.DataFrame'>
Int64Index: 10000 entries, 537293 to 752152
Columns: 2253 entries,...
dtypes: uint8(2253)
memory usage: 21.6 MB

test2.info()
<class 'pandas.core.sparse.frame.SparseDataFrame'>
Int64Index: 10000 entries, 537293 to 752152
Columns: 2253 entries, ...
dtypes: uint8(2253)
memory usage: 21.9 MB
Run Code Online (Sandbox Code Playgroud)

python pandas scikit-learn sklearn-pandas

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

将数据框数据透视折叠为单行

我有一个元组列表,需要将其转换为单个数据框行,其中第一个元组项转换为列,第二个元组项转换为对应的值。这是我尝试过的:

数据:

[(0, 0.52776772063535005),
 (4, 0.18798097301734626),
 (6, 0.09831844955142259),
 (5, 0.059519666448517437),
 (3, 0.054459995937603152),
 (9, 0.052905323520468818)]
Run Code Online (Sandbox Code Playgroud)

将此数据视为test,我尝试转换为数据框,然后进行数据透视,但是我无法将数据弄平为一条记录。

test = pd.DataFrame.from_records(scores[0])
test.columns=['t1','t2']
   t1        t2
0   0  0.527768
1   4  0.187981
2   6  0.098318
3   5  0.059520
4   3  0.054460
5   9  0.052905
Run Code Online (Sandbox Code Playgroud)

test2 = test.pivot(index=None, columns='t1',values='t2')

t1         0        3         4        5         6         9
0   0.527768      NaN       NaN      NaN       NaN       NaN
1        NaN      NaN  0.187981      NaN       NaN       NaN
2        NaN      NaN       NaN      NaN  0.098318       NaN
3        NaN      NaN       NaN  0.05952       NaN       NaN …
Run Code Online (Sandbox Code Playgroud)

python pivot pandas

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