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

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

8.5 LinearSVR



8.5.1 LinearSVR类参数、属性和方法


class sklearn.svm.LinearSVR(*, epsilon=0.0, tol=0.0001, C=1.0, loss='epsilon_insensitive', fit_intercept=True, intercept_scaling=1.0, dual=True, verbose=0, random_state=None, max_iter=1000)


参数

属性

类型

解释

C

float, default=1.0

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


属性

属性

解释

coef_

ndarray of shape (n_features) if n_classes == 2 else (n_classes, n_features)

分配给特征的权重(原始问题中的系数)。这仅在线性内核的情况下可用。coef_是从遵循liblinear的内部内存布局的raw_coef_派生的只读属性。

intercept_

ndarray of shape (1) if n_classes == 2 else (n_classes) 决策函数中的常数。

n_iter_

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


方法

fit(X, y[, sample_weight])

根据给定的训练数据对模型进行拟合。

get_params([deep])

获取此估计器的参数。用

predict(X)

线性模型预测。

score(X, y[, sample_weight])

返回预测的确定系数R2

set_params(**params)

设置此估计器的参数。


8.5.2 LinearSVR分析make_regression无噪音数据


def LinearSVR_for_make_regression():
       myutil = util()
       X,y = make_regression(n_samples=100,n_features=1,n_informative=2,random_state=8)
       X_train,X_test,y_train,y_test = train_test_split(X, y, random_state=8,test_size=0.3)
       clf = LinearSVR().fit(X,y)
       title = "make_regression LinearSVR()回归线(无噪音)"
       myutil.print_scores(clf,X_train,y_train,X_test,y_test,title)
       myutil.draw_line(X[:,0],y,clf,title)
       myutil.plot_learning_curve(LinearSVR(),X,y,title)
       myutil.show_pic(title)


输出

make_regression LineSVR()回归线(无噪音):
100.00%
make_regression LineSVR()回归线(无噪音):
100.00% 

image.png

image.png

结果非常好


8.5.3LinearSVR分析make_regression有噪音数据

#加入噪音
def LinearSVR_for_make_regression_add_noise():
       myutil = util()
       X,y = make_regression(n_samples=100,n_features=1,n_informative=2,noise=50,random_state=8)
       X_train,X_test,y_train,y_test = train_test_split(X, y, random_state=8,test_size=0.3)
       clf = LinearSVR().fit(X,y)
       title = "make_regression LinearSVR()回归线(有噪音)"
       myutil.print_scores(clf,X_train,y_train,X_test,y_test,title)
       myutil.draw_line(X[:,0],y,clf,title)
       myutil.plot_learning_curve(LinearSVR(),X,y,title)
       myutil.show_pic(title)


输出

make_regression LinearSVR()回归线(有噪音):
59.53%
make_regression LinearSVR()回归线(有噪音):
51.15%

image.png

image.png

结果欠拟合


8.5.4 LinearSVR分析波士顿房价数据

def LinearSVR_for_boston():
       warnings.filterwarnings("ignore")
       myutil = util()
       boston = datasets.load_boston()
       X,y = boston.data,boston.target
       X_train,X_test,y_train,y_test = train_test_split(X, y, random_state =8)
       scaler = StandardScaler()
       scaler.fit(X_train)
       X_scaler = scaler.transform(X)
       X_train_scaler = scaler.transform(X_train)
       X_test_scaler = scaler.transform(X_test)
       boston = LinearSVR()
       boston.fit(X_train_scaler,y_train)
       title = "LinearSVR for Boston"
       myutil.print_scores(boston,X_train_scaler,y_train,X_test_scaler,y_test,title)
       myutil.plot_learning_curve(LinearSVR(),X_scaler,y,title)
       myutil.show_pic(title)


输出

LinearSVR for Boston:
70.37%
LinearSVR for Boston:
70.11%

image.png

欠拟合


8.5.5 LinearSVR分析糖尿病数据

