@nemos
2017-05-09T09:18:40.000000Z
字数 3318
阅读 1344
ml
from sklearn import datasets
from sklearn.cross_validation import train_test_split
from sklearn.neighbors import KNeighborsClassifier
# 数据载入
iris = datasets.load_iris()
iris_X = iris.data
iris_Label = iris.target
# 训练集和测试集的分割
X_train, X_test, label_train, label_test = train_test_split(
iris_X, iris_Label,
test_size=0.3) # 测试集比例
# 初始化模型
knn = KNeighborsClassifier()
# 模型训练
knn.fit(X_train, label_train)
# 模型预测
y_test = knn.predict(X_test)
# 模型评估
knn.score(x_test, y_test)
sklearn.preprcessing
规范化:
MinMaxScaler
:最大最小值规范化Normalizer
:使每条数据各特征值的和为1StandardScaler
:为使各特征的均值为0,方差为1编码:
LabelEncoder
:把字符串类型的数据转化为整型OneHotEncoder
:特征用一个二进制数字来表示Binarizer
:为将数值型特征的二值化MultiLabelBinarizer
:多标签二值化sklearn.feature_extraction
dictvectorizer
: 将dict类型的list数据,转换成numpy arrayfeaturehasher
: 特征哈希,相当于一种降维技巧image
:图像相关的特征抽取text
: 文本相关的特征抽取text.countvectorizer
:将文本转换为每个词出现的个数的向量text.tfidfvectorizer
:将文本转换为tfidf值的向量text.hashingvectorizer
:文本的特征哈希sklearn.feature_selection
VarianceThreshold
: 删除特征值的方差达不到最低标准的特征SelectKBest
: 返回k个最佳特征SelectPercentile
: 返回表现最佳的前r%个特征sklearn.decomposition
sklearn.ensemble
BaggingClassifier
: Bagging分类器组合BaggingRegressor
: Bagging回归器组合AdaBoostClassifier
: AdaBoost分类器组合AdaBoostRegressor
: AdaBoost回归器组合GradientBoostingClassifier
:GradientBoosting分类器组合GradientBoostingRegressor
: GradientBoosting回归器组合ExtraTreeClassifier
:ExtraTree分类器组合ExtraTreeRegressor
: ExtraTree回归器组合RandomTreeClassifier
:随机森林分类器组合RandomTreeRegressor
: 随机森林回归器组合sklearn.metrics
分类
accuracy_score
:分类准确度condusion_matrix
:分类混淆矩阵classification_report
:分类报告precision_recall_fscore_support
:计算精确度、召回率、f、支持率jaccard_similarity_score
:计算jcaard相似度hamming_loss
:计算汉明损失zero_one_loss
:0-1损失hinge_loss
:计算hinge损失log_loss
:计算log损失回归
explained_varicance_score
:可解释方差的回归评分函数mean_absolute_error
:平均绝对误差mean_squared_error
:平均平方误差多标签
coverage_error
:涵盖误差label_ranking_average_precision_score
:计算基于排名的平均误差Label ranking average precision (LRAP)聚类
adjusted_mutual_info_score
:调整的互信息评分silhouette_score
:所有样本的轮廓系数的平均值silhouette_sample
:所有样本的轮廓系数学习曲线,样本集由小变大时模型的评估。
from sklearn.learning_curve import learning_curve
train_sizes, train_loss, test_loss = learning_curve(
model, X, label,
cv=10, scoring='mean_squared_error',
train_sizes=[0.1, 0.25, 0.5, 0.75, 1]) # 每一轮样本占总样本的百分比。
模型曲线
from sklearn.learning_curve import validation_curve
# 参数测试集
param_range = np.logspace(-6, -2.3, 5)
train_loss, test_loss = validation_curve(
Model(), X, y,
param_name='gamma', # 指定参数名
param_range=param_range, # 指定参数取值范围个步长
cv=10, scoring='mean_squared_error')
sklearn.cross_validation
模型训练
KFold
:K-Fold交叉验证迭代器。接收元素个数、fold数、是否清洗LeaveOneOut
:LeaveOneOut交叉验证迭代器LeavePOut
:LeavePOut交叉验证迭代器LeaveOneLableOut
:LeaveOneLableOut交叉验证迭代器LeavePLabelOut
:LeavePLabelOut交叉验证迭代器其他
train_test_split
:分离训练集和测试集(不是K-Fold)cross_val_score
:交叉验证评分,可以指认cv为上面的类的实例cross_val_predict
:交叉验证的预测。sklearn.grid_search
GridSearchCV
:搜索指定参数网格中的最佳参数ParameterGrid
:参数网格ParameterSampler
:用给定分布生成参数的生成器RandomizedSearchCV
:超参的随机搜索通过best_estimator_.get_params()方法,获取最佳参数。
# 数据导入
loaded_data = datasets.load_boston()
data_X = loaded_data.data
data_label = loaded_data.target
# 数据生成
X, label = datasets.make_regression(
n_samples=100, # 样本数
n_features=1, # 特征数
n_targets=1, # label数
noise=10)
from sklearn import svm
from sklearn import datasets
clf = svm.SVC()
iris = datasets.load_iris()
X, y = iris.data, iris.target
clf.fit(X,y)
from sklearn.externals import joblib #jbolib模块
#保存Model(注:save文件夹要预先建立,否则会报错)
joblib.dump(clf, 'save/clf.pkl')
#读取Model
clf3 = joblib.load('save/clf.pkl')