Logle回归与sklearn

时间:2015-09-22 18:51:50

标签: python scikit-learn classification logistic-regression

不确定这是否是这个问题的好地方,但我被告知CrossValidated不是。所以,所有这些问题都指的是sklearn,但如果你对逻辑回归有一般的见解,我也很乐意听到它们。

1)数据是否必须标准化(平均0,stdev 1)?
2)在sklearn中,如何指定我想要的正则化类型(L1与L2)?请注意,这与惩罚不同;惩罚是指分类错误,而不是系数的五元组 3)我如何使用变量选择?即,类似于用于线性回归的套索。
4)使用正则化时,如何优化C,正则化强度?是否有内置的东西,或者我自己必须自己处理?

可能一个例子最有帮助,但我对任何这些问题的见解表示感谢。

这是我的出发点:http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html

非常感谢你!

1 个答案:

答案 0 :(得分:5)

1)对于逻辑回归,没有。您没有计算实例之间的距离。

2)您可以指定 //Socket TCP declaration InetAddress serverAddr = InetAddress.getByName(IP); try { Socket mySocket = new Socket(serverAddr, PORT); } catch(Exception e) { e.printStackTrace(); } //Thread 1 Thread t1 = new Thread(new Runnable() { @Override public void run() { BufferedReader myReader1 = new BufferedReader(new InputStreamReader(mySocket.getInputStream(), "UTF-8")); Scanner myScanner1 = new Scanner(myReader1).useDelimiter("\0"); synchronized(mySocket) { while(mySocket.isConnected() && myScanner1.hasNext()) { String s = myScanner1.next(); } } } }); Thread t2 = new Thread(new Runnable() { @Override public void run() { BufferedReader myReader2 = new BufferedReader(new InputStreamReader(mySocket.getInputStream(), "UTF-8")); Scanner myScanner2 = new Scanner(myReader2).useDelimiter("\0"); synchronized(mySocket) { while(mySocket.isConnected() && myScanner2.hasNext()) { String s = myScanner2.next(); } } } }); t1.start(); t2.start(); penalty='l1'参数。请参阅LogisticRegression page。 L2惩罚是默认的。

3)scikit-learn提供了各种明确的特征选择技术,例如:使用SelectKBestchi2排名功能。

4)您需要为最佳参数执行Grid Search

有关所有这些问题的详细信息,我建议您浏览一些Examples,例如this onethis one