3. 逻辑回归&分类准确度 | 您所在的位置:网站首页 › 提高模型精准度 › 3. 逻辑回归&分类准确度 |
逻辑回归 Logistic Regression
解决分类问题 通常做分类算法,只能作二分法 sigmod(x) = 1 / (1+e^-t) # 直线型逻辑回归 from sklearn.linear_model import LogisticRegression log_reg = LogisticRegression() log_reg.fit(x_train, y_train) log_reg.score(x_test, y_test) # 多项式逻辑回归 from sklearn.preprocessing import PolynomialFeatures # 先使用poly处理x from sklearn.pipeline import Pipeline from sklearn.preprocessing import StandardScaler log_reg_pipe = Pipeline([ ('poly', PolynomialFeatures(degree=2)), ('Standard', StandardScaler()), ('log_reg', LogisticRegression()) ]) log_reg_pipe.fit(x_train, y_train) log_reg_pipe.score(x_test, y_test) 分类准确度问题 对数据极度偏斜,只使用分类准确度远远不够癌症的预测准确度为99.99%,但是只有0.01%的发病率,则对大多数人基本上不用预测都是健康的,预测机制几乎失灵 混淆矩阵 Confusion Matrix 行代表真实值,列代表预测值![]() 预测准确的有(0,0)(1,1),其余的都是预测错误的点 精准率:precision = TP/ (TP + FP) 只看对癌症预测成功或不成功的部分,而不对健康人群预测,健康人群的偏差过大召回率:recall = TP/ (TP + FN) 对真实发生的癌症人群,能够发现的概率F1 = (2*precision * recall) / (precision + recall) 两个值如果有一个值偏小则整体偏小 两个都大时才大 对两个度量(精准率和召回率)的平衡计算 from sklearn.metrics import f1_score f1_score(y_test, y_predict) 对数组值大于5的都变为1,小于5则为0np.array(decision_scores >= 5, dtype='int') |
CopyRight 2018-2019 实验室设备网 版权所有 |