既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
if name == ‘__main__’:
input_file = ‘nursery.txt’
# 读取数据
schooling_data = []
y = []
count = 0
with open(input_file, 'r') as f:
for line in f.readlines():
data = line[:-1].split(',')
schooling_data.append(data)
schooling_data = np.array(schooling_data)
# 对数据进行标记编码
label_encoder = []
X_encoded = np.empty(schooling_data.shape)
for i,item in enumerate(schooling_data[0]):
label_encoder.append(preprocessing.LabelEncoder())
X_encoded[:, i] = label_encoder[-1].fit_transform(schooling_data[:, i])
X = X_encoded[:, :-1].astype(int)
y = X_encoded[:, -1].astype(int)
# 将数据分成训练数据集合测试数据集
num_training = int(0.7\*len(X))
X_train, y_train = X[:num_training], y[:num_training]
X_test, y_test = X[num_training:], y[num_training:]
# 拟合一个决策树回归模型,限制最大深度为4
dt_regressor = DecisionTreeRegressor(max_depth=4)
dt_regressor.fit(X_train, y_train)
# 再用AdaBoost算法的决策树回归模型进行拟合
ab_regressor = AdaBoostRegressor(DecisionTreeRegressor(max_depth=4),
n_estimators=400, random_state=7)
# 第一个参数是基分类器,n\_estimators 基分类器循环次数,random\_state随机种子设置
ab_regressor.fit(X_train, y_train)
# 将训练数据代入普通的决策树
y_pred_dt = dt_regressor.predict(X_test)
# 预测结果暂时以数字形式保存在这个列表中,不一定是整数,可以通过后期设置条件,将其转换成整数。
# 最后反标记编码,输出想要的字符串形式。
y_pred_dt_string = []
print(y_pred_dt.shape)
for i in range(3888 - 1):
if (y_pred_dt[i] >= 1 and y_pred_dt[i] <= 1.4):
y_pred_dt_string.append('not\_recom')
if (y_pred_dt[i] > 1.4 and y_pred_dt[i] <= 2.4):
y_pred_dt_string.append('priority')
if (y_pred_dt[i] > 2.4 and y_pred_dt[i] <= 3.4):
y_pred_dt_string.append('recommend')
if (y_pred_dt[i] > 3.4 and y_pred_dt[i] <= 4.4):
y_pred_dt_string.append('spec\_prior')
if (y_pred_dt[i] > 4.4 and y_pred_dt[i] <= 5):
y_pred_dt_string.append('very\_recom')
# 将训练数据代入AdaBoost决策树
y_pred_ab = ab_regressor.predict(X_test)
# 评价决策树分类器的训练效果
y_pred_dt = dt_regressor.predict(X_test)
mse = mean_squared_error(y_test, y_pred_dt)
evs = explained_variance_score(y_test, y_pred_dt)
print("\n#### Decision Tree 性能表现 ####")
print("Mean squared error(均方误差) =", round(mse, 2))
print("Explained variance score(可释方差分数) =", round(evs, 2))
# 评价AdaBoost算法的改善效果
y_pred_ab = ab_regressor.predict(X_test)
mse = mean_squared_error(y_test, y_pred_ab)
evs = explained_variance_score(y_test, y_pred_ab)
print("\n#### AdaBoost 性能表现 ####")
print("Mean squared error(均方误差) =", round(mse, 2))
print("Explained variance score (可释方差分数)=", round(evs, 2))
## 调试截图
(1) 读取到的数据截图,放到了schooling\_data这个numpy数组中
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201216211409619.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzY4OTgwNQ==,size_16,color_FFFFFF,t_70)
(2) 对数据进行标记编码,发现原来的字符串全都变成了数字
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201216211440925.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201216211445986.png)
(3) 训练好决策树后,用测试集得到的预测结果如下。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201216211502332.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzY4OTgwNQ==,size_16,color_FFFFFF,t_70)
其中,每个数字都映射到对应的推荐程度,观察输出的结果,在[1,2,3,4,5]范围内,正好对应四种推荐程度(not\_recom, priority, recommend, spec\_prior, very\_recom)。
(4) 将测试结果反标记编码,转换为原来的字符串形式
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201216211526424.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzY4OTgwNQ==,size_16,color_FFFFFF,t_70)
(5) 评价决策树分类器的测试效果
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201216211537231.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzY4OTgwNQ==,size_16,color_FFFFFF,t_70)
![img](https://img-blog.csdnimg.cn/img_convert/3f654fdf9d2a57f5a194b10e2723a007.png)
![img](https://img-blog.csdnimg.cn/img_convert/6ab7de4ada1a475844980d5991c3b7e5.png)
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化的资料的朋友,可以戳这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
613a03fab5e56a57acb)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**