首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Scikit-learn:机器学习工具包的典范

大家好呀,我是二维。今天咱们来聊聊Python机器学习里的一个超级好用的工具包 - Scikit-learn 。说实话,我第一次接触机器学习的时候也是一脸懵,看到那些复杂的算法就头大。不过用了Scikit-learn后,感觉整个人都通透了,它把复杂的算法都封装得特别优雅,用起来贼简单。

安装Scikit-learn特别简单,打开终端敲一行命令就搞定:

pip install scikit-learn

引入模块的时候,业内都喜欢用这么个简写:

import sklearn

# 常用的一些子模块

from sklearn import datasets # 数据集

from sklearn.model_selection import train_test_split # 数据集分割

from sklearn.linear_model import LinearRegression # 线性回归

温馨提示:安装的时候最好用清华源,速度飞快,把pip那个地址换成就成。

Scikit-learn自带了不少经典数据集,比如波士顿房价、鸢尾花分类这些,练手特别好用:

from sklearn.datasets import load_iris

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=42)

这代码看着挺简单吧?但有个坑得提醒下:random_state这个参数记得设置,不然每次运行结果都不一样,调试起来可烦人了。

说实话,Scikit-learn最牛的地方就是把所有模型都统一到一个套路里了:

from sklearn.neighbors import KNeighborsClassifier

# 创建模型

knn = KNeighborsClassifier(n_neighbors=5)

# 训练模型

knn.fit(X_train, y_train)

# 预测

predictions = knn.predict(X_test)

看到没?不管是KNN、随机森林还是神经网络,都是这仨步骤:创建、训练、预测。这设计简直绝了!

训练完模型,肯定得看看效果咋样吧:

from sklearn.metrics import accuracy_score, confusion_matrix

# 计算准确率

acc = accuracy_score(y_test, predictions)

print(f“准确率:{acc}”)

# 混淆矩阵

cm = confusion_matrix(y_test, predictions)

print(“混淆矩阵:\n”, cm)

温馨提示:accuracy_score返回的是0到1之间的小数,要想显示百分比得自己乘100。

机器学习里有句老话:垃圾进垃圾出。数据预处理真的特别重要:

from sklearn.preprocessing import StandardScaler

# 标准化数据

scaler = StandardScaler()

X_train_scaled = scaler.fit_transform(X_train)

X_test_scaled = scaler.transform(X_test)

小技巧:测试集只能用transform,不能用fit_transform,不然就数据泄露了。这个问题我当年踩过坑,记忆深刻啊!

如果数据处理步骤多,一个一个写多麻烦。Pipeline直接一条龙搞定:

from sklearn.pipeline import Pipeline

pipe = Pipeline([

('scaler', StandardScaler()),

('knn', KNeighborsClassifier(n_neighbors=5))

])

# 一步到位

pipe.fit(X_train, y_train)

机器学习说复杂也复杂,说简单也简单。用Scikit-learn的话,上手特别快。它的API设计得真是太优雅了,基本上看个函数名就知道啥意思。花几天时间熟悉下基本操作,搞个简单的机器学习项目完全没问题。顺便说一句,文档写得特别详细,遇到不会的直接查文档准没错。

这玩意真是Python机器学习的瑞士军刀,我现在做项目基本上都离不开它。不过话说回来,知其然也得知其所以然,建议大家多看看算法原理,光会用工具可不够。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OwSVfM7LKJ-g9oINngK6P4Sw0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券