Discretization and concept hierarchy generation中文
时间: 2023-12-29 08:02:14 浏览: 245
离散化和概念层次生成
离散化是一种数据预处理技术,它将连续型的数值数据转化为离散型的数据。离散化可以帮助我们更好地理解和处理数据,例如将连续的年龄数据划分为不同的年龄段,或将连续的收入数据划分为不同的收入水平等级。离散化可以通过等宽分段、等频分段、聚类分析等方法来实现。
概念层次生成是一种数据预处理技术,它通过将属性值进行归类和层次化,从而生成一个概念层次结构。概念层次结构是一种树形结构,它将属性值按照不同的层次进行组织和分类。例如,将产品按照类型、品牌、规格等属性进行层次化组织,可以形成一个概念层次结构。概念层次生成可以通过数据聚类、决策树、关联规则等方法来实现。
离散化和概念层次生成是数据预处理中常用的两种技术。它们可以帮助我们更好地理解和处理数据,从而提高数据挖掘的效率和准确性。
相关问题
Mining Quantitative Associations Techniques can be categorized by how numerical attributes, such as age or salary are treated 1. Static discretization based on predefined concept hierarchies (data cube methods) 2. Dynamic discretization based on data distribution (quantitative rules, e.g., Srikant & Agrawal@SIGMOD’96) 3. Clustering: Distance-based association (e.g., Miller & Yang@SIGMOD’97) • One dimensional clustering then association 4. Deviation: (such as Aumann & Lindell@KDD’99) Gender = female => Wage: mean=$7/hr (overall mean = $9) Z检验(或t检验)翻译解释
这段话讨论了挖掘定量关联的技术,根据如何处理数字属性(如年龄或工资)可以分为以下几种类型:
1. 基于预定义概念层次结构的静态离散化方法(数据立方体方法);
2. 基于数据分布的动态离散化方法(定量规则),例如Srikant & Agrawal在SIGMOD'96上提出的方法;
3. 聚类方法:基于距离的关联方法,例如Miller & Yang在SIGMOD'97上提出的方法,可以先进行一维聚类,然后进行关联;
4. 偏差方法:例如Aumann & Lindell在KDD'99上提出的方法,可以根据性别为女性的人的平均工资和总体平均工资进行比较,使用Z检验(或t检验)来检查两者之间的差异。
其中,Z检验是一种用于检验样本均值与总体均值之间是否存在显著差异的统计方法,适用于样本容量较大的情况;t检验则适用于样本容量较小的情况。
用pythonPrice this barrier option by the Heston stochastic volatility model using Monte Carlo simulation by the time discretization, also plot one sample path which hits the barrier and one path that never hits the barrier.
下面是使用 Python 对 Heston 随机波动率模型进行蒙特卡罗模拟定价障碍期权的示例代码,同时画出一条触碰障碍的样本路径和一条未触碰障碍的样本路径:
```python
import numpy as np
import matplotlib.pyplot as plt
# Heston 随机波动率模型参数
V0 = 0.05
theta = 0.05
kappa = 1.5
sigma = 0.3
rho = -0.3
# 期权参数
S0 = 100
K = 110
r = 0.03
T = 1
H = 120
option_type = 'call'
# 蒙特卡罗模拟参数
N = 10000
dt = 1/250
# 计算障碍期权价格
def barrier_option_price():
# 初始化模拟路径
S = np.zeros((N, T * 250 + 1))
V = np.zeros((N, T * 250 + 1))
S[:, 0] = S0
V[:, 0] = V0
# 生成随机数
Zv = np.random.normal(size=(N, T * 250))
Zs = rho * Zv + np.sqrt(1 - rho**2) * np.random.normal(size=(N, T * 250))
# 模拟路径
for i in range(1, T * 250 + 1):
V[:, i] = np.maximum(V[:, i-1] + kappa * (theta - V[:, i-1]) * dt + sigma * np.sqrt(V[:, i-1] * dt) * Zv[:, i-1], 0)
S[:, i] = S[:, i-1] * np.exp((r - V[:, i-1]/2) * dt + np.sqrt(V[:, i-1] * dt) * Zs[:, i-1])
# 计算到期时是否触碰障碍
hit_barrier = np.any(S[:, 1:] > H, axis=1)
# 计算期望收益
if option_type == 'call':
payoff = np.maximum(S[:, -1] - K, 0)
elif option_type == 'put':
payoff = np.maximum(K - S[:, -1], 0)
else:
raise ValueError('Invalid option type')
# 计算障碍期权价格
price = np.mean(payoff * np.logical_not(hit_barrier))
# 返回结果
return price
# 计算障碍期权价格
price = barrier_option_price()
print('障碍期权价格:', price)
# 绘制一条触碰障碍的样本路径
S = np.zeros(T * 250 + 1)
V = np.zeros(T * 250 + 1)
S[0] = S0
V[0] = V0
for i in range(1, T * 250 + 1):
V[i] = np.maximum(V[i-1] + kappa * (theta - V[i-1]) * dt + sigma * np.sqrt(V[i-1] * dt) * np.random.normal(), 0)
S[i] = S[i-1] * np.exp((r - V[i-1]/2) * dt + np.sqrt(V[i-1] * dt) * np.random.normal())
if S[i] > H:
break
plt.plot(np.arange(T * 250 + 1), S)
plt.title('Sample Path Hits Barrier')
plt.xlabel('Time')
plt.ylabel('Stock Price')
plt.show()
# 绘制一条未触碰障碍的样本路径
S = np.zeros(T * 250 + 1)
V = np.zeros(T * 250 + 1)
S[0] = S0
V[0] = V0
for i in range(1, T * 250 + 1):
V[i] = np.maximum(V[i-1] + kappa * (theta - V[i-1]) * dt + sigma * np.sqrt(V[i-1] * dt) * np.random.normal(), 0)
S[i] = S[i-1] * np.exp((r - V[i-1]/2) * dt + np.sqrt(V[i-1] * dt) * np.random.normal())
plt.plot(np.arange(T * 250 + 1), S)
plt.title('Sample Path Does Not Hit Barrier')
plt.xlabel('Time')
plt.ylabel('Stock Price')
plt.show()
```
需要注意的是,这里使用的是欧式障碍期权,即只有到期时才判断是否触碰障碍,因此计算结果可能会存在一定的误差。如果需要更准确的定价,可以使用美式障碍期权,即在到期前任意时刻都可能触碰障碍。
阅读全文