sklearn常用库合集及使用示例

文本类型特征值化

DictVectorizer、CountVectorizer、TfidfVectorizer。

字典类型的数据进行特征值化

from sklearn.feature_extraction import DictVectorizer

dictV = DictVectorizer(sparse=False)
res = dictV.fit_transform(X)

sparse:是否产生稀疏矩阵,默认为True。
X:字典类型的列表

文本类型的数据进行特征值化

from sklearn.feature_extraction.text import CountVectorizer

cv = CountVectorizer()
cv_trans = cv.fit_transform(['life is is short,i like python', 'life is to long,i dislike python'])

CountVectorizer:特征是每一个单词,值是每一个单词在每个样本中出现的次数。

from sklearn.feature_extraction.text import TfidfVectorizer

tf = TfidfVectorizer()
# 提取特征
tf_trans = tf.fit_transform([c1, c2, c3])

TfidfVectorizer:统计每个文档中每个单词的重要程度。

归一化与标准化

MinMaxScaler、StandardScaler。

归一化

from sklearn.preprocessing import MinMaxScaler

mm = MinMaxScaler()
data = mm.fit_transform(X)

X:要进行归一化的数据组成的二维矩阵。

标准化

from sklearn.preprocessing import StandardScaler

stand = StandardScaler()
data = stand.fit_transform(X)

X:要进行标准化的数据组成的二维矩阵。
需要注意的是:如果需要将标签也进行标准化,那么需要一个新的StandardScaler实例。
标准化后的值返回到标准化之前:stand.inverse_transform(y_test)

缺失值插补

SimpleImputer、fillna

from sklearn.impute import SimpleImputer

sim = SimpleImputer(missing_values=np.nan, strategy='mean')
data = sim.fit_transform([[1, 2],
                       [np.nan, 3],
                       [7, 6]]
                      )

missing_values:指定缺失值的类型,比如np.nan。
strategy:指定填充策略。mean为平均值,median为中位数,most_frequent为众数。

x['Age'].fillna(x['Age'].mean(), inplace=True)

fillna是pandas中的方法,需要注意的是,使用此方法空值必须是np.nan类型。

数据集切分

train_test_split

from sklearn.model_selection import train_test_split

x_train, x_test, y_train, y_test = train_test_split(X, y, test_size=0.25)

X表示特征矩阵,y表示标签矩阵,test_size指定测试集占比。

精确率和召回率

classification_report

from sklearn.metrics import classification_report

classification_report(y_test, y_predict)

y_test表示测试集中的标签结果。
y_predict是模型传入测试集后预测的结果。

轮廓系数

判断聚类的结果好坏,取值范围(-1,1)

from sklearn.metrics import silhouette_score

score = silhouette_score(data,predict)

交叉验证和网格搜索

GridSearchCV

from sklearn.model_selection import GridSearchCV

kn = KNeighborsClassifier()
# 网格搜索
param = {'n_neighbors': [3, 5, 9, 11]}
gc = GridSearchCV(estimator=kn, param_grid=param, cv=5)
gc.fit(x_train, y_train)

estimator表示模型实例。
param_grid表示字典类型超参集合。
cv表示k折交叉验证的次数k。

KNN近邻算法

from sklearn.neighbors import KNeighborsClassifier

kn = KNeighborsClassifier(n_neighbors=5)
kn.fit(x_train, y_train)

n_neighbors:指定周围“邻居”的数量,一般需要经过交叉验证和网格搜索,确定最优值。

朴素贝叶斯分类

from sklearn.naive_bayes import MultinomialNB

mlt = MultinomialNB(alpha=1.0)
mlt.fit(x_train, y_train)

alpha表示拉普拉斯平滑系数,一般指定为1。

决策树

from sklearn.tree import DecisionTreeClassifier

dec = DecisionTreeClassifier()

随机森林

from sklearn.ensemble import RandomForestClassifier

rf = RandomForestClassifier()

线性回归

LinearRegression是正规方程解,最小二乘法方式求解。

from sklearn.linear_model import LinearRegression

lr = LinearRegression()
lr.fit(x_train, y_train)

SGDRegressor是梯度下降法求解。

from sklearn.linear_model import SGDRegressor

sgd_lr = SGDRegressor()
sgd_lr.fit(x_train, y_train)

Ridge岭回归,带有L2正则化的线性回归。

from sklearn.linear_model import Ridge

# alpha正则化力度
rd = Ridge(alpha=1.0)
rd.fit(x_train, y_train)

逻辑回归

from sklearn.linear_model import LogisticRegression

lr = LogisticRegression()
lr.fit(x_train, y_train)

KMeans聚类

from sklearn.cluster import KMeans

km = KMeans(n_clusters=4)
km.fit(data)
predict = km.predict(data)

你可能感兴趣的:(机器学习,机器学习)