快速入门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分类算法+机器学习人工智能+计算机毕业设计
|
15天前
|
机器学习/深度学习 数据采集 算法
机器学习新纪元:用Scikit-learn驾驭Python,精准模型选择全攻略!
在数据爆炸时代,机器学习成为挖掘数据价值的关键技术,而Scikit-learn作为Python中最受欢迎的机器学习库之一,凭借其丰富的算法集、简洁的API和高效性能,引领着机器学习的新纪元。本文通过一个实际案例——识别垃圾邮件,展示了如何使用Scikit-learn进行精准模型选择。从数据预处理、模型训练到交叉验证和性能比较,最后选择最优模型进行部署,详细介绍了每一步的操作方法。通过这个过程,我们不仅可以看到如何利用Scikit-learn的强大功能,还能了解到模型选择与优化的重要性。希望本文能为你的机器学习之旅提供有价值的参考。
17 0
|
23天前
|
机器学习/深度学习 人工智能 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
下一篇
无影云桌面