这是我去年选修数据科学时候的作业三,当时是肖若秀老师教的,但听说我们这届之后计科和物联信安一个难度授课了这篇文章可能也就只是自己记录帮不上学弟学妹了,但当时我上数据科学时候肖老师不签到老好了最后四个作业完成之后就有个还不错的分数虽然不出国选修课分数也无所谓就是了。
前文链接:
目录
5.使用 Andrews Curves 将每个多变量观测值转换为曲线并表示傅立叶级数的系数,这对于检测时间序列数据中的异常值很有用。
一、作业描述
在本作业中,提供鸢尾花数据一套,数据为iris,包括150条记录,字段已经在课程上说明。本次作业旨在根据花瓣宽度、花瓣长度、花萼宽度、花萼长度4个特征实现对鸢尾花类别的精准预测,主要考察学生对于分类算法的理解和应用。
具体要求:
(1)选择合理的三分类拆解方式,在逻辑回归、k-NN、SVM、决策树中实现2种分类器,合理的确定超参数,并选定合理的评价指标分析分类器性能。
(2)实现一种集成的分类器,并选定合理的评价指标分析分类器性能。
二、作业过程
1.导入相关的库
import numpy as np
import pandas as pd
from pandas import plotting
import matplotlib.pyplot as plt
plt.style.use('seaborn')
import seaborn as sns
sns.set_style("whitegrid")
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import LabelEncoder
from sklearn.neighbors import KNeighborsClassifier
from sklearn import svm
from sklearn import metrics
from sklearn.tree import DecisionTreeClassifier
2.读取数据
iris = pd.read_csv('iris.csv')
3.绘制 Violinplot
f, axes = plt.subplots(2, 2, figsize=(8, 8), sharex=True)
sns.despine(left=True)
sns.violinplot(x='targetname', y='sepal length (cm)', data=iris, palette=antV, ax=axes[0, 0])
sns.violinplot(x='targetname', y='sepal width (cm)', data=iris, palette=antV, ax=axes[0, 1])
sns.violinplot(x='targetname', y='petal length (cm)', data=iris, palette=antV, ax=axes[1, 0])
sns.violinplot(x='targetname', y='petal width (