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。
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)
from sklearn.cluster import KMeans
km = KMeans(n_clusters=4)
km.fit(data)
predict = km.predict(data)