快速入门Python机器学习(15)

简介: 快速入门Python机器学习(15)

8.2.4 SVC分析红酒数据

#SVC分析红酒数据
def SVC_for_load_wine():
    warnings.filterwarnings("ignore")
    myutil = util()
    X,y = datasets.load_wine().data,datasets.load_wine().target
    X1 = datasets.load_wine().data[:,:2]
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
    for kernel in ['linear','rbf','sigmoid','poly']:
       for gamma in ['scale', 'auto',0.1,0.01,0.001]:
              clf = SVC(max_iter=100000,kernel=kernel,gamma=gamma)
              clf.fit(X_train, y_train)
              title = "SVC_红酒数据,kernel="+kernel+",gamma="+str(gamma)
              myutil.print_scores(clf,X_train,y_train,X_test,y_test,title)
                        myutil.plot_learning_curve(SVC(max_iter=100000,kernel=kernel,gamma=gamma),X,y,title)
              myutil.show_pic(title)
              clf = SVC(max_iter=100000,kernel=kernel,gamma=gamma).fit(X1,y)
              myutil.draw_scatter_for_clf(X1,y,clf,title)


输出

*SVC_红酒数据,kernel=linear,gamma=scale:
100.00%
SVC_红酒数据,kernel=linear,gamma=scale:
91.67%
*SVC_红酒数据,kernel=linear,gamma=auto:
100.00%
SVC_红酒数据,kernel=linear,gamma=auto:
91.67%
*SVC_红酒数据,kernel=linear,gamma=0.1:
100.00%
SVC_红酒数据,kernel=linear,gamma=0.1:
91.67%
*SVC_红酒数据,kernel=linear,gamma=0.01:
100.00%
SVC_红酒数据,kernel=linear,gamma=0.01:
91.67%
*SVC_红酒数据,kernel=linear,gamma=0.001:
100.00%
SVC_红酒数据,kernel=linear,gamma=0.001:
91.67%
SVC_红酒数据,kernel=rbf,gamma=scale:
71.13%
SVC_红酒数据,kernel=rbf,gamma=scale:
66.67%
*SVC_红酒数据,kernel=rbf,gamma=auto:
100.00%
SVC_红酒数据,kernel=rbf,gamma=auto:
50.00%
*SVC_红酒数据,kernel=rbf,gamma=0.1:
100.00%
SVC_红酒数据,kernel=rbf,gamma=0.1:
50.00%
*SVC_红酒数据,kernel=rbf,gamma=0.01:
99.30%
SVC_红酒数据,kernel=rbf,gamma=0.01:
69.44%
SVC_红酒数据,kernel=rbf,gamma=0.001:
83.80%
SVC_红酒数据,kernel=rbf,gamma=0.001:
72.22%
SVC_红酒数据,kernel=sigmoid,gamma=scale:
18.31%
SVC_红酒数据,kernel=sigmoid,gamma=scale:
22.22%
SVC_红酒数据,kernel=sigmoid,gamma=auto:
39.44%
SVC_红酒数据,kernel=sigmoid,gamma=auto:
41.67%
SVC_红酒数据,kernel=sigmoid,gamma=0.1:
39.44%
SVC_红酒数据,kernel=sigmoid,gamma=0.1:
41.67%
SVC_红酒数据,kernel=sigmoid,gamma=0.01:
39.44%
SVC_红酒数据,kernel=sigmoid,gamma=0.01:
41.67%
SVC_红酒数据,kernel=sigmoid,gamma=0.001:
39.44%
SVC_红酒数据,kernel=sigmoid,gamma=0.001:
41.67%
SVC_红酒数据,kernel=poly,gamma=scale:
65.49%
SVC_红酒数据,kernel=poly,gamma=scale:
80.56%
*SVC_红酒数据,kernel=poly,gamma=auto:
100.00%
SVC_红酒数据,kernel=poly,gamma=auto:
91.67%
*SVC_红酒数据,kernel=poly,gamma=0.1:
100.00%
SVC_红酒数据,kernel=poly,gamma=0.1:
91.67%
*SVC_红酒数据,kernel=poly,gamma=0.01:
100.00%
SVC_红酒数据,kernel=poly,gamma=0.01:
91.67%
*SVC_红酒数据,kernel=poly,gamma=0.001:
100.00%
SVC_红酒数据,kernel=poly,gamma=0.001:
91.67%


