回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我正在构建一个神经网络,并且正在使用OneHotEncoder处理许多独立(分类)变量。我想知道我是用虚拟变量来处理这个问题,还是因为我所有的变量都需要虚拟变量,所以可能有更好的方法。在</p>
<pre><code>df
UserName Token ThreadID ChildEXE
0 TAG TokenElevationTypeDefault (1) 20788 splunk-MonitorNoHandle.exe
1 TAG TokenElevationTypeDefault (1) 19088 splunk-optimize.exe
2 TAG TokenElevationTypeDefault (1) 2840 net.exe
807 User TokenElevationTypeFull (2) 18740 E2CheckFileSync.exe
808 User TokenElevationTypeFull (2) 18740 E2check.exe
809 User TokenElevationTypeFull (2) 18740 E2check.exe
811 Local TokenElevationTypeFull (2) 18740 sc.exe
ParentEXE ChildFilePath ParentFilePath
splunkd.exe C:\Program Files\Splunk\bin C:\Program Files\Splunk\bin 0
splunkd.exe C:\Program Files\Splunk\bin C:\Program Files\Splunk\bin 0
dagent.exe C:\Windows\System32 C:\Program Files\Dagent 0
wscript.exe \Device\Mup\sysvol C:\Windows 1
E2CheckFileSync.exe C:\Util \Device\Mup\sysvol\ 1
cmd.exe C:\Windows\SysWOW64 C:\Util\E2Check 1
cmd.exe C:\Windows C:\Windows\SysWOW64 1
DependentVariable
0
0
0
1
1
1
1
</code></pre>
<p>我导入数据并在自变量上使用LabelEncoder</p>
^{pr2}$
<p>这给了我以下数组:</p>
<pre><code>X
array([[2, 0, 20788, ..., 46, 31, 24],
[2, 0, 19088, ..., 46, 31, 24],
[2, 0, 2840, ..., 27, 42, 15],
...,
[2, 0, 20148, ..., 17, 40, 32],
[2, 0, 20148, ..., 47, 23, 0],
[2, 0, 3176, ..., 48, 42, 32]], dtype=object)
</code></pre>
<p>对于所有的自变量,我必须创建虚拟变量:</p>
<p>我应该使用:</p>
<pre><code>onehotencoder = OneHotEncoder(categorical_features = [0, 1, 2, 3, 4, 5, 6])
X = onehotencoder.fit_transform(X).toarray()
</code></pre>
<p>这给了我:</p>
<pre><code>X
array([[0., 0., 1., ..., 0., 0., 0.],
[0., 0., 1., ..., 0., 0., 0.],
[0., 0., 1., ..., 0., 0., 0.],
...,
[0., 0., 1., ..., 1., 0., 0.],
[0., 0., 1., ..., 0., 0., 0.],
[0., 0., 1., ..., 1., 0., 0.]])
</code></pre>
<p>或者有更好的方法来解决这个问题吗?在</p>