sklearn笔记

sklearn 算法结构整理

代码结构

导入数据包

from sklearn.datasets import **

预处理包

from sklearn.model_selection import train_test_split
from sklearn.model_selection import GridSearchCV
from sklearn.preprocessing import StandardScaler  # 数据标准化
from sklearn.feature_extraction.text import TfidfVectorizer # tf_idf文本特征提取模块

导入算法模块

根据数据集特征选择合适的算法,算法参数可使用网格搜索或手动调试

from sklearn.neighbors import KNeighborsClassifier # k近邻算法
from sklearn.naive_bayes import MultinomialNB # 多项式贝叶斯算法
from sklearn.tree import DecisionTreeClassifier, export_graphviz # 决策树、决策树可视化
from sklearn.linear_model import LinearRegression, SGDRegressor, Ridge  # 逻辑回归、梯度下降、岭回归

导入结果评估模块(选用)

from sklearn.metrics import mean_squared_error  # 均方误差

数据规范化(预处理)

# 缺失值处理
x["age"].fillna(x["age"].mean(), inplace=True)
# 标准化
transfer = StandardScaler()
x_train = transfer.fit_transform(x_train)
x_test = transfer.transform(x_test)

划分数据集

将 数据集 和对应目标集划分成 训练集和测试集

x_train, x_test, y_train, y_test = train_test_split(iris.data, iris.target, random_state=22)  # random_state随机种子起点

特征工程:标准化

transfer = StandardScaler()
x_train = transfer.fit_transform(x_train)
# 测试集要用训练集同样的fit值来标准化数据,所以直接transform,
x_test = transfer.transform(x_test)

实例化相关算法

# 实例化转换器类
# 1.指定k值
estimator = KNeighborsClassifier(n_neighbors=3) 
# 2.网格搜索参数算法选择k值
estimator = KNeighborsClassifier()

网格搜索与k折交叉验证(选用)

# 参数准备
param_dict = {"n_neighbors": [1, 3, 5, 7, 9, 11]}
estimator = GridSearchCV(estimator,   param_grid=param_dict,   cv=10)  # 数据量大时cv可调小以防止时间过长

算法估计器拟合数据集

estimator.fit(x_train, y_train)  # 训练数据集

估计器输出

#  1.直接比对
y_predict = estimator.predict(x_test)  # 用训练后的结果测试数据
print("y_predict:\n", y_predict)
print("直接比对真实值和预测值:\n", y_test == y_predict)

# 2.计算准确率
score = estimator.score(x_test, y_test)  # 对应于训练数据estimator.fit(x_train, y_train)
print("准确率为:\n", score)

模型计算误差计算

error = mean_squared_error(y_test, y_predict)
print("正规方程均方误差为;\n", error)
``

### 模型计算误差计算

```python
error = mean_squared_error(y_test, y_predict)
print("正规方程均方误差为;\n", error)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值