手机端网站html好看的单页模板,电子邀请函制作免费模板,网站被刷流量怎么办,如何进行主题网站的资源建设【说明】文章内容来自《机器学习——基于sklearn》#xff0c;用于学习记录。若有争议联系删除。
1、案例一
决策树用于是否赖床问题。
采用决策树进行分类#xff0c;要经过数据采集、特征向量化、模型训练和决策树可视化4个步骤。
赖床数据链接#xff1a;https://pan…【说明】文章内容来自《机器学习——基于sklearn》用于学习记录。若有争议联系删除。
1、案例一
决策树用于是否赖床问题。
采用决策树进行分类要经过数据采集、特征向量化、模型训练和决策树可视化4个步骤。
赖床数据链接https://pan.baidu.com/s/1mi7Is8YyGVbtrkxnHytlVA 提取码cndl
import pandas as pd
from sklearn.feature_extraction import DictVectorizer
from sklearn import tree
from sklearn.model_selection import train_test_split#pandas读取CSV文件header None表示不将首行作为列标签
data pd.read_csv(laichuang.csv, header None)#指定列
data.columns [season, after 8:00, wind, lay bed]
vec DictVectorizer(sparse False)#对字典进行向量化FALSE表示不产生稀疏矩阵
feature data[[season, after 8:00, wind]]
x_train vec.fit_transform(feature.to_dict(records))
#打印各个变量
print(show feature\n, feature)
print(show vector\n, x_train)
print(show vector name\n, vec.get_feature_names_out())
【运行结果】 #划分数据集
x_trian, x_test, y_train, y_test train_test_split(x_train, feature, test_size 0.3)
#训练决策树
clf tree.DecisionTreeClassifier(criterion gini)
clf.fit(x_train, feature)
#决策树可视化保存DOT文件
with open(d:lay.dot, w) as f:f tree.export_graphviz(clf, out_file f, feature_names vec.get_feature_names_out())
【运行结果】 2、决策树可视化
2.1 Graphviz Graphviz是一款来自ATT Research实验窒和Lucent Bell 实验室的开源的可视化图形工具可以绘制结构化的图形网络支持多种格式输出。Graphviz将 Python 代码生成的dot 脚本解析为树状图。 Graphviz的安装及配置步骤如下: 1:访问网址http://www.graphviz.org/,下载Graphviz 软件安装包graphviz 2双击该安装包,运行安装程序,将Graphviz安装到C盘选择添加到环境变量中。 3:使用pip安装 graphviz命令如下: pip install graphviz
2.2 DOT DOT是一种文本图形描述语言,用于描述图表的组成元素及其关系。DOT 文件通常以.gv或.dot为扩展名。DOT 与 Graphviz的关系可以类比 HTML 和浏览器的关系。打开.cmd窗口进人out.dot所在目录此处为D盘根目录运行dot命令如图所示。 dot out.dot - T paf -o out.pdf 打开PDF文件显示。 3、案例二
波士顿房价
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.tree import DecisionTreeRegressor
from sklearn.metrics import r2_score, mean_squared_error, mean_absolute_error
import pandas as pd
import numpy as npdata_url http://lib.stat.cmu.edu/datasets/boston
raw_df pd.read_csv(data_url, sep\s, skiprows22, headerNone)
data np.hstack([raw_df.values[::2, :], raw_df.values[1::2, :2]])
target raw_df.values[1::2, 2]
x data
y target
x_train, x_test, y_train, y_test train_test_split(x, y, test_size 0.25, random_state 33)
#特征预处理对训练数据和测试数据标准化
ss_x StandardScaler()
x_train ss_x.fit_transform(x_train)
x_test ss_x.transform(x_test)
ss_y StandardScaler()
y_train ss_y.fit_transform(y_train.reshape(-1,1))
y_test ss_y.transform(y_test.reshape(-1,1))
#使用回归树进行训练和预测初始化KNN回归模型使用平均回归算法进行预测
dtr DecisionTreeRegressor()
#训练
dtr.fit(x_train, y_train)
#预测保存预测结果
dtr_y_predict dtr.predict(x_test)
#模型评估
print(回归树的默认评估值为, dtr.score(x_test, y_test))
print(回归树的R_squared值为, r2_score(y_test, dtr_y_predict))
# print(回归树的均方误差为,mean_squared_error(ss_y.inverse_transform(y_test),
# ss_y.inverse_transform(dtr_y_predict)))
# print(回归树的平均绝对误差为, mean_absolute_error(ss_y.inverse_transform(y_test),
# ss_y.inverse_transform(dtr_y_predict)))
【运行结果】