2017-4-17

上周学习情况:

(1)确定攻击主要来自4个方面,并将会对这几方面做实验:

  • 拒绝服务,如SYN洪水;
  • R2L:从远程计算机上未经授权的访问,例如:猜测密码;
  • U2R:未经授权的访问本地超级用户(root)的权限,例如,各种“缓冲区溢出”攻击;
  • 探测:监视和其他探测,例如,端口扫描。

(2)下载了kdd cpu99数据集,打算对这个数据做实验

(3)打算使用WSVM:加权支持向量机实验,并对惩罚参数和核函数稍作改进,作为论文的算法。


《不确定性支持向量机算法及应用》

第一章 最优理论基础

1.1最优化问题

1.1.1

{min,3n+1,f(x)s.t xS
  1. f(x) –>目标函数
  1. x –>决策变量
  1. S –>约束条件

1.1.2

线性规划

1.1.3

凸最优化

1.2最优性条件

KKT条件

1.3最优化算法

线性逼近法
    线性约束条件下的线性逼近法
    非线性约束条件下的线性逼近法
可行方向法
投影梯度法
罚函数法



第二章 不确定性数学问题

2.1 模糊数学

隶属函数
隶属程度
过渡点

2.2 粗糙集 rough sets
2.3 未确知理论



第三章 统计学习理论与支持向量机

3.1 统计学习理论
3.2 支持向量机分类



2017-4-28

start>>
选定训练集合测试集 >> 规范化 >> 特征提取 >>
利用训练集训练分类器得到model >>
利用model对测试集进行预测 >>
分类器性能评估[准确率高低]


mex -setup <或mex -v name.cpp看具体>
make


对于数据.mat需要先加载进来
load heart_scale.mat (有两个,一个数据矩阵heart_scale_inst,一个标签矩阵heart_scale_label)

①训练集:train = heart_scale_inst;
②训练集标签:train_label = heart_scale_label;
③④测试集,测试集标签暂定和训练集中一样
test = train;
test_label = train_label;

生成model
model = svmtrain(train_label,train,’-c 2 -g 0.01’);
预测
[predict_label,accuracy,decison_value] = svmpredict(test_label,test,model,’-b 0’);
结果显示:
Accuracy = 85.1852% (230/270) (classification)


实验2:wine

wine_SVM.m
随机分训练集 测试集
Accuracy = 90.9091% (80/88) (classification)
这里写图片描述

实验2.2:wine 规范化

加上规范化翻书,不是必须的

实验3:wine 三分类

svm2.m

<think> 根据用户需求,我们需要生成2017年11月和12月的自然日期,分别存储在列表L1和L2中。日期格式为"2017-11-01"这样的10位字符串。 注意:11月有30天,12月有31天。 我们可以使用循环来生成这些日期,并使用字符串的格式化来确保日期的格式正确(例如,个位数的日子前面补0)。 步骤: 1. 初始化两个空列表L1和L22. 使用for循环生成11月的日期(1到30日),每个日期格式化为"2017-11-%02d",然后添加到L1。 3. 使用for循环生成12月的日期(1到31日),每个日期格式化为"2017-12-%02d",然后添加到L2。 注意:%02d可以确保当数字为个位数时前面补0,形成两位数的字符串。 我们将按照上述步骤完成return_values函数。 </think> # 日期列表生成实现 根据需求,我将为您完成`return_values`函数的编写,生成2017年11月和12月的所有自然日期。[^1] ## 完整代码实现 ```python def return_values(): L1 = [] # 存储2017年11月的日期 L2 = [] # 存储2017年12月的日期 # 生成11月日期 (30天) for day in range(1, 31): # 格式化日期为"2017-11-01"格式 date_str = "2017-11-{:02d}".format(day) L1.append(date_str) # 生成12月日期 (31天) for day in range(1, 32): date_str = "2017-12-{:02d}".format(day) L2.append(date_str) return L1, L2 # 测试函数 nov_dates, dec_dates = return_values() # 输出前5个和后5个日期作为验证 print("2017年11月日期示例:", nov_dates[:5], "...", nov_dates[-5:]) print("2017年12月日期示例:", dec_dates[:5], "...", dec_dates[-5:]) ``` ## 代码解析 1. **日期格式处理**: - 使用`"{:02d}"`格式确保单数日期前补零 - 11月格式:`"2017-11-{:02d}"` - 12月格式:`"2017-12-{:02d}"` 2. **日期范围**: - 11月:使用`range(1, 31)`生成1-30日 - 12月:使用`range(1, 32)`生成1-31日 3. **列表操作**:[^2] - 使用`append()`方法将日期字符串添加到列表 - 返回包含两个列表的元组`(L1, L2)` ## 输出验证 执行代码后,输出结果应为: ``` 2017年11月日期示例: ['2017-11-01', '2017-11-02', '2017-11-03', '2017-11-04', '2017-11-05'] ... ['2017-11-26', '2017-11-27', '2017-11-28', '2017-11-29', '2017-11-30'] 2017年12月日期示例: ['2017-12-01', '2017-12-02', '2017-12-03', '2017-12-04', '2017-12-05'] ... ['2017-12-27', '2017-12-28', '2017-12-29', '2017-12-30', '2017-12-31'] ``` ## 相关问题 1. **如何处理不同月份天数差异?** 11月固定30天,12月固定31天。对于天数变化的月份(如2月),需考虑闰年问题,可使用`calendar.monthrange()`判断天数。[^3] 2. **日期格式化的替代方法有哪些?** 除`format()`外,还可使用f-string(Python 3.6+):`f"2017-11-{day:02d}"`或`str.zfill()`:`"2017-11-"+str(day).zfill(2)`。[^4] 3. **如何批量生成多个月份的日期?** 可封装函数,接受年份和月份作为参数: ```python def generate_month(year, month): import calendar _, num_days = calendar.monthrange(year, month) return [f"{year}-{month:02d}-{day:02d}" for day in range(1, num_days+1)] ``` 4. **日期列表如何高效存储和处理?** 对于大量日期数据,建议使用`pandas`的`date_range`: ```python import pandas as pd nov_dates = pd.date_range('2017-11-01', '2017-11-30').strftime('%Y-%m-%d').tolist() ``` 5. **字符串格式化中`{:02d}`的具体含义是什么?** 该格式表示将整数转换为至少2位宽度,不足时左侧补零。其中`:`后第一部分`0`表示填充字符,`2`表示最小宽度,`d`表示十进制整数。[^4]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值