Sklearn简介
Scikit-learn(以前称为scikits.learn,也称为sklearn)是针对Python 编程语言的免费软件机器学习库。它具有各种分类,回归和聚类算法,包括支持向量机,随机森林,梯度提升,k均值和DBSCAN。其中sklearn里面包含了大量的优质的数据集鸢尾花,波士顿房价…可供直接使用。
介绍一下Sklearn的基本库:
from sklearn.datasets import load_iris #导入sklearn自带的数据集,这里导入的是鸢尾花的数据集
from sklearn.model_selection import train_test_split #划分训练集与测试集,待会详细讲
from sklearn.linear_model import LinearRegression #导入训练的模型,sklearn自带
#还有下面这三个库经常会用到
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
下面开始讲下sklearn的基本用法
from sklearn.datasets import load_iris #导入load_iris数据集
iris = load_iris()
x = iris.data
y = iris.target
data_iris = pd.DataFrame(x)
data_target = pd.DataFrame(y)
print(iris) #看下iris的样子,数据太多了这里我就不复制粘贴了
print("data_iris:","\n{}".format(data_iris))
print("data_target:","\n{}".format(data_target))
#data_iris:
# 0 1 2 3
# 0 5.1 3.5 1.4 0.2
# 1 4.9 3.0 1.4 0.2
# 2 4.7 3.2 1.3 0.2
# 3 4.6 3.1 1.5 0.2
# 4 5.0 3.6 1.4 0.2
# .. ... ... ... ...
# 145 6.7 3.0 5.2 2.3
# 146 6.3 2.5 5.0 1.9
# 147 6.5 3.0 5.2 2.0
# 148 6.2 3.4 5.4 2.3
# 149 5.9 3.0 5.1 1.8
# [150 rows x 4 columns]
# data_target:
# 0
# 0 0
# 1 0
# 2 0
# 3 0
# 4 0
# .. ..
# 145 2
# 146 2
# 147 2
# 148 2
# 149 2
# [150 rows x 1 columns]
上述可以看出data_iris是一个(150,4)的矩阵,每一行有四个特征:花萼长度、花萼宽度、花瓣长度、花瓣宽度,而data_target是一个(150,1)的矩阵只出现了[0,1,2]这是一个三分类的矩阵0,1,2分别代表了不同花的品种:山鸢尾、变色鸢尾还是维吉尼亚鸢尾iris里的feature_name里面有写
下面讲一下如何导入模块并训练
from sklearn.datasets import load_iris # 导入sklearn自带的数据集,这里导入的是鸢尾花的数据集
from sklearn.model_selection import train_test_split # 划分训练集与测试集,待会详细讲
from sklearn.linear_model import LinearRegression # 导入训练的模型,sklearn自带
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,random_state=1) # 划分训练集与测试集一般训练集为70%,测试集为30%,random_state的作用是固定随机数
model = LinearRegression() # 导入模型线性回归
model.fit(X_train,y_train) #开始训练
score = model.score(X_test,y_test) #对模型的拟合进行分数评估
print(score)
print(model.predict(X_test)) #使用X_test的值预测y的值