sklearn是目前python中十分流行的用来实现机器学习的第三方包,其中包含了多种常见算法如:决策树,逻辑回归、集成算法等。
即使你还不太懂机器学习的具体过程,依旧可以使用此库进行机器学习操作,因为其对各种算法进行了良好的封装,可以在不了解算法实现过程的情况下使用算法,所以可以把 sklearn 库当作学习过程中的一个过度,如果你想快速建立一个模型,这也是一个不错的选择。
sklearn 内含有很多数据集,可以用来练手,一些小规模数据可以直接使用,但大规模数据要下载
内部小规模数据的导入方式:
from sklearn import datasets
boston = datasets.load_boston() # 导入波士顿房价数据
iris = datasets.load_iris() # 导入鸢尾花数据
diabetes = datasets.load_diabetes() # 导入糖尿病数据
digits = datasets.load_digits() # 导入手写数字集数据
提取特征和目标,以手写数字集为例:
X = digits.data # 获得其特征向量
y = digits.target # 获得样本label
若使用外部的数据集,则需要另行导入,比如以 csv 文件存储的信息,可以选择使用 Pandas 库导入:
import pandas as pd
df = pd.read_csv('load.csv')
如果原始数据不太标准,为避免后期学习过程太长,可以先对数据进行处理
使用模块
from sklearn import preprocessing
标准化
scaler = preprocessing.StandardScaler().fit(train_data)
scaler.transform(train_data)
scaler.transform(test_data)
归一化
scaler = preprocessing.MinMaxScaler(feature_range=(0, 1)).fit(train_data)
scaler.transform(train_data)
scaler.transform(test_data)
正则化:
normalized = preprocessing.normalize(X, norm='...')
为了查看训练出的模型的效果,需要将数据拆分为训练集和测试集,一部分用于训练另一部分用于验证
from sklearn.mode_selection import train_test_split
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.3, random_state=1)
test_size
为测试集的比例,random_state
为随机种子
举几个例子
from sklearn.svm import SVC # 支持向量机
model = SVC(C=1.0, kernel=’rbf’, gamma=’auto’)
from sklearn import neighbors # KNN
model = neighbors.KNeighborsClassifier(n_neighbors=5, n_jobs=1) # 分类
model = neighbors.KNeighborsRegressor(n_neighbors=5, n_jobs=1) # 回归
from sklearn.neural_network import MLPClassifier # 神经网络
model = MLPClassifier(activation='relu', solver='adam', alpha=0.0001)
sklearn 为所有模型提供了非常相似的接口,这样就使训练和验证过程有一个同一的方法
上面所有模型都以 model 变量表示,下面直接运用:
model.fit(X_train, y_train) # 拟合模型
model.predict(X_test) # 模型预测
model.get_params() # 获得这个模型的参数
model.score(X_test, y_test) # 为模型进行打分
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/180915.html原文链接:https://javaforall.cn