SVM处理鸢尾花数据集
2020-06-25 22:50
44 查看
数据介绍:
feature 共四个属性:‘sepal length (cm)’, ‘sepal width (cm)’, ‘petal length (cm)’, ‘petal width (cm)’
target 共三类结果:‘setosa’ ‘versicolor’ ‘virginica’
任务要求,按照四类属性将数据划分为三类结果中去,即判断每一组数据属于哪一类
解题思路:
1.直接通过svm将数据进行分类。
2.将数据做特征处理,变复杂,映射到高维空间,再分类。
from sklearn.datasets import load_iris data=load_iris() print(data["feature_names"]) print("****************************************") print(data['filename']) print("****************************************") print(data["target_names"]) print("****************************************")
[‘sepal length (cm)’, ‘sepal width (cm)’, ‘petal length (cm)’, ‘petal width (cm)’]
E:\Anaconda3\lib\site-packages\sklearn\datasets\data\iris.csv
[‘setosa’ ‘versicolor’ ‘virginica’]
划分训练测试数据集
from sklearn.model_selection import train_test_split from sklearn.svm import SVC from sklearn.model_selection import GridSearchCV import numpy as np from sklearn.preprocessing import scale feature=data["data"] feature=scale(feature,axis=0) test=data["target"] train_x,train_y,test_x,test_y=train_test_split(feature,test,test_size=0.3)
1.直接处理
svm=SVC(kernel="linear",max_iter=-1,class_weight='balanced',tol=0.02) params_grid=[{"C":np.linspace(0,100,2000)}] grid_search=GridSearchCV(svm,params_grid,cv=2,scoring="neg_mean_squared_error",return_train_score=True) grid_search.fit(train_x,test_x) from sklearn.metrics import mean_squared_error import matplotlib.pyplot as plt %matplotlib inline def evaluation_mdoel(train_y,test_y): predict_curr=grid_search.predict(train_y) for i in range(4): plt.scatter(train_y[:,i],predict_curr,label="predict") plt.scatter(train_y[:,i],test_y,label="true") plt.legend() plt.show() print(mean_squared_error(predict_curr,test_y)) evaluation_mdoel(train_y,test_y)
0.06666666666666667
四维的图不会画,凑活着画了一个散点图。
接下来对原数据做多项式处理同直接计算做一下比较。
from sklearn.preprocessing import PolynomialFeatures poly=PolynomialFeatures() target_new=poly.fit_transform(feature) target_new=poly.fit_transform(target_new) target_new=poly.fit_transform(target_new) train_x,train_y,test_x,test_y=train_test_split(target_new,test,test_size=0.3) grid_search.fit(train_x,test_x) grid_search.best_params_ grid_search.best_estimator_ evaluation_mdoel(train_y,test_y)
0.022222222222222223
可见对原数据做多项式处理后精度更加准确,但是计算量会增加。
相关文章推荐
- logistic regression 处理鸢尾花数据集
- sklearn.decomposition.PCA主要参数讲解、对鸢尾花数据集进行PCA降维处理
- 对鸢尾花数据集和月亮数据集用LDA、k-means和SVM进行二分类可视化分析
- SVM、KNN、ANN、MLP、DT、Keras、Tensorflow处理糖尿病数据集分类
- 图像处理基本库的学习笔记2--SVM,MATLAB,Tensorflow下分别对mnist数据集进行训练,并且进行预测
- 电影数据集的处理
- TensorFlow——LSTM长短期记忆神经网络处理Mnist数据集
- 数据分析经典案例-鸢尾花(iris)数据集分析
- SAS进阶《深入解析SAS》之对多数据集的处理
- 用Python对KSC数据集处理的一次排错经历
- 单独表数据集连接处理-仿join的PHP处理函数
- 人工智能机器学习————MINST数据集的简单处理
- coco数据集的处理
- PK/NN/*/SVM:实现手写数字识别(数据集50000张图片)比较3种算法神经网络、灰度平均值、SVM各自的准确率—Jason niu
- 数据集处理成可视树,数据网格自动适应宽度
- pytorch + visdom CNN处理自建图片数据集
- 基于IRIS(鸢尾花)数据集使用sklearn的特征工程练习
- 使用python处理Movielens数据集
- Scikit-learn实例之Pca+Svm人脸识别(AT&T数据集)
- .net多语言和数据集内多数据表的处理(3)