---
title: 参数包
description: "| param | 描述 | 输入/输出 | 类型 | 取值范围 | 默认值 |"
url: https://www.hikunpeng.com/document/detail/zh/kunpengaccel/storage/ksml/kunpengksml_36_0037.html
sourcePath: /source/zh/kunpengaccel/storage/ksml/kunpengksml_36_0037.html
indexId: defb15400a50c26a0714415d9d05082d5d543406cadd568d90cc04b92c25ae1a61
---
# 参数包

| param | 描述 | 输入/输出 | 类型 | 取值范围 | 默认值 |
| --- | --- | --- | --- | --- | --- |
| is\_diff\_feature | 特征工程参数, 是否增加差分特征 | 输入 | bool | True/False | True |
| is\_diff\_roll\_feature | 特征工程参数, 是否增加差分滚动周期求和特征、长周期差分特征、 周期内差分最大/最小值特征 | 输入 | bool | True/False | True |
| is\_min\_max\_feature | 特征工程参数, 是否增加周期内原始值最大/最小值特征 | 输入 | bool | True/False | True |
| long\_period | 特征工程参数, 差分滚动计算的周期长度 | 输入 | int | [1 ~ sys.maxsize] | 14 |
| alert\_threshold | 故障判断参数, 当sn报警次数超过此阈值时认定为故障盘 | 输入 | int | [1 ~ ∞) | 5 |
| data\_tail | 数据预处理参数, 对每个sn只保留末尾data\_tail条数据进行训练 | 输入 | int | [1 ~ ∞) | 10 |
| model | 源数据参数，SSD SMART信息不同厂家之间差异较大，需要指定厂家确定使用的SMART列信息 | 输入 | String | ['DEFAULT', 'MA1', 'MA2', 'MB1', 'MB2', 'MC1', 'MC2', ] | 'DEFAULT' |
| log\_file | 日志文件路径 | 输入 | String | \- | /var/log/smartmaintainkit.log |


1. Python中sys.maxsize代表int类型的最大值。
2. 仅当“is_diff_feature”为True时，“is_diff_roll_sum_feature”参数才起作用，“is_diff_feature”为False时，“is_diff_roll_sum_feature”无意义，不产生任何影响。
参数使用举例如下。

  a. 默认调用方式需要执行以下命令。
    1 fault_train(r'fault_test.data', r'model.pkl')

  b. 执行以下命令修改日志路径到temp.log。
    1 2 param = {'log_file': 'temp.log'} fault_train(r'fault_test.data', r'model.pkl', param)


**表1 model参数说明：**

| SMART ID | MA1 | MA2 | MB1 | MB2 | MC1 | MC2 |
| --- | --- | --- | --- | --- | --- | --- |
| 1 | √ | \- | \- | \- | √ | √ |
| 5 | √ | √ | √ | √ | √ | √ |
| 9 | √ | √ | √ | √ | √ | √ |
| 12 | √ | √ | √ | √ | √ | √ |
| 170 | \- | √ | \- | \- | √ | √ |
| 171 | √ | √ | \- | \- | √ | √ |
| 172 | √ | √ | \- | \- | √ | √ |
| 173 | √ | \- | \- | \- | √ | √ |
| 174 | √ | √ | \- | \- | √ | √ |
| 175 | √ | √ | \- | \- | \- | \- |
| 177 | \- | \- | √ | √ | \- | \- |
| 180 | √ | \- | √ | √ | √ | √ |
| 181 | \- | \- | √ | √ | \- | \- |
| 182 | \- | \- | √ | √ | \- | \- |
| 183 |  | √ | √ | √ | √ | √ |
| 184 | √ | √ | √ | √ | √ | √ |
| 187 | √ | √ | √ | √ | √ | √ |
| 188 | √ | \- | \- | \- | √ | √ |
| 190 | √ | √ | √ | √ | \- | \- |
| 192 | \- | √ | \- | \- | \- | \- |
| 194 | √ | √ | √ | \- | √ | √ |
| 195 | √ | \- | √ | √ | √ | √ |
| 196 | √ | \- | \- | \- | √ | √ |
| 197 | √ | √ | √ | √ | \- | \- |
| 198 | √ | \- | \- | \- | √ | √ |
| 199 | √ | √ | √ | √ | √ | √ |
| 206 | \- | \- | \- | \- | √ | √ |
| 232 | \- | √ | \- | \- | \- | \- |
| 233 | \- | √ | \- | \- | \- | \- |
| 241 | \- | √ | √ | √ | \- | \- |
| 242 | \- | √ | √ | √ | \- | \- |
| 244 | \- | \- | √ | √ | \- | \- |
| 245 | \- | \- | √ | √ | \- | \- |
| 备注 | √：模型需要的数据集中需要包含的SMART ID。 | √：模型需要的数据集中需要包含的SMART ID。 | √：模型需要的数据集中需要包含的SMART ID。 | √：模型需要的数据集中需要包含的SMART ID。 | √：模型需要的数据集中需要包含的SMART ID。 | √：模型需要的数据集中需要包含的SMART ID。 |


