python的实验报告参考文献 python参考文献有哪些( 二 )


import matplotlib.pyplot as pltimport numpy as np#-----计算基尼指数def gini(p):return (p)*(1 - (p)) + (1 - p)*(1 - (1-p))#-----计算熵def entropy(p):return - p*np.log2(p) - (1 - p)*np.log2((1 - p))#-----计算分类误差def classification_error(p):return 1 - np.max([p, 1 - p])#-----创建一个从0到1的概率值Numpy数组,增量为0.01x = np.arange(0.0, 1.0, 0.01)#---不同p值的熵ent = [entropy(p) if p != 0 else None for p in x]#----获得缩放后的熵sc_ent = [e*0.5 if e else None for e in ent]#--分类错误err = [classification_error(i) for i in x]#--绘图fig = plt.figure();plt.figure(figsize=(10,8));ax = plt.subplot(111);for i, lab, ls, c, in zip([ent, sc_ent, gini(x), err], ['Entropy', 'Entropy (scaled)','Gini Impurity','Misclassification Error'],['-', '-', '--', '-.'],['black', 'darkgray','blue', 'brown', 'cyan']):line = ax.plot(x, i, label=lab,linestyle=ls, lw=2, color=c)ax.legend(loc='upper center', bbox_to_anchor=(0.5, 1.15), ncol=3, fancybox=True, shadow=False)ax.axhline(y=0.5, linewidth=1, color='k', linestyle='--')ax.axhline(y=1.0, linewidth=1, color='k', linestyle='--')plt.ylim([0, 1.1])plt.xlabel('p(i=1)')plt.ylabel('Impurity Index')plt.show()练习问题陈述旨在建立一个分类模型来预测红酒的质量 。
这是一个典型的多类分类问题 。注意,所有的机器学习模型都对异常值敏感,因此在构建树之前,应该处理由异常值组成的特征/独立变量 。
不同特性/独立变量的一个重要方面是它们如何相互作用 。皮尔逊相关可以用来确定数据集中两个特征之间的关联程度 。然而,对于像决策树这样的基于决策的算法,我们不会丢弃高度相关的变量 。
#导入所需的库-%matplotlib inlineimport numpy as npimport pandas as pdfrom sklearn.tree import DecisionTreeClassifierimport numpy as npimport pandas as pdimport seaborn as snssns.set(color_codes=True)from matplotlib import pyplot as pltfrom sklearn.model_selection import train_test_split #分为训练集和测试集from sklearn.tree import DecisionTreeClassifier #构建决策树模型from sklearn import metricsfrom sklearn.metrics import accuracy_score,f1_score,recall_score,precision_score, confusion_matrix #模型验证%matplotlib inlinefrom IPython.display import display #用于在一个输出中显示多个数据帧from sklearn.feature_extraction.text import CountVectorizer#DT不接受字符串作为模型拟合步骤的输入import missingno as msno_plot #缺失值绘图wine_df = pd.read_csv('winequality-red.csv',sep=';')数据的快速描述性统计
wine_df.describe().transpose().round(2)检查缺失值
#非缺失值的条形图plt.title('#Non-missing Values by Columns')msno_plot.bar(wine_df);异常值检查和处理
#检查异常值plt.figure(figsize=(15,15))pos = 1for i in wine_df.columns:plt.subplot(3, 4, pos)sns.boxplot(wine_df[i])pos += 1col_names=['fixed acidity', 'volatile acidity', 'citric acid', 'residual sugar','chlorides', 'free sulfur dioxide', 'total sulfur dioxide', 'density','pH', 'sulphates', 'alcohol']display(col_names)for i in col_names:q1, q2, q3 = wine_df[i].quantile([0.25,0.5,0.75])IQR = q3 - q1lower_cap=q1-1.5*IQRupper_cap=q3+1.5*IQRwine_df[i]=wine_df[i].apply(lambda x: upper_cap if x>(upper_cap) else (lower_cap if x<(lower_cap) else x))上面的异常值使用Q1–1.5*IQR和Q3+1.5*IQR值进行提取 。Q1、Q3和IQR分别代表第一四分位数、第三四分位数和四分位数间的范围 。
sns.pairplot(wine_df);理解不同变量之间的关系 。注意 。在决策树中,我们不需要删除高度相关的变量,因为节点只使用一个独立变量被划分为子节点,因此,即使两个或多个变量高度相关,产生最高信息增益的变量也将用于分析 。
plt.figure(figsize=(10,8))sns.heatmap(wine_df.corr(),annot=True,linewidths=.5,center=0,cbar=False,cmap="YlGnBu")plt.show()分类问题对类别不平衡很敏感 。当一个类值所占比例较大时,就会出现类不平衡 。类别平衡是通过将因变量“quality”属性的值组合而产生的 。


以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!

「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助: