python_Sklearn基础

本文介绍了Python机器学习库Sklearn的基础知识,包括安装、数据获取与预处理、模型选择与优化、模型评估与保存。内容涵盖线性回归、逻辑回归、朴素贝叶斯、决策树、支持向量机、KNN、随机森林和多层感知机,并讨论了过拟合问题和参数优化方法,如使用贝叶斯优化寻找最佳参数组合。
摘要由CSDN通过智能技术生成

python_Sklearn基础

By:小橙
参考博客_1 参考博客_2

Scikit-learn(sklearn)是机器学习中常用的第三方模块,对常用的机器学习方法进行了封装,包括回归(Regression)、降维(Dimensionality Reduction)、分类(Classfication)、聚类(Clustering)等方法。当我们面临机器学习问题时,便可根据下图来选择相应的方法。Sklearn具有以下特点:

  • 简单高效的数据挖掘和数据分析工具
  • 让每个人能够在复杂环境中重复使用
  • 建立NumPy、Scipy、MatPlotLib之上
    在这里插入图片描述

Sklearn安装

pip install -U scikit-learn

获取数据

  • sklearn数据集
  • 创建数据集

sklearn数据集

from sklearn import datasets
iris = datasets.load_iris() # 导入数据集
X = iris.data # 获得其特征向量
y = iris.target # 获得样本label

创建数据集

from sklearn.datasets.samples_generator import make_classification

X, y = make_classification(n_samples=6, n_features=5, n_informative=2, n_redundant=2, n_classes=2, 
                           n_clusters_per_class=2,scale=1.0, random_state=20)
# n_samples: 指定样本数
# n_features:指定特征数
# n_classes: 指定几分类
# random_state:随机种子,使得随机状可重
print(X)
print(y)
[[-0.6600737  -0.0558978   0.82286793  1.1003977  -0.93493796]
 [ 0.4113583   0.06249216 -0.90760075 -1.41296696  2.059838  ]
 [ 1.52452016 -0.01867812  0.20900899  1.34422289 -1.61299022]
 [-1.25725859  0.02347952 -0.28764782 -1.32091378 -0.88549315]
 [-3.28323172  0.03899168 -0.43251277 -2.86249859 -1.10457948]
 [ 1.68841011  0.06754955 -1.02805579 -0.83132182  0.93286635]]
[0 1 1 0 0 1]
for x_,y_ in zip(X,y):
    print(y_,end=': ')
    print(x_)
0: [-0.6600737  -0.0558978   0.82286793  1.1003977  -0.93493796]
1: [ 0.4113583   0.06249216 -0.90760075 -1.41296696  2.059838  ]
1: [ 1.52452016 -0.01867812  0.20900899  1.34422289 -1.61299022]
0: [-1.25725859  0.02347952 -0.28764782 -1.32091378 -0.88549315]
0: [-3.28323172  0.03899168 -0.43251277 -2.86249859 -1.10457948]
1: [ 1.68841011  0.06754955 -1.02805579 -0.83132182  0.93286635]

数据预处理

  • 数据归一化
  • 正则化(normalize)
  • one-hot编码
from sklearn import preprocessing

数据归一化

data = [[0, 0], [0, 0], [1, 1], [1, 1]]
# 1. 基于mean和std的标准化
scaler = preprocessing.StandardScaler().fit(train_data)
scaler.transform(train_data)
scaler.transform(test_data)

# 2. 将每个特征值归一化到一个固定范围
scaler = preprocessing.MinMaxScaler(feature_range=(0, 1)).fit(train_data)
scaler.transform(train_data)
scaler.transform(test_data)
#feature_range: 定义归一化范围,注用()括起来

正则化(normalize)

X = [[ 1., -1.,  2.],
      [ 2.,  0.,  0.],
      [ 0.,  1., -1.]]
X_normalized = preprocessing.normalize(X, norm='l2')
X_normalized 
array([[ 0.40824829, -0.40824829,  0.81649658],
       [ 1.        ,  0.        ,  0.        ],
       [ 0.        ,  0.70710678, -0.70710678]])

one-hot编码

data = [[0, 0, 3], [1, 1, 0], [0, 2, 1], [1
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值