Sklearn 学习(一)

Scikit learn介绍

Scikit learn 简称sklearn,是机器学习领域最知名的python模块之一。

Sklearn 包含了很多种机器学习的方式:

Classification 分类
Regression 回归
Clustering 非监督分类
Dimensionality reduction 数据降维
Model Selection 模型选择
Preprocessing 数据预处理

Sklearn 通用学习模式

1、导入模块

from sklearn import datasets #导入数据集
from sklearn.model_selection import train_test_split #导入模式选择(随机划分训练集和数据集)
from sklearn.neighbors import KNeighborsClassifier #导入机器学习方法(KNN)

2、创建数据

加载 iris 的数据,把属性存在 X,类别标签存在 y:
iris = datasets.load_iris()
iris_x= iris.data
iris_y = iris.target
将数据集随机分为训练集和测试集,其中 test_size=0.3,即测试集占总数据的 30%:
x_train, X_test, y_train, y_test = train_test_split( iris_x, iris_y, test_size=0.3)

3、建立模型-训练-预测

>
- 选择学习模块,本例中使用knn

knn = KNeighborsClassifier()

  • 用fit训练训练集;

knn.fit(x_train, y_train)

  • 用predict对测试集进行预测;

print(knn.predict(x.test))

  • 与真实测试集进行对比;

print(y_test)

Sklearn数据集

Sklearn中包含有大量的数据集,eg:bosten,iris,digital…
同时用户也可以自己生成虚拟数据集
举例:
例1 对bosten数据集进行训练

1、导入模块

from future import print_function
from sklearn import datasets
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt

2、导入数据-训练模型
用datasets.load_boston()加载数据,将数据赋给x,将label赋给y;

loaded_data=datasets.load_bosten()
data_x=loaded_data.data
data_y=loaded_data.target

3、建立模型,用训练数据进行训练,预测

model=LinearRegression()
model.fit(data_x,data_y)
print(model.predict(data_x))
print(data_y)

例2 创建虚拟数据集
用函数建立100个samples,1个feature,1个target

x, y = datasets.make_regression(n_samples=100, n_features=1, n_targets=1, noise=1)

用散点图scatter显示数据;

plt.scatter(x,y)
plt.show()

Sklearn 学习(一)

模型的属性和功能

和上相同,首先导入包,数据和model

from sklearn import datasets
from sklearn.linear_model import LinearRegression

loaded_data = datasets.load_boston()
data_X = loaded_data.data
data_y = loaded_data.target

model = LinearRegression()

对数据集进行训练和预测,用了model.fit和model.predict

model.fit(data_X, data_y)

print(model.predict(data_X[:4, :]))

这一部分再提出两个model属性;
model.coef_
model.intercept_
对于上述线性回归model,上述两个参数即模型的斜率和截距