#分析糖尿病数据
def LinearSVR_for_diabetes():
       warnings.filterwarnings("ignore")
       myutil = util()
       diabetes = datasets.load_diabetes()
       X,y = diabetes.data,diabetes.target
       X_train,X_test,y_train,y_test = train_test_split(X, y, random_state =8)
       scaler = StandardScaler()
       scaler.fit(X_train)
       X_scaler = scaler.transform(X)
       X_train_scaler = scaler.transform(X_train)
       X_test_scaler = scaler.transform(X_test)
       svr = LinearSVR()
       svr.fit(X_train_scaler,y_train)
       title = "LinearSVR for Diabetes"
       myutil.print_scores(svr,X_train_scaler,y_train,X_test_scaler,y_test,title)
       myutil.plot_learning_curve(LinearSVR(),X_scaler,y,title)
       myutil.show_pic(title)


输出

LinearSVR for Diabetes:
36.11%
LinearSVR for Diabetes:
33.77%

image.png


8.6总结


数据

模型

kernel

gamma

训练集得分

测试集得分

鸢尾花数据

SVC

linear

scale

99.17%

100.00%

auto

99.17%

100.00%

0.1

99.17%

100.00%

0.01

99.17%

100.00%

0.001

99.17%

100.00%

rbf

scale

96.67%

96.67%

auto

97.50%

96.67%

0.1

97.50%

96.67%

0.01

95.00%

86.67%

0.001

70.00%

53.33%

sigmoid

scale

6.67%

10.00%

auto

4.17%

3.33%

0.1

5.83%

6.67%

0.01

70.00%

53.33%

0.001

70.00%

53.33%

poly

scale

98.33%

93.33%

auto

99.17%

93.33%

0.1

97.50%

93.33%

0.01

89.17%

86.67%

0.001

57.50%

50.00%

LinearSVC

95.83%

96.67%

红酒数据

SVC

linear

scale

100.00%

91.67%

auto

100.00%

91.67%

0.1

100.00%

91.67%

0.01

100.00%

91.67%

0.001

100.00%

91.67%

rbf

scale

71.13%

66.67%

auto

100.00%

50.00%(过拟合)

0.1

100.00%

50.00%(过拟合)

0.01

99.30%

69.44%(过拟合)

0.001

83.80%

72.22%

sigmoid

scale

18.31%

22.22%

auto

39.44%

41.67%

0.1

39.44%

41.67%

0.01

39.44%

41.67%

0.001

39.44%

41.67%

poly

scale

65.49%

80.56%

auto

100.00%

91.67%

0.1

100.00%

91.67%

0.01

100.00%

91.67%

0.001

100.00%

91.67%

LinearSVC

90.14%

86.11%

乳腺癌数据

SVC

linear

scale

94.51%

91.23%

auto

94.51%

91.23%

0.1

94.51%

91.23%

0.01

94.51%

91.23%

0.001

94.51%

91.23%

rbf

scale

91.87%

91.23%

auto

100.00%

56.14%(过拟合)

0.1

100.00%

56.14%(过拟合)

0.01

100.00%

55.26%(过拟合)

0.001

98.02%

89.47%

sigmoid

scale

48.79%

38.60%

auto

64.40%

56.14%

0.1

64.40%

56.14%

0.01

64.40%

56.14%

0.001

64.40%

56.14%

poly

scale

90.77%

91.23%

auto

48.35%

51.75%

0.1

35.38%

34.21%

0.01

76.70%

79.82%

0.001

40.44%

42.11%

LinearSVR

93.19%

92.11%

波士顿房价数据

SVC

linear

scale

70.56%

69.84%

auto

70.56%

69.84%

0.1

70.56%

69.84%

0.01

70.56%

69.84%

0.001

70.56%

69.84%

rbf

scale

66.50%

69.46%

auto

66.50%

69.46%

0.1

64.18%

66.96%

0.01

56.81%

60.37%

0.001

22.75%

24.48%

sigmoid

scale

56.44%

