首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用点列列表训练模型

用点列列表训练模型
EN

Stack Overflow用户
提问于 2021-06-15 12:02:36
回答 1查看 113关注 0票数 1

我想按裂缝的深度分类。为此,我将以下功能存储在数据帧中:

代码语言:javascript
运行
复制
WindowsDf = pd.DataFrame(dataForWindowsDf, columns=['IsCrack', 'CheckTypeEncode', 'DepthCrack',
                                                    'WindowOfInterest'])
#dataForWindowsDf is a list which iteratively built from csv files.
#Windows data frame taking this list and build a data frame from it.

因此,我的目标列是'DepthCrack‘,其他列是特征向量的一部分。WindowOfInterest是一列2d列表--点列表--一个表示所做测试的图表(基于从表面返回的电磁波作为时间的函数):

代码语言:javascript
运行
复制
[[0.9561600000000001, 0.10913097635410397], [0.95621,0.1100000]...]

我面临的问题是如何训练一个模型--使用一列2d列表(我试图按原样推进它,但它没有成功)?你建议如何处理这个问题?

我考虑从二维列表中提取特征--得到一维特征(积分等)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-16 12:22:18

您可以将这个特性一分为二,就像WindowOfInterest可以变成:

WindowOfInterest_x1WindowOfInterest_x2

例如,来自您的DataFrame

代码语言:javascript
运行
复制
>>> import pandas as pd

>>> df = pd.DataFrame({'IsCrack': [1, 1, 1, 1, 1], 
...                    'CheckTypeEncode': [0, 1, 0, 0, 0], 
...                    'DepthCrack': [0.4, 0.2, 1.4, 0.7, 0.1], 
...                    'WindowOfInterest': [[0.9561600000000001, 0.10913097635410397], [0.95621,0.1100000], [0.459561, 0.635410397], [0.4495621,0.32], [0.621,0.2432]]}, 
...                   index = [0, 1, 2, 3, 4])
>>> df
    IsCrack CheckTypeEncode DepthCrack  WindowOfInterest
0   1       0               0.4         [0.9561600000000001, 0.10913097635410397]
1   1       1               0.2         [0.95621, 0.11]
2   1       0               1.4         [0.459561, 0.635410397]
3   1       0               0.7         [0.4495621, 0.32]
4   1       0               0.1         [0.621, 0.2432]

我们可以像这样split list

代码语言:javascript
运行
复制
>>> df[['WindowOfInterest_x1','WindowOfInterest_x2']] = pd.DataFrame(df['WindowOfInterest'].tolist(), index=df.index)
>>> df

        IsCrack  CheckTypeEncode    DepthCrack          WindowOfInterest                           WindowOfInterest_x1  WindowOfInterest_x2
0       1        0                  0.4                 [0.9561600000000001, 0.10913097635410397]  0.956160             0.109131
1       1        1                  0.2                 [0.95621, 0.11]                            0.956210             0.110000
2       1        0                  1.4                 [0.459561, 0.635410397]                    0.459561             0.635410
3       1        0                  0.7                 [0.4495621, 0.32]                          0.449562             0.320000
4       1        0                  0.1                 [0.621, 0.2432]                            0.621000             0.243200

要完成此操作,我们可以drop WindowOfInterest列:

代码语言:javascript
运行
复制
>>> df = df.drop(['WindowOfInterest'], axis=1)
>>> df
    IsCrack CheckTypeEncode DepthCrack  WindowOfInterest_x1 WindowOfInterest_x2
0   1       0               0.4         0.956160            0.109131
1   1       1               0.2         0.956210            0.110000
2   1       0               1.4         0.459561            0.635410
3   1       0               0.7         0.449562            0.320000
4   1       0               0.1         0.621000            0.243200

现在,您可以将WindowOfInterest_x1WindowOfInterest_x2作为模型的特性传递给您。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67985892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档