database - 如何对标称属性进行一次热编码以输出为完整的二进制文件?
问题描述
我正在尝试运行一个 UNIX 脚本,将我的数据库拆分为训练、测试和验证拆分。我遇到的主要问题是我试图对我的标称属性进行热编码,以便在运行脚本时它们都是二进制代码。
输入:
@attribute age numeric
@attribute sex {female,male}
@attribute cp {typ_angina,asympt,non_anginal,atyp_angina}
@attribute trestbps numeric
@attribute chol numeric
@attribute fbs {t,f}
@attribute restecg {left_vent_hyper,normal,st_t_wave_abnormality}
@attribute thalach numeric
@attribute exang {no,yes}
@attribute oldpeak numeric
@attribute slope {up,flat,down}
@attribute ca numeric
@attribute thal {fixed_defect,normal,reversable_defect}
@attribute num {<50,>50_1,>50_2,>50_3,>50_4}
这是我一直在尝试的:
tail -n +19 ~file_location |\
fgrep -v "%" | shuf |
sed -e"s/,/ /g" > temp1.txt
# The training file
/bin/echo "SNNS pattern definition file V3.2" >heart-v-train.pat
/bin/echo "generated at Mon Apr 25 15:58:23 1994" >>heart-v-train.pat
/bin/echo "" >>heart-v-train.pat
/bin/echo "" >>heart-v-train.pat
/bin/echo "No. of patterns : 364" >>heart-v-train.pat
/bin/echo "No. of input units : 25" >>heart-v-train.pat
/bin/echo "No. of output units : 2" >>heart-v-train.pat
head -$TRAIN temp1.txt |
sed -e"s/f/1 0/g" |
sed -e"s/m/0 1/g" |
sed -e"s/typ_angina/1 0 0 0/g" |
sed -e"s/asympt/0 1 0 0/g" |
sed -e"s/non_aginal/0 0 1 0/g" |
sed -e"s/atyp_angina/0 0 0 1/g" |
sed -e"s/t/1 0/g" |
sed -e"s/f/0 1/g" |
sed -e"s/left_vent_hyper/1 0 0/g" |
sed -e"s/normal/0 1 0/g" |
sed -e"s/st_t_wave_abnormality/0 0 1/g" |
sed -e"s/no/1 0/g" |
sed -e"s/yes/0 1/g" |
sed -e"s/up/1 0 0/g" |
sed -e"s/flat/0 1 0/g" |
sed -e"s/down/0 0 1/g" |
sed -e"s/fixed_defect/1 0 0/g" |
sed -e"s/normal/0 1 0/g" |
sed -e"s/reversable_defect/0 0 1/g" |
sed -e"s/<50/1 0/g" |
sed -e"s/>50_1/0 1/g" >>heart-v-train.pat
我的输出变为:
0.416667 1 0e0 1ale asy0 1p1 0 0.339623 0.326484 1 0 1 0r0 1al 0.70229 1 0 0 1 0 0 0 1 0r0 1al 1 0
0.208333 1 0e0 1ale 1 0n_anginal 0.415094 0.214612 1 0 1 0r0 1al 0.618321 1 0 0 1 0la1 0 0 1 0r0 1al 1 0
0.75 1 0e0 1ale asy0 1p1 0 0.528302 0.226027 1 0 le1 01 0_ven1
有些单词的字母会被转换,但有些则不会。我的知识是子类的每个属性数量决定了我们如何热编码,例如属性中的 4 个值将是 0 0 0 1 、 0 0 1 0 等。
任何帮助都会很棒,谢谢。
解决方案
推荐阅读
- aurelia - 为 aurelia-slickgrid 导入 excel-export
- javascript - useState 不适用于材料 ui 功能组件(firebase)
- php - 在 laravel 的引导模式中动态显示数据
- python - 如何在 discord.py cogs 中使用 ban_error 和 kick_error?
- reactjs - 限制孩子的类型
- heroku - 如何在 heroku 上启用 gatsbyjs 客户端专用路由
- twilio - 通过 SIP 将物理 IP 电话与 Twilio 链接
- c++ - 链接两个文件
- javascript - 外部 Javascript 不起作用,它被 Atom 显示为灰色。它们在同一个文件夹中,它只是 Atom 还是我只是愚蠢?
- c# - 在这种情况下不允许异步操作