Python - SkLearn库的使用

SkLearn简介

即scikit-learn库,是当今最流行的机器学习算法库之一,可以用来解决分类和回归问题。

数据的预处理

from sklearn import preprocessing

标签编码

from sklearn.preprocessing import LabelEncoder

encoder = LabelEncoder()
X['a'] = encoder.fit_transform(X['a'])	# 学习并转换
# eg. 若X为鸢尾花数据集,a代表种类,那么a属性会自动置换为0,1,2,,,,

数据集的处理

  1. 标准化

公式为:(X-mean)/std 计算时对每个属性/每列分别进行。

将数据按期属性(按列进行)减去其均值,并处以其方差。得到的结果是,对于每个属性/每列来说所有数据都聚集在0附近,方差为1。

from sklearn.preprocessing import Scale
X_scaled = scale(X)

StandardScaler类,使用该类的好处在于可以保存训练集中的参数(均值、方差)直接使用其对象转换测试集数据。

from sklearn.preprocessing import StandardScaler
trans = StandardScaler().fit(X)
X = trans.transform(X)

构建训练集和测试集

from sklearn.model_selection import train_test_split
train_X, test_X = train_test_split(X, test_size = 0.3)

建立预测模型

这里对于模型的基本思想不做描述。

K近邻算法(KNN)

from sklearn.neighbors import KNeighborsClassifier
knn_clf = KNeighborsClassifier()	# 创建模型
knn_clf.fit(train_X, train_y)		# 训练模型
knn_clf.predict(test_X)				# 测试模型,返回预测结果
knn_clf.score(test_X, test_y)		# 评估模型

# 注意,此时可以用之间标签编码的模型重新将预测结果反转
# encoder.inverse_transform(knn_clf.predict(test_X))

朴素贝叶斯算法

from sklearn.native_bayes import GaussianNB
bayes_clf = GaussianNB()

决策树算法

from sklearn.tree import DecisionTreeVClassifier
tree_clf = DecisionTreeVClassifier()

逻辑回归算法

from sklearn.linear_model import LogisticRegression
Log_clf = LogisticRegression(solver='saga', max_iter=1000)

支持向量机算法

from sklearn.svm import SVC
svm_clf = SVC()

随机森林(集成方法)

from sklearn.ensemble import RandomForestClassifier()
forest_clf = RandomForestClassifier()

Adaboost (集成方法)

from sklearn.ensemble import AdaBoostClassifier
ada_clf = AdaBoostClassifier()

梯度提升树GBDT(集成方法)

from sklearn.ensemble import GradientBoostingClssifier
gbdt_clf = GradientBoostingClssifier()

交叉验证

from sklearn.model_selection import cross_val_score
scores=cross_val_score(clf,X,y,cv=5,scoring='accuracy')
# 将数据分为5份,每份作为测试集进行一次训练,最终得到五个分数
# accuracy:评价指标是准确度,可以省略使用默认值

保存模型

from sklearn.externals import joblib
joblib.dump(clf,'clf.pkl')	# 保存模型
clf=joblib.load('clf.pkl')	# 加载模型

猜你喜欢

转载自blog.csdn.net/seek0226/article/details/108202437
今日推荐