日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Orange-Classification,Regression

發布時間:2023/12/20 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Orange-Classification,Regression 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.Classification

Orange和sklearn一樣,提供了Classification和Regression等機器學習的算法,具體使用如下:

import Orangedata = Orange.data.Table("voting") lr = Orange.classification.LogisticRegressionLearner() rf = Orange.classification.RandomForestLearner(n_estimators=100) res = Orange.evaluation.CrossValidation(data, [lr, rf], k=5)print("Accuracy:", Orange.evaluation.scoring.CA(res)) print("AUC:", Orange.evaluation.scoring.AUC(res))

Learners and Classifiers

分類是由兩個類型的對象組成:學習器和分類器。學習器考慮到class-labeled數據并返回一個分類器。給定前三個數據實例,分類器返回預測的分類:

import Orange data = Orange.data.Table("voting")#學習器 learner = Orange.classification.LogisticRegressionLearner()#返回一個分類器 classifier = learner(data)#查看分類結果 classifier(data[:3])#預測數據 c_values = data.domain.class_var.values for d in data[5:8]:c = classifier(d)print("{}, originally {}".format(c_values[int(classifier(d)[0])],d.get_class()))#統計錯誤 x = np.sum(data.Y != classifier(data))

Probabilistic Classification

找到分類器分配給每個類的概率大小。

data = Orange.data.Table("voting") learner = Orange.classification.LogisticRegressionLearner() classifier = learner(data) target_class = 1 print("Probabilities for %s:" % data.domain.class_var.values[target_class]) probabilities = classifier(data, 1) for p, d in zip(probabilities[5:8], data[5:8]):print(p[target_class], d.get_class())

Cross-Validation

data = Orange.data.Table("titanic") lr = Orange.classification.LogisticRegressionLearner() res = Orange.evaluation.CrossValidation(data, [lr], k=5) print("Accuracy: %.3f" % Orange.evaluation.scoring.CA(res)[0]) print("AUC: %.3f" % Orange.evaluation.scoring.AUC(res)[0])

Handful of Classifiers

Orange包含很多種分類算法,大部分是從sklearn里邊打包的過來的,如下:

import Orange import randomrandom.seed(42) data = Orange.data.Table("voting") test = Orange.data.Table(data.domain, random.sample(data, 5)) train = Orange.data.Table(data.domain, [d for d in data if d not in test])tree = Orange.classification.tree.TreeLearner(max_depth=3) knn = Orange.classification.knn.KNNLearner(n_neighbors=3) lr = Orange.classification.LogisticRegressionLearner(C=0.1)learners = [tree, knn, lr] classifiers = [learner(train) for learner in learners]target = 0 print("Probabilities for %s:" % data.domain.class_var.values[target]) print("original class ", " ".join("%-5s" % l.name for l in classifiers))c_values = data.domain.class_var.values for d in test:print(("{:<15}" + " {:.3f}"*len(classifiers)).format(c_values[int(d.get_class())],*(c(d, 1)[0][target] for c in classifiers)))

2.Regression

回歸和分類器相似,有一個學習器和回歸器(回歸模型),回歸的學習器是接收數據并返回回歸器,回歸器是預測連續class的值。

import Orangedata = Orange.data.Table("housing") learner = Orange.regression.LinearRegressionLearner() model = learner(data)print("predicted, observed:") for d in data[:3]:print("%.1f, %.1f" % (model(d)[0], d.get_class()))

Handful of Regressors

建立回歸樹模型:

data = Orange.data.Table("housing") tree_learner = Orange.regression.SimpleTreeLearner(max_depth=2) tree = tree_learner(data) #輸出樹結構 print(tree.to_string())random.seed(42) test = Orange.data.Table(data.domain, random.sample(data, 5)) train = Orange.data.Table(data.domain, [d for d in data if d not in test])lin = Orange.regression.linear.LinearRegressionLearner() rf = Orange.regression.random_forest.RandomForestRegressionLearner() rf.name = "rf" ridge = Orange.regression.RidgeRegressionLearner()learners = [lin, rf, ridge] regressors = [learner(train) for learner in learners]print("y ", " ".join("%5s" % l.name for l in regressors))for d in test:print(("{:<5}" + " {:5.1f}"*len(regressors)).format(d.get_class(),*(r(d)[0] for r in regressors)))

Cross Validation

data = Orange.data.Table("housing.tab")lin = Orange.regression.linear.LinearRegressionLearner() rf = Orange.regression.random_forest.RandomForestRegressionLearner() rf.name = "rf" ridge = Orange.regression.RidgeRegressionLearner() mean = Orange.regression.MeanLearner()learners = [lin, rf, ridge, mean]res = Orange.evaluation.CrossValidation(data, learners, k=5) rmse = Orange.evaluation.RMSE(res) r2 = Orange.evaluation.R2(res)print("Learner RMSE R2") for i in range(len(learners)):print("{:8s} {:.2f} {:5.2f}".format(learners[i].name, rmse[i], r2[i]))

?

總結

以上是生活随笔為你收集整理的Orange-Classification,Regression的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。