图(省略)


8.2.4 SVC分析乳腺癌数据

#SVC分析乳腺癌数据
def SVC_for_load_breast_cancer():
       warnings.filterwarnings("ignore")
       myutil = util()
       X,y = datasets.load_breast_cancer().data,datasets.load_breast_cancer().target
       X1 = datasets.load_breast_cancer().data[:,:2]
       X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
       for kernel in ['linear','rbf','sigmoid','poly']:
              for gamma in ['scale', 'auto',0.1,0.01,0.001]:
              clf = SVC(max_iter=100000,kernel=kernel,gamma=gamma)
              clf.fit(X_train, y_train)
              title = "SVC_乳腺癌数据,kernel="+kernel+",gamma="+str(gamma)
                         myutil.print_scores(clf,X_train,y_train,X_test,y_test,title)
              myutil.plot_learning_curve(SVC(max_iter=100000,kernel=kernel,gamma=gamma),X,y,title)
              myutil.show_pic(title)
              clf = SVC(max_iter=100000,kernel=kernel,gamma=gamma).fit(X1,y)
              myutil.draw_scatter_for_clf(X1,y,clf,title)


输出

SVC_乳腺癌数据,kernel=linear,gamma=scale:
94.51%
SVC_乳腺癌数据,kernel=linear,gamma=scale:
91.23%
SVC_乳腺癌数据,kernel=linear,gamma=auto:
94.51%
SVC_乳腺癌数据,kernel=linear,gamma=auto:
91.23%
SVC_乳腺癌数据,kernel=linear,gamma=0.1:
94.51%
SVC_乳腺癌数据,kernel=linear,gamma=0.1:
91.23%
SVC_乳腺癌数据,kernel=linear,gamma=0.01:
94.51%
SVC_乳腺癌数据,kernel=linear,gamma=0.01:
91.23%
SVC_乳腺癌数据,kernel=linear,gamma=0.001:
94.51%
SVC_乳腺癌数据,kernel=linear,gamma=0.001:
91.23%
SVC_乳腺癌数据,kernel=rbf,gamma=scale:
91.87%
SVC_乳腺癌数据,kernel=rbf,gamma=scale:
91.23%
*SVC_乳腺癌数据,kernel=rbf,gamma=auto:
100.00%
SVC_乳腺癌数据,kernel=rbf,gamma=auto:
56.14%
SVC_乳腺癌数据,kernel=rbf,gamma=0.1:
100.00%
SVC_乳腺癌数据,kernel=rbf,gamma=0.1:
56.14%
*SVC_乳腺癌数据,kernel=rbf,gamma=0.01:
100.00%
SVC_乳腺癌数据,kernel=rbf,gamma=0.01:
55.26%
SVC_乳腺癌数据,kernel=rbf,gamma=0.001:
98.02%
SVC_乳腺癌数据,kernel=rbf,gamma=0.001:
89.47%
SVC_乳腺癌数据,kernel=sigmoid,gamma=scale:
48.79%
SVC_乳腺癌数据,kernel=sigmoid,gamma=scale:
38.60%
SVC_乳腺癌数据,kernel=sigmoid,gamma=auto:
64.40%
SVC_乳腺癌数据,kernel=sigmoid,gamma=auto:
56.14%
SVC_乳腺癌数据,kernel=sigmoid,gamma=0.1:
64.40%
SVC_乳腺癌数据,kernel=sigmoid,gamma=0.1:
56.14%
SVC_乳腺癌数据,kernel=sigmoid,gamma=0.01:
64.40%
SVC_乳腺癌数据,kernel=sigmoid,gamma=0.01:
56.14%
SVC_乳腺癌数据,kernel=sigmoid,gamma=0.001:
64.40%
SVC_乳腺癌数据,kernel=sigmoid,gamma=0.001:
56.14%
SVC_乳腺癌数据,kernel=poly,gamma=scale:
90.77%
SVC_乳腺癌数据,kernel=poly,gamma=scale:
91.23%
SVC_乳腺癌数据,kernel=poly,gamma=auto:
48.35%
SVC_乳腺癌数据,kernel=poly,gamma=auto:
51.75%
SVC_乳腺癌数据,kernel=poly,gamma=0.1:
35.38%
SVC_乳腺癌数据,kernel=poly,gamma=0.1:
34.21%
SVC_乳腺癌数据,kernel=poly,gamma=0.01:
76.70%
SVC_乳腺癌数据,kernel=poly,gamma=0.01:
79.82%
SVC_乳腺癌数据,kernel=poly,gamma=0.001:
40.44%
SVC_乳腺癌数据,kernel=poly,gamma=0.001:
42.11%


