1.通過對訓練樣本的學習垫挨,并建立分類規(guī)則跛溉,然后依據(jù)分類規(guī)則街夭,對新樣本數(shù)據(jù)進行分類預測砰碴。
2.虛擬變量:
sklearn包的算法,一般只支持連續(xù)值的變量板丽,離散值的變量需要用連續(xù)值來表示呈枉,這種表示方法為虛擬變量。
例如:男女性別,用0猖辫,1表示酥泞。
虛擬變量的生成方法:
.DictVectorizer.fit_transform(dict)
dict 接受一個字典參數(shù)
import numpy,pandas
data=pandas.read_csv('filepath')
#轉(zhuǎn)成dict,to_dict()
fData=data[['ParentIncome','IQ','Gender','ParentEnourage']].to_dict('records')
tData=data[['ColleagePlans']].as_matrix()
#虛擬變量生成住册,并且(toarray)將特征字典轉(zhuǎn)換成一個大的稀疏矩
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:])