Skip to content

使用 sklearn

1. 安装

bash
pip install sklearn

2. 了解

官方:

  • 如果你的数据少于 50 个,重新收集数据
  • 监督学习
    • 分类学习
    • 回归学习
  • 非监督
    • 聚类
  • 主成分分析
  • 降维

3. KNN 入门

py
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier

# 导入数据
iris_X, iris_y = datasets.load_iris(return_X_y=True)
print(iris_X[:2, :])

使用 KNN 分类

py
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier

iris_X, iris_y = datasets.load_iris(return_X_y=True)

X_train, X_test, y_train, y_test = train_test_split(
    iris_X, iris_y, test_size=0.3)

knn = KNeighborsClassifier()
knn.fit(X_train, y_train)

# 比较预测的结果和真实值
print(knn.predict(X_test))
print(y_test)

4. dataset 模块

有用的 dateset

  • 这个模块有一些真实的数据
  • 也有一些工具用来生成一些虚拟的数据集

使用线性回归模块

py
from sklearn import datasets
from sklearn.linear_model import LinearRegression

data_X, data_y = datasets.load_boston(return_X_y=True)

lr = LinearRegression()
lr.fit(data_X, data_y)

print(lr.predict(data_X[:4, :]))
print(data_y[:4])

创建线性分布的数据

py
from sklearn import datasets

import matplotlib.pyplot as plt

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

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

5. 常用的属性和功能

上次使用的代码

py
from sklearn import datasets
from sklearn.linear_model import LinearRegression

data_X, data_y = datasets.load_boston(return_X_y=True)

model = LinearRegression()
model.fit(data_X, data_y)

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

# 相当于 y = kx + b 的 k
print(model.coef_)

# 相当于 y = kx + b 的 b
print(model.intercept_)

# 获取模型的参数
print(model.get_params())
# {
#   'copy_X': True,
#   'fit_intercept': True,  # 
#   'n_jobs': None,         # 使用几个核
#   'normalize': False,
#   'positive': False
# }

# 模型得分(应当使用测试集进行测试)
print(model.score(data_X, data_y))

在线性回归模型中,得分的计算方法是 R2R^2 ,即 判定系数(Coefficient of determination)

6. 标准化