(1)数据集分析
以sklearn库自带的数据集iris为例做一个数据分析与挖掘的helloworld程序。
iris数据集是Anderson’s Iris data set——安德森鸢尾花卉数据集。 可以通过Python查看数据集的信息。代码如下:
from sklearnimport datasets
dataset =datasets.load_iris()
print(type(dataset)
print(dataset.keys())
print(dataset.target_names)
print(dataset.feature_names)
print(dataset.DESC)
从输出的结果看,load_iris返回的数据类型是sklean.utils.Bunch.字典的关键字有: 数据、描述、特征名称、文件名、结果集、结果名字。
结果名称包含setosa, versicolor, virginica, 也就是山鸢尾、变色鸢尾还是维吉尼亚鸢尾(这三个名词都是花的品种)。
数据特征名称(列名): sepal lengh(cm), sepal width(cm), petallength(cm), petal width(cm)。分别对应是花萼长度、花萼宽度、花瓣长度、花瓣宽度四个特征。
在数据说明中,iris包含150个样本,每种花是50个, 以及数据集的其他信息。
(2)模型选择
在iris数据集上将要进行数据分类实验。对于每一个样本有对应的人工标签分类,因此应该采用监督学习的方法。分类模型包含支持向量机、Knn算法和决策树算法等。
在这里我们使用的是支持向量机算法,
其代码结构如下
from sklearn import datasets
from sklearn import model_selection
dataset=datasets.load_iris() #load the datasets
data=pd.DataFrame(dataset.data,columns=dataset.feature_names) //change to padas DataFrame data structure.
target=dataset.target //results of each samples
x_train, x_test,y_train,y_test=model_selection.train_test_split(data, target, random_state=1,test_size=0.2) //datasets are divided into two part: training set and test set.
from sklearn import svm
supportV=svm.SVC(gamma='scale') //support vector.
supportV.fit(x_train,y_train)
y_predict=supportV.predict(x_test)
print(y_predict)
基本过程:
(1)加载数据集,进行数据转化;
(2)数据集分割成测试集与验证集;
(3)选择模型算法。
(3)模型评价系统
对于算法的评价,采用sklearn提供算法评价函数以及MSE函数。
from sklearn import metrics
print("SVC MSE:",metrics.mean_squared_error(y_test,y_predict))
print("SVC RMSE:",np.sqrt(metrics.mean_squared_error(y_test, y_predict)))
print('SVC:score(train):',supportV.score(x_train,y_train))
print('SVC:score(test):', supportV.score(x_test, y_test))
在本次hello world程序中,只是初步了解数据分析和数据挖掘的一个简单程序,省略了数据探索、数据预处理、多个模型比较评价以及交叉验证等步骤。