63.41%

auto

56.44%

63.41%

0.1

35.92%

39.85%

0.01

49.05%

52.26%

0.001

13.84%

14.82%


poly

scale

68.60%

62.33%

auto

68.60%

62.33%

0.1

76.02%

63.72%

0.01

1.59%

1.03%

0.001

-2.36%

-2.66%

LinearSVC

70.37%

70.11%

糖尿病

SVR

linear

scale

-0.89%

0.35%

auto

-0.89%

0.35%

0.1

-0.89%

0.35%

0.01

-0.89%

0.35%

0.001

-0.89%

0.35%

rbf

scale

18.30%

15.14%

auto

-2.94%

-1.77%

0.1

-2.94%

-1.77%

0.01

-3.18%

-2.07%

0.001

-3.20%

-2.10%

sigmoid

scale

37.86%

38.36%

auto

-3.07%

-1.94%

0.1

-3.07%

-1.94%

0.01

-3.19%

-2.09%

0.001

-3.20%

-2.10%

poly

scale

23.87%

31.86%

auto

-3.20%

-2.10%

0.1

-3.20%

-2.10%

0.01

-3.20%

-2.10%

0.001

-3.20%

-2.10%

LinearSVR

36.11%

33.77%


结论:

  • SVR不适合分析糖尿病数据
  • SVC分析红酒和乳腺癌数据,某些情况出现过拟合现象
  • SVC分析尾花,红酒,乳腺癌相对比较好
目录
相关文章
|
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分类算法+机器学习人工智能+计算机毕业设计
|
27天前
|
机器学习/深度学习 数据采集 人工智能
使用Python实现简单的机器学习分类器
【8月更文挑战第37天】本文将引导读者了解如何利用Python编程语言构建一个简单的机器学习分类器。我们将从基础概念出发,通过代码示例逐步深入,探索数据预处理、模型选择、训练和评估过程。文章旨在为初学者提供一条清晰的学习路径,帮助他们理解并实现基本的机器学习任务。
|
25天前
|
机器学习/深度学习 算法 Python
从菜鸟到大师:一棵决策树如何引领你的Python机器学习之旅
【9月更文挑战第9天】在数据科学领域,机器学习如同璀璨明珠,吸引无数探索者。尤其对于新手而言,纷繁复杂的算法常让人感到迷茫。本文将以决策树为切入点,带您从Python机器学习的新手逐步成长为高手。决策树以其直观易懂的特点成为入门利器。通过构建决策树分类器并应用到鸢尾花数据集上,我们展示了其基本用法及效果。掌握决策树后,还需深入理解其工作原理,调整参数,并探索集成学习方法,最终将所学应用于实际问题解决中,不断提升技能。愿这棵智慧之树助您成为独当一面的大师。
23 3
|
27天前
|
机器学习/深度学习 算法 Python
决策树下的智慧果实:Python机器学习实战,轻松摘取数据洞察的果实
【9月更文挑战第7天】当我们身处数据海洋,如何提炼出有价值的洞察?决策树作为一种直观且强大的机器学习算法,宛如智慧之树,引领我们在繁复的数据中找到答案。通过Python的scikit-learn库,我们可以轻松实现决策树模型,对数据进行分类或回归分析。本教程将带领大家从零开始,通过实际案例掌握决策树的原理与应用,探索数据中的秘密。
30 1
|
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
|
26天前
|
机器学习/深度学习 人工智能 算法
探索人工智能:机器学习的基本原理与Python代码实践
【9月更文挑战第6天】本文深入探讨了人工智能领域中的机器学习技术,旨在通过简明的语言和实际的编码示例,为初学者提供一条清晰的学习路径。文章不仅阐述了机器学习的基本概念、主要算法及其应用场景,还通过Python语言展示了如何实现一个简单的线性回归模型。此外,本文还讨论了机器学习面临的挑战和未来发展趋势,以期激发读者对这一前沿技术的兴趣和思考。
下一篇
无影云桌面