(省略)


8.3 LinearSVC


8.3.1 LinearSVC类参数、属性和方法


class sklearn.svm.LinearSVC(penalty='l2', loss='squared_hinge', *, dual=True, tol=0.0001, C=1.0, multi_class='ovr', fit_intercept=True, intercept_scaling=1, class_weight=None, verbose=0, random_state=None, max_iter=1000)


参数

参数

类型

解释

C

float, default=1.0

正则化参数。正则化的强度与C成反比,必须是严格正的。


属性

属性

类型

coef_

ndarray of shape (1, n_features) if n_classes == 2 else (n_classes, n_features)分配给特征的权重(原始问题中的系数)。这仅在线性内核的情况下可用。

intercept_

ndarray of shape (1,) if n_classes == 2 else (n_classes,)coef_是从遵循liblinear的内部内存布局的raw_coef_派生的只读属性。

classes_

ndarray of shape (n_classes,)决策函数中的常数。唯一类标签。

n_iter_

int在所有类中运行的最大迭代次数


方法

decision_function(X)

计算X中样本的决策函数。

densify()

将系数矩阵转换为密集数组格式。

decision_function(X)

预测样本的置信度得分。

fit(X, y[, sample_weight])

根据给定的训练数据拟合SVM模型。

get_params([deep])

获取此估计器的参数。

predict(X)

X中的样品进行分类。

score(X, y[, sample_weight])

返回给定测试数据和标签的平均精度。

set_params(**params)

设置此估计器的参数。

sparsify()

将系数矩阵转换为稀疏格式。


8.3.2 LinearSVC原理(分析make_blobs数据)

def LinearSVC_Theory():
        myutil = util()
        X , y = make_blobs(n_samples=50,random_state=6,centers=2)
        clf = LinearSVC()
        clf.fit(X,y)
        plt.scatter(X[:,0],X[:,1],c=y,cmap=plt.cm.Paired,s=30)
        ax = plt.gca()
        xlim = ax.get_xlim()
        ylim = ax.get_ylim()
        xx = np.linspace(xlim[0],xlim[1],30)
        yy = np.linspace(ylim[0],ylim[1],30)
        YY , XX = np.meshgrid(yy,xx)
        xy = np.vstack([XX.ravel(),YY.ravel()]).T
        Z = clf.decision_function(xy). reshape(XX.shape)
        ax.contour(XX,YY,Z,colors='k',levels=[-1,0,1],alpha=0.5,linestyles=['--','-','--']) #绘制等高线
        title= u"LinearSVC原理"
        myutil.show_pic(title)

image.png


8.3.3 LinearSVC分析鸢尾花数据

