本篇文章对sklearn的常规基础用法做一些简单的介绍,并没有对各个机器学习算法用sklearn进行实现。
1.sklearn简介
Scikit-learn(sklearn)是机器学习中常用的第三方模块,对常用的机器学习方法进行了封装,包括回归(Regression),降维(Dimensionality Reduction),分类(Classfication),聚类(Clustering)方法。
特点:
简单高效的数据挖掘环境中和数据分析工具;
建立Numpy,Scipy,Matplolib之上
安装命令: pip install scikit-learn
2.sklearn常规使用模式
(1)导包
(2)加载数据
(3)数据预处理
(4)选择算法训练数据
(5)测试数据
(6)预测结果写入.csv中
3.数据标准化
概念: 标准化,先对数据进行去中心化,再除以特征的标准差,对数据进行缩放
实现方法: 数据标准化通过sklearn中preprocessing.scale()方法实现
from sklearn import preprocessing #导入包
import numpy as np
a = np.array([[10,2.7,3.6],
[-100,5,-2],
[120,20,40]], dtype=np.float64)
print("row data:",a) #未标准化的数据
print("process data:",preprocessing.scale(a)) #标准化后的数据
结果:
row data: [[ 10. 2.7 3.6]
[-100. 5. -2. ]
[ 120. 20. 40. ]]
process data: [[ 0. -0.85170713 -0.55138018]
[-1.22474487 -0.55187146 -0.852133 ]
[ 1.22474487 1.40357859 1.40351318]]
4.交叉验证
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import cross_val_score #导入交叉验证
#加载数据
iris = load_iris()
X = iris.data
y = iris.target
#训练数据
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.3)
knn = KNeighborsClassifier(n_neighbors=5) #选择邻近的5个点
scores = cross_val_score(knn,X,y,cv=5,scoring='accuracy') #5折交叉验证 ,评分方式为accuracy(精准度)
print(scores) #每组评分结果
print(scores.mean()) #平均评分结果