1.通过对训练样本的学习,并建立分类规则,然后依据分类规则,对新样本数据进行分类预测。
2.虚拟变量:
sklearn包的算法,一般只支持连续值的变量,离散值的变量需要用连续值来表示,这种表示方法为虚拟变量。
例如:男女性别,用0,1表示。
虚拟变量的生成方法:
.DictVectorizer.fit_transform(dict)
dict 接受一个字典参数
import numpy,pandas
data=pandas.read_csv('filepath')
#转成dict,to_dict()
fData=data[['ParentIncome','IQ','Gender','ParentEnourage']].to_dict('records')
tData=data[['ColleagePlans']].as_matrix()
#虚拟变量生成,并且(toarray)将特征字典转换成一个大的稀疏矩
from sklearn.feature_extraction import DictVectorizer
dictvectorizer=DictVectorizer()
pdata=dictvectorizer.fit_transform(fData).toarray()
#取值,对每个离散变量字段去(n-1)列
pdata=pdata[:,1,2,3,5]
# 重排序
permutation=numpy.random.permutation(data.shape[0])
pdata=pdata[permutation]
tdata=tdata[permutation]
# 建模
from sklearn import tree
TModel=tree.DecisionTreeClassifier(max_leaf_nodes=8)
#训练模型
TModle.fit(data[:6000],data[:6000])
#评估模型
TModle.score(pdata[6000:],tdata[6000:])