#LinearSVC分析鸢尾花数据
def LinearSVC_for_load_iris():
       warnings.filterwarnings("ignore")
       myutil = util()
       X,y = datasets.load_iris().data,datasets.load_iris().target
       X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
       clf = LinearSVC()
       clf.fit(X_train, y_train)
       title = "LinearSVC_鸢尾花数据"
       myutil.print_scores(clf,X_train,y_train,X_test,y_test,title)
       myutil.plot_learning_curve(LinearSVC(),X,y,title)
       myutil.show_pic(title)


输出


LinearSVC_鸢尾花数据:
95.83%
LinearSVC_鸢尾花数据:
96.67%

image.png

image.png


8.3.4 LinearSVC分析红酒数据

#LinearSVC分析红酒数据
def LinearSVC_for_load_wine():
       warnings.filterwarnings("ignore")
       myutil = util()
       X,y = datasets.load_wine().data,datasets.load_wine().target
       X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
       clf = LinearSVC()
       clf.fit(X_train, y_train)
       title = "LinearSVC_红酒数据"
       myutil.print_scores(clf,X_train,y_train,X_test,y_test,title)
       myutil.plot_learning_curve(LinearSVC(),X,y,title)
       myutil.show_pic(title)
                 X = datasets.load_wine().data[:,:2]
                 clf = LinearSVC().fit(X,y)
                  myutil.draw_scatter_for_clf(X,y,clf,title)


输出

LinearSVC_红酒数据:
90.14%
LinearSVC_红酒数据:
86.11%

image.png

image.png


8.3.5 LinearSVC分析乳腺癌数据

#LinearSVC分析乳腺癌数据
def LinearSVC_for_load_breast_cancer():
       warnings.filterwarnings("ignore")
       myutil = util()
       X,y = datasets.load_breast_cancer().data,datasets.load_breast_cancer().target
       X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
       clf = LinearSVC()
       clf.fit(X_train, y_train)
       title = "LinearSVC_乳腺癌数据"
       myutil.print_scores(clf,X_train,y_train,X_test,y_test,title)
       myutil.plot_learning_curve(LinearSVC(),X,y,title)
       myutil.show_pic(title)
       X = datasets.load_breast_cancer().data[:,:2]
       clf = LinearSVC().fit(X,y)
       myutil.draw_scatter_for_clf(X,y,clf,title)


输出

LinearSVC_乳腺癌数据:
93.19%
LinearSVC_乳腺癌数据:
92.11%

image.png

image.png


Linear Kernel与LinearSVC差不多,边界都是线性的;

RBF和polynomial Kernel 边界都不是线性的

目录
相关文章
|
13天前
|
机器学习/深度学习 算法 TensorFlow
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
交通标志识别系统。本系统使用Python作为主要编程语言,在交通标志图像识别功能实现中,基于TensorFlow搭建卷积神经网络算法模型,通过对收集到的58种常见的交通标志图像作为数据集,进行迭代训练最后得到一个识别精度较高的模型文件,然后保存为本地的h5格式文件。再使用Django开发Web网页端操作界面,实现用户上传一张交通标志图片,识别其名称。
43 6
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
|
13天前
|
机器学习/深度学习 算法 数据挖掘
Python数据分析革命:Scikit-learn库,让机器学习模型训练与评估变得简单高效!
在数据驱动时代,Python 以强大的生态系统成为数据科学的首选语言,而 Scikit-learn 则因简洁的 API 和广泛的支持脱颖而出。本文将指导你使用 Scikit-learn 进行机器学习模型的训练与评估。首先通过 `pip install scikit-learn` 安装库,然后利用内置数据集进行数据准备,选择合适的模型(如逻辑回归),并通过交叉验证评估其性能。最终,使用模型对新数据进行预测,简化整个流程。无论你是新手还是专家,Scikit-learn 都能助你一臂之力。
64 8
|
9天前
|
机器学习/深度学习 数据可视化 数据挖掘
数据可视化大不同!Python数据分析与机器学习中的Matplotlib、Seaborn应用新视角!
在数据科学与机器学习领域,数据可视化是理解数据和优化模型的关键。Python凭借其强大的可视化库Matplotlib和Seaborn成为首选语言。本文通过分析一份包含房屋面积、卧室数量等特征及售价的数据集,展示了如何使用Matplotlib绘制散点图,揭示房屋面积与售价的正相关关系;并利用Seaborn的pairplot探索多变量间的关系。在机器学习建模阶段,通过随机森林模型展示特征重要性的可视化,帮助优化模型。这两个库在数据分析与建模中展现出广泛的应用价值。
25 2
|
14天前
|
机器学习/深度学习 存储 人工智能
文本情感识别分析系统Python+SVM分类算法+机器学习人工智能+计算机毕业设计
使用Python作为开发语言,基于文本数据集(一个积极的xls文本格式和一个消极的xls文本格式文件),使用Word2vec对文本进行处理。通过支持向量机SVM算法训练情绪分类模型。实现对文本消极情感和文本积极情感的识别。并基于Django框架开发网页平台实现对用户的可视化操作和数据存储。
20 0
文本情感识别分析系统Python+SVM分类算法+机器学习人工智能+计算机毕业设计
|
15天前
|
机器学习/深度学习 数据采集 算法
机器学习新纪元:用Scikit-learn驾驭Python,精准模型选择全攻略!
在数据爆炸时代,机器学习成为挖掘数据价值的关键技术,而Scikit-learn作为Python中最受欢迎的机器学习库之一,凭借其丰富的算法集、简洁的API和高效性能,引领着机器学习的新纪元。本文通过一个实际案例——识别垃圾邮件,展示了如何使用Scikit-learn进行精准模型选择。从数据预处理、模型训练到交叉验证和性能比较,最后选择最优模型进行部署,详细介绍了每一步的操作方法。通过这个过程,我们不仅可以看到如何利用Scikit-learn的强大功能,还能了解到模型选择与优化的重要性。希望本文能为你的机器学习之旅提供有价值的参考。
17 0
|
24天前
|
机器学习/深度学习 人工智能 TensorFlow
神经网络入门到精通:Python带你搭建AI思维,解锁机器学习的无限可能
【9月更文挑战第10天】神经网络是开启人工智能大门的钥匙,不仅是一种技术,更是模仿人脑思考的奇迹。本文从基础概念入手,通过Python和TensorFlow搭建手写数字识别的神经网络,逐步解析数据加载、模型定义、训练及评估的全过程。随着学习深入,我们将探索深度神经网络、卷积神经网络等高级话题,并掌握优化模型性能的方法。通过不断实践,你将能构建自己的AI系统,解锁机器学习的无限潜能。
18 0
|
4天前
|
数据挖掘 索引 Python
Python数据挖掘编程基础3
字典在数学上是一个映射,类似列表但使用自定义键而非数字索引,键在整个字典中必须唯一。可以通过直接赋值、`dict`函数或`dict.fromkeys`创建字典,并通过键访问元素。集合是一种不重复且无序的数据结构,可通过花括号或`set`函数创建,支持并集、交集、差集和对称差集等运算。
14 9
|
4天前
|
存储 开发者 Python
探索Python编程的奥秘
【9月更文挑战第29天】本文将带你走进Python的世界,通过深入浅出的方式,解析Python编程的基本概念和核心特性。我们将一起探讨变量、数据类型、控制结构、函数等基础知识,并通过实际代码示例,让你更好地理解和掌握Python编程。无论你是编程新手,还是有一定基础的开发者,都能在这篇文章中找到新的启示和收获。让我们一起探索Python编程的奥秘,开启编程之旅吧!
|
4天前
|
Python
Python编程的循环结构小示例(二)
Python编程的循环结构小示例(二)
|
4天前
|
算法 Python
Python编程的函数—内置函数
Python编程的函数—内置函数
下一篇
无影云桌面