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

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

我的Django电子商务代码已经可以支持Django 4.X版本了,由于github很慢,现在放到百度网盘上了。链接:https://pan.baidu.com/s/1FEs6lggPtPplnYTsyEbaSg?pwd=7gq1提取码:7gq1


8.2 SVC


8.2.1 SVC类参数、属性和方法


class sklearn.svm.SVC(*, C=1.0, kernel='rbf', degree=3, gamma='scale', coef0=0.0, shrinking=True, probability=False, tol=0.001, cache_size=200, class_weight=None, verbose=False, max_iter=- 1, decision_function_shape='ovr', break_ties=False, random_state=None)


参数

属性

类型

解释

C

float, default=1.0

正则化参数。正则化的强度与c成反比。必须严格为正。惩罚是l2平方惩罚。

kernel

{'linear', 'poly', 'rbf', 'sigmoid', 'precomputed'}, default='rbf'

指定算法中要使用的内核类型。它必须是'linear', 'poly', 'rbf', 'sigmoid', 'precomputed'或可调用类型之一。如果没有给出,将使用‘rbf’。如果给定了一个可调用的,它被用来从数据矩阵中预先计算内核矩阵;该矩阵应该是形状数组(n_samples, n_samples)

gamma

{'scale', 'auto' or float, default='scale'

'rbf','poly''sigmoid'的核系数。如果gamma='scale '(默认值)被传递,那么它使用1 / (n_features * X.var())作为gamma的值,如果'auto',则使用1 / n_features


属性

属性

类型

class_weight_

ndarray of shape (n_classes,)

classes_

ndarray of shape (n_classes,)

coef_

is a readonly property derived from dual_coef_ and support_vectors_.

coef_

ndarray of shape (n_classes * (n_classes - 1) / 2, n_features)

dual_coef_

ndarray of shape (n_classes -1, n_SV)

fit_status_

int

intercept_

ndarray of shape (n_classes * (n_classes - 1) / 2,)

support_

ndarray of shape (n_SV)

support_vectors_

ndarray of shape (n_SV, n_features)

n_support_

ndarray of shape (n_classes,), dtype=int32

probA_

_ndarray of shape (n_classes * (n_classes - 1) / 2)

probB

_ndarray of shape (n_classes * (n_classes - 1) / 2)

shape_fit_

tuple of int of shape (n_dimensions_of_X,)


方法

decision_function(X)

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

fit(X, y[, sample_weight])

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

get_params([deep])

获取此估计器的参数。

predict(X)

X中的样品进行分类。

score(X, y[, sample_weight])

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

set_params(**params)

设置此估计器的参数。


8.2.2 SVC原理(分析make_blobs数据)

def SVC_Theory():
myutil = util()
#创建50个数据点,分成2类
X , y = make_blobs(n_samples=50,random_state=6,centers=2)
for kernel in ['linear','rbf','sigmoid','poly']:
    for gamma in ['scale', 'auto',0.1,0.01,0.001]:
        clf = SVC(kernel=kernel,gamma=gamma,C=1000)# C-SVC的惩罚参数C,默认值是1.0
        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=['--','-','--']) #绘制等高线
        ax.scatter(clf.support_vectors_[:,0],clf.support_vectors_[:,1],s=100,linewidth=1,facecolors='none')
        title=u"VC原理,"+kernel+",gamma="+str(gamma)
        myutil.show_pic(title)


       kernel=linner (线性核) 基本一致


image.png

image.png

image.png

image.png

image.png


kernel=rbf (径向基函数核(高斯核)),第2、3最好

image.png

image.png

image.png

image.png

image.png


kernel= Sigmoid (Sigmoid核)

image.png

image.png

image.pngimage.png


kernel=poly(多项式核) 最后一个很好

image.png

image.png

image.png

image.png

image.png


8.2.3 SVC分析鸢尾花数据