'DEFAULT'参数为上表每个模型所含所有SMART ID的集合。

以下提供一个便于快速检测一个数据集中适用各种模型的数据量。

```
import pandas as pd
smart_id_dict = {
    'MA1': [1, 5, 9, 12, 171, 172, 173, 174, 175, 180, 184, 187, 188, 190, 194, 195, 196, 197, 198, 199],  # MA1
    'MA2': [5, 9, 12, 170, 171, 172, 174, 183, 184, 187, 190, 192, 194, 197, 199, 233, 241, 242, 175, 232],  # MA2
    'MB1': [5, 9, 12, 177, 180, 181, 182, 183, 184, 187, 190, 194, 195, 197, 199, 241, 242, 244, 245],  # MB1
    'MB2': [5, 9, 12, 177, 180, 181, 182, 183, 184, 187, 190, 195, 197, 199, 241, 242, 244, 245],  # MB2
    'MC1': [1, 5, 9, 12, 170, 171, 172, 173, 174, 180, 183, 184, 187, 188, 194, 195, 196, 198, 199, 206],  # MC1
    'MC2': [1, 5, 9, 12, 170, 171, 172, 173, 174, 180, 183, 184, 187, 188, 194, 195, 196, 198, 199, 206]  # MC2
}
smart_id_dict['DEFAULT'] = list(set(smart_id_dict['MA1']).intersection(
    smart_id_dict['MA2'], smart_id_dict['MB1'], smart_id_dict['MB2'], smart_id_dict['MC1'], smart_id_dict['MC2']))
data = pd.read_csv(r'ssd_fault_data.csv', low_memory=False)  # 在此处填入待检测数据文件路径
for key, value in smart_id_dict.items():
    feature_smart_col = [f'ssdSmart.smart_{value}_value' for value in value] + \
                        [f'ssdSmart.smart_{value}_raw_value' for value in value]
    feature_col = ['disk_sn', 'timestamp', 'fault'] + feature_smart_col

    try:
        count = data[feature_col].dropna(axis=0, subset=feature_col).shape[0]
    except KeyError:
        count = 0

    print(key + ': ' + str(count))
```

输出数据集ssd_fault_data.csv中适用各种模型的数据量。

```
MA1: 15068
MA2: 80597
MB1: 39963
MB2: 83407
MC1: 191758
MC2: 191758
DEFAULT: 370840
```


#### 默认推荐的参数

MA1

```
param = {'model': 'MA1'}
fault_train(r'ssd_MA1_fault_train.csv', r'model.pkl', param)
```

MA2

```
param = {'model': 'MA2'}
fault_train(r'ssd_MA2_fault_train.csv', r'model.pkl', param)
```

MB1

```
param = {'model': 'MB1'}
fault_train(r'ssd_MB1_fault_train.csv', r'model.pkl', param)
```

MB2

```
param = {'model': 'MB2'}
fault_train(r'ssd_MB2_fault_train.csv', r'model.pkl', param)
```

MC1

```
param ={'model': 'MC1', 'long_period': 100}
fault_train(r'ssd_MC1_fault_train.csv', r'model.pkl', param)
```

MC2

```
param = {'model': 'MC2', 'long_period': 100}
fault_train(r'ssd_MC2_fault_train.csv', r'model.pkl', param)
```
