Python机器学习(三十三)Sklearn速查
Scikit-learn是一个开源Python库,它使用统一的接口实现了一系列机器学习、预处理、交叉验证和可视化算法。 一个基本例子from sklearn import neighbors, datasets, preprocessing from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score iris = datasets.load_iris() X, y = iris.data[:, :2], iris.target X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=33) scaler = preprocessing.StandardScaler().fit(X_train) X_train = scaler.transform(X_train) X_test = scaler.transform(X_test) knn = neighbors.KNeighborsClassifier(n_neighbors=5) knn.fit(X_train, y_train) y_pred = knn.predict(X_test) accuracy_score(y_test, y_pred)加载数据
数据类型可以是NumPy数组、SciPy稀疏矩阵,或者其他可转换为数组的类型,如panda DataFrame等。 import numpy as np X = np.random.random((10,5)) y = np.array(["M","M","F","F","M","F","M","M","F","F","F"]) X[X < 0.7] = 0预处理数据标准化/Standardizationfrom sklearn.preprocessing import StandardScaler scaler = StandardScaler().fit(X_train) standardized_X = scaler.transform(X_train) standardized_X_test = scaler.transform(X_test)归一化/Normalizationfrom sklearn.preprocessing import Normalizer scaler = Normalizer().fit(X_train) normalized_X = scaler.transform(X_train) normalized_X_test = scaler.transform(X_test)二值化/Binarizationfrom sklearn.preprocessing import Binarizer binarizer = Binarizer(threshold=0.0).fit(X) binary_X = binarizer.transform(X)类别特征编码from sklearn.preprocessing import LabelEncoder enc = LabelEncoder() y = enc.fit_transform(y)缺失值估算>>>from sklearn.preprocessing import Imputer >>>imp = Imputer(missing_values=0, strategy="mean", axis=0) >>>imp.fit_transform(X_train)生成多项式特征from sklearn.preprocessing import PolynomialFeatures poly = PolynomialFeatures(5) oly.fit_transform(X)训练与测试数据分组from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split(X,y,random_state=0)创建模型有监督学习模型线性回归from sklearn.linear_model import LinearRegression lr = LinearRegression(normalize=True)支持向量机(SVM)from sklearn.svm import SVC svc = SVC(kernel="linear")朴素贝叶斯from sklearn.naive_bayes import GaussianNB gnb = GaussianNB()KNNfrom sklearn.naive_bayes import GaussianNB gnb = GaussianNB()无监督学习模型主成分分析(PCA)from sklearn.decomposition import PCA pca = PCA(n_components=0.95)k均值/K Meansfrom sklearn.cluster import KMeans k_means = KMeans(n_clusters=3, random_state=0)模型拟合有监督学习lr.fit(X, y) knn.fit(X_train, y_train) svc.fit(X_train, y_train)无监督学习k_means.fit(X_train) pca_model = pca.fit_transform(X_train)
回到顶部 模型预测有监督学习y_pred = svc.predict(np.random.random((2,5))) y_pred = lr.predict(X_test) y_pred = knn.predict_proba(X_test))无监督学习y_pred = k_means.predict(X_test)评估模型性能分类指标准确度knn.score(X_test, y_test) from sklearn.metrics import accuracy_score accuracy_score(y_test, y_pred)分类报告from sklearn.metrics import classification_report print(classification_report(y_test, y_pred)))混淆矩阵from sklearn.metrics import confusion_matrix print(confusion_matrix(y_test, y_pred)))回归指标平均绝对误差from sklearn.metrics import mean_absolute_error y_true = [3, -0.5, 2]) mean_absolute_error(y_true, y_pred))均方差from sklearn.metrics import mean_squared_error mean_squared_error(y_test, y_pred))R^2Rfrom sklearn.metrics import r2_score r2_score(y_true, y_pred))聚类指标调整兰德系数from sklearn.metrics import adjusted_rand_score adjusted_rand_score(y_true, y_pred))同质性/Homogeneityfrom sklearn.metrics import homogeneity_score homogeneity_score(y_true, y_pred))调和平均指标/V-measurefrom sklearn.metrics import v_measure_score metrics.v_measure_score(y_true, y_pred))交叉验证print(cross_val_score(knn, X_train, y_train, cv=4)) print(cross_val_score(lr, X, y, cv=2))模型调优网格搜索from sklearn.grid_search import GridSearchCV params = {"n_neighbors": np.arange(1,3), "metric": ["euclidean", "cityblock"]} grid = GridSearchCV(estimator=knn,param_grid=params) grid.fit(X_train, y_train) print(grid.best_score_) print(grid.best_estimator_.n_neighbors)随机参数优化from sklearn.grid_search import RandomizedSearchCV params = {"n_neighbors": range(1,5), "weights": ["uniform", "distance"]} rsearch = RandomizedSearchCV(estimator=knn, param_distributions=params, cv=4, n_iter=8, random_state=5) rsearch.fit(X_train, y_train) print(rsearch.best_score_)
特斯拉的无线网络之TPMS在整理线束架构的时候,一个很让人感兴趣的方向,就是汽车里面的无线网络按照什么样的结构来发展像TPMS无线钥匙手机钥匙和是否会出现更多的车内无线通信(无线BMS),我觉得从这个架构来
快手董事长被带走调查?紧急回应假的,已报案点蓝字关注,不迷路有市场传言称,快手董事长宿华疑于四月底被有关部门带走配合调查。5月23日晚间,快手回复证券时报券商中国记者称,已正式向公安机关报案并启动法律程序,坚决维护公司和宿
君逸数码珠城科技通力科技将于5月26日创业板上会君逸数码是一家专业的智慧城市综合解决方案提供商,主营业务是为智慧城市领域客户提供系统集成服务运维服务和自研产品销售等产品和服务。公司主要采用物联网云计算大数据人工智能BIM等新一代
俄罗斯Tinkoff银行推出TinkoffPay即时支付服务据塔斯社5月23日报道,俄罗斯Tinkoff银行推出了TinkoffPay即时支付服务,该服务将允许客户在线上和线下商店在线支付商品和服务,无需输入卡的详细信息。图片来自塔斯社据悉
苹果CEO库克在2022年时代100榜单中成为封面人物IT之家5月24日消息,苹果公司首席执行官蒂姆库克入选时代周刊2022年最具影响力的100人名单,在泰坦(Titans)类别中获得一个席位,并获得了一张封面照。时代周刊每年都会发布
加码智慧办公,华为推新品缓解远程办公痛点5月23日晚,在MateBook系列新品发布会上,华为接连发布了MateBook16si9版本MateBookD16MateBook14MateBookD14等四款笔记本电脑,以及
从模式创新到科技破局,云从科技如何穿越时代变革周期?说起当下资本和时代都热捧的风口,AI无论如何都算得上是一个。自1956年,人工智能的概念被提出以来,国内外众多科学家便开始了长达数十年的对极致智能化目标的追求。不过,经过多年的发展
比亚迪华为合作造车中国汽车行业最强组合定价150万?北京时间5月22日,认证为比亚迪汽车品牌及公关事业部总经理的微博ID不会武功的武功李云飞,发布了关于比亚迪高端品牌的最新消息,核心信息包括了两点1独立运作的高端品牌将应用比亚迪最尖
关于火烧赤壁大家好,初来头条,我是赤壁哥,一个天猫运营,也是一名电商创业者,之前是派代网的优秀电商运营作者,获得广泛电商卖家和运营的好评,后派代关闭,辗转到知乎上分享实操运营干货,现在准备进入
日媒美零件占率达38。5,荣耀确定是你们国产的手机?有好事日媒爆料,日将荣耀X30拆解后,发现了劲爆的结果!荣耀X30去美化进程不进反退,美核心部件占比从9。6升至38。5,国产部件只有10,这确定是你们国产的手机吗?这让一众花粉纷
Oracle11g安装后参数设置规范概述在Oracle11g安装并建库后,需要进行一些调整,使数据库能够稳定高效地运行。花了一段时间整理了以下的参数设置规范,仅供参考。一建库参数设置1进程及会话数(默认150)查看进