#SVC分析鸢尾花数据
def SVC_for_load_iris():
       warnings.filterwarnings("ignore")
       myutil = util()
       X,y = datasets.load_iris().data,datasets.load_iris().target
       X1 = datasets.load_iris().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.draw_scatter(X,y,clf,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:
99.17%
SVC_鸢尾花数据,kernel=linear,gamma=scale:
100.00%
SVC_鸢尾花数据,kernel=linear,gamma=auto:
99.17%
SVC_鸢尾花数据,kernel=linear,gamma=auto:
100.00%
SVC_鸢尾花数据,kernel=linear,gamma=0.1:
99.17%
SVC_鸢尾花数据,kernel=linear,gamma=0.1:
100.00%
SVC_鸢尾花数据,kernel=linear,gamma=0.01:
99.17%
SVC_鸢尾花数据,kernel=linear,gamma=0.01:
100.00%
SVC_鸢尾花数据,kernel=linear,gamma=0.001:
99.17%
SVC_鸢尾花数据,kernel=linear,gamma=0.001:
96.67%
SVC_鸢尾花数据,kernel=rbf,gamma=scale:
96.67%
SVC_鸢尾花数据,kernel=rbf,gamma=scale:
96.67%
SVC_鸢尾花数据,kernel=rbf,gamma=auto:
97.50%
SVC_鸢尾花数据,kernel=rbf,gamma=auto:
96.67%
SVC_鸢尾花数据,kernel=rbf,gamma=0.1:
97.50%
SVC_鸢尾花数据,kernel=rbf,gamma=0.1:
96.67%
SVC_鸢尾花数据,kernel=rbf,gamma=0.01:
95.00%
SVC_鸢尾花数据,kernel=rbf,gamma=0.01:
86.67%
SVC_鸢尾花数据,kernel=rbf,gamma=0.001:
70.00%
SVC_鸢尾花数据,kernel=rbf,gamma=0.001:
53.33%
SVC_鸢尾花数据,kernel=sigmoid,gamma=scale:
6.67%
SVC_鸢尾花数据,kernel=sigmoid,gamma=scale:
10.00%
SVC_鸢尾花数据,kernel=sigmoid,gamma=auto:
4.17%
SVC_鸢尾花数据,kernel=sigmoid,gamma=auto:
3.33%
SVC_鸢尾花数据,kernel=sigmoid,gamma=0.1:
5.83%
SVC_鸢尾花数据,kernel=sigmoid,gamma=0.1:
6.67%
SVC_鸢尾花数据,kernel=sigmoid,gamma=0.01:
70.00%
SVC_鸢尾花数据,kernel=sigmoid,gamma=0.01:
53.33%
SVC_鸢尾花数据,kernel=sigmoid,gamma=0.001:
70.00%
SVC_鸢尾花数据,kernel=sigmoid,gamma=0.001:
53.33%
SVC_鸢尾花数据,kernel=poly,gamma=scale:
98.33%
SVC_鸢尾花数据,kernel=poly,gamma=scale:
93.33%
SVC_鸢尾花数据,kernel=poly,gamma=auto:
99.17%
SVC_鸢尾花数据,kernel=poly,gamma=auto:
93.33%
SVC_鸢尾花数据,kernel=poly,gamma=0.1:
97.50%
SVC_鸢尾花数据,kernel=poly,gamma=0.1:
93.33%
SVC_鸢尾花数据,kernel=poly,gamma=0.01:
89.17%
SVC_鸢尾花数据,kernel=poly,gamma=0.01:
86.67%
SVC_鸢尾花数据,kernel=poly,gamma=0.001:
57.50%
SVC_鸢尾花数据,kernel=poly,gamma=0.001:
50.00%

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.pngimage.png


比较差

微信图片_20230215142744.png

很差

微信图片_20230215142751.png

很差

微信图片_20230215142755.png

很差

微信图片_20230215142839.png

很差

微信图片_20230215142843.png

很差。可见Kernel=sigmoid基本上都很差。

微信图片_20230215142905.png

微信图片_20230215142910.png


微信图片_20230215142914.png

微信图片_20230215142952.png

微信图片_20230215142957.png

很差


微信图片_20230215143001.png

微信图片_20230215143054.png

微信图片_20230215143058.png

微信图片_20230215143102.png

微信图片_20230215143130.png

微信图片_20230215143134.png

微信图片_20230215143141.png

微信图片_20230215143208.png

微信图片_20230215143218.png

微信图片_20230215143222.png

很差

微信图片_20230215143248.png

很差

微信图片_20230215143252.png

很差

微信图片_20230215143333.png

微信图片_20230215143338.png

微信图片_20230215143344.png

微信图片_20230215143537.png

微信图片_20230215143541.png

微信图片_20230215143545.png

微信图片_20230215143615.png




目录
相关文章
|
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
|
5月前
|
机器学习/深度学习 存储 搜索推荐
利用机器学习算法改善电商推荐系统的效率
电商行业日益竞争激烈,提升用户体验成为关键。本文将探讨如何利用机器学习算法优化电商推荐系统,通过分析用户行为数据和商品信息,实现个性化推荐,从而提高推荐效率和准确性。
210 14
|
5月前
|
机器学习/深度学习 算法 数据可视化
实现机器学习算法时,特征选择是非常重要的一步,你有哪些推荐的方法?
实现机器学习算法时,特征选择是非常重要的一步,你有哪些推荐的方法?
97 1
|
5月前
|
机器学习/深度学习 算法 搜索推荐
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)
|
5月前
|
机器学习/深度学习 数据采集 算法
解码癌症预测的密码:可解释性机器学习算法SHAP揭示XGBoost模型的预测机制
解码癌症预测的密码:可解释性机器学习算法SHAP揭示XGBoost模型的预测机制
255 0
下一篇
无影云桌面