发布时间:2023-12-29 09:00
知识梳理不易,请尊重劳动成果,文章仅发布在CSDN网站上,在其他网站看到该博文均属于未经作者授权的恶意爬取信息
在进行逻辑回归分类的过程中已经有使用过iris数据集,这里直接加载数据,并进行字段名称的修改。
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
sns.set(color_codes=True)
%matplotlib inline
iris_df = pd.read_csv(\'../data/iris.csv\',header=None)
col_name = [\'sepal length\', \'sepal width\', \'petal length\', \'petal width\', \'class\']
iris_df.columns = col_name
输出结果如下。
通过info()方法查看各个字段的基本详情,输出结果如下。字段中数据已经是处理完整,没有需要清洗的部分。
首先进行特征数据和标签数据的划分。
X = iris_df.drop(columns=[\'class\'])
X.head(5)
y = iris_df[\'class\']
y.head(5)
接着就是对数据集进行训练数据和测试数据的划分。在前一个案例中,数据量不超过20条,全部应用在模型中,而真实的环境中,为了保证模型的稳定性,需要进行训练和测试数据的划分,代码操作如下。
from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size = 0.2)
#第一步:导入模型
from sklearn.tree import DecisionTreeClassifier
#第二步:模型初始化
model = DecisionTreeClassifier()
#第三步:模型训练
model.fit(X_train,y_train)
#第四步:模型预测
predictions = model.predict(X_test)
predictions
#第五步:模型评估
from sklearn.metrics import accuracy_score
score = accuracy_score(y_test,predictions)
score
输出结果如下。
如果日后有需要,觉得当前模型得分还行,可以进一步将模型保存本地。(根据个人需要选择)
import joblib
joblib.dump(model,\'iris.joblib\')
有了案例一的操作,对于模型预测的流程和结果可视化就简单了,对前面提及到了五个参数进行修改就可以了,代码如下。
from sklearn import tree
tree.export_graphviz(model,out_file=\'iris.dot\',feature_names=[\'sepal length\', \'sepal width\', \'petal length\', \'petal width\']
,class_names=sorted(y.unique()),label=\'all\',rounded=True,filled=True)
输出结果如下。
对生成的文件,用软件打开后,生成的决策树图形结果如下。也可以参照案例一中的操作,将图片加载到jupyter notebook中,有兴趣可以进行数据的核验。