Scikit-Learm是利用Python进行机器学习的常用的第三方模块。机器学习的功能主要包括分类、回归、降维和聚类了主要的分类算法包括局册数、贝叶斯分类、支持向量机、随机森林等。主要的回归算法有SVR、Lasso等。常见的降维方法有主要的成分分析、主题模型等。常见的聚类分析有K-means、Gaussian等。同时,Scikit-Learn还包含了特征提取、数据处理和模型评估这三大块。
Scikit-Learn 的模块列表:
(1)关于数据集的模块:sklearn.datasets
(2)关于特征预处理的模块:sklearn.feature_extraction(特征抽取)、sklearn.featurn_selection(特征选择)、sklearn.preprocessing(特征预处理)、sklearn.random_projection(数据集合)
(3)关于模型训练的模块:slearn.cluster、sklearn.cluster.bicluster、sklearn.linear_model、sklearn.naive_bayes、sklearn.naruaral_network、sklearn.svm、sklearn.tree
(4)关于模型评估的模块:sklearn.metrics、sklearn.cross_validation
(5)关于其他功能的模块:sklearn.corvariance、sklearn.mixture等
1、决策树
决策树算法易于理解,计算简单,能够处理有缺失属性的样本及不相关的特征,在短时间内可对较大的数据做出可行且效果良好的判断。缺点就是会忽略数据之间的相关性、容易出现过拟合等。
下面调用sklearn.tree对训练集进行训练
1、在机器学习中,我们通常将原始数据按照比例分割为“测试集”和“训练集”,通常使用sklearn.cross_validation里的train_test_split模块用来分割数据。cross_validation已经弃用,现在改为从 sklearn.model_selection 中调用train_test_split 函数。
train_test_split参数含义参考这里!
2、sklearn.tree.DecisionTreeClassifier 参数含义参考这里!
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import sklearn
import re
from sklearn.model_selection import train_test_split
import sklearn.tree as tree
#调用sklearn.tree对训练集进行训练
data=pd.read_excel("E://《Python与量化投资-从理论到实战》 代码//chapter3//loan.xlsx")
target=data["Type"]
data.drop("Type",axis="columns",inplace=True) #axis=1表示删除行,axis=0表示删除列
train_data,test_data,train_target,test_target=train_test_split(data,target,test_size=0.4,train_size=0.6,random_state=12345) #分割数据
clf_1=tree.DecisionTreeClassifier(criterion="entropy") #用信息增益来表示决策树的纯度
clf_1.fit(train_data,train_t