机器学习 | Sklearn框架

前言

scikit-learn是常用python工具库,涵盖大多数机器学习算法的实现

基本模块

数据预处理模块preprocessing

sklearn.preprocessing涵盖了绝大部分数据预处理的函数,如对类别型特征处理的LabelEncoder,OneHotEncoder

一、sklearn自带数据集

数据集名称 备注
iris 花瓣数据集
boston 房价数据集
from sklearn import datasets
import numpy as np
#导入框架自带数据集
iris = datasets.load_iris() # 获取花瓣数据集

'''
iris.data # 特征数据
iris.target # 标签数据
'''

二、sklearn数据预处理

1. 数据划分

若采用“训练集+测试集”的切分方式
首先导入train_test_split模块

train_test_split()有两种划分形式:
1.若数据集是(feature+target)形式,则可按如下划分

df_train, df_test = train_test_split(self.all_data, test_size=0.2, random_state=2021)

2.若数据集将feature与target分开,则可按如下划分

from sklearn.model_selection import train_test_split

X = iris.data[:,:] # 采用所有的特征数据,若单独采用第3-5列可以iris.data[:,[3,5]]
y = iris.target # 标签值

# 70%训练集 + 30%测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0) 

'''
X_train.shape #X训练集shape
X_test.shape #X测试集shape
y_train.shape #Y训练集shape
y_test.shape #y测试机shape
'''

以上两种方式处理结果是一致的,验证方法是保证随机种子一致,观察结果保持一致

2. 特征标准化

skleran标准化的过程,即特征数据减去其均值后,除以其标准差
X _ s t d = x − m e a n ( x ) ) v a r ( x ) X\_std=\frac{x-mean(x))}{var(x)} X_std=var(x)xmean(x))

得到缩放后的数据更符合正态分布

from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
sc.fit(X_train)

'''
sc.scale_ #可查看标准化后的scale,(均值,标准差)
'''

#获取标准化后的特征数据
X_train_std = sc.transform(X_train)
X_test_std = sc.transform(X_test)

三、sklearn五大基本函数

fit 拟合

首先从sklearn库中提取模型后,然后从模型中fit数据
例如感知机模型:

from sklearn.linear_model import Perceptron

ppn = Perceptron(max_iter=5)
ppn.fit(X_train_std,y_train)
'''
ppn.coef_ # 查看wx+b中的w
ppn.interupt_ # 查看wx+b中的b

predict 预测

模型训练好后,就可以检测模型的预测功能了

y_pred = ppn.predict(X_test_std)
'''
y_pred # 预测值的数据标签
y_test # 真实值的数据标签
'''
# 统计误分类的样本个数
print('Wrong predict nums:%d'%(y_pred != y_test).sum())

# 输出模型准确率
from sklearn.metrics import accuracy_score
print('Accuracy:%.2f'% accuracy_score(y_test, y_pred))

transform 变换

fit_transform 拟合+变换

predict_prob 预测概率

你可能感兴趣的:(机器学习,Python,sklearn,机